James M. Wilson
2186 Firestone Way
Superior, CO 80027
(303) 543-8185

OBJECTIVE
To secure an exciting and challenging position where I can apply my strong skills as a systems and applications software developer to contribute towards making a growing company an industry leader.

Work EXPERIENCE
Retrieve, Inc., Boulder, Colorado.
April 1996 to present.
Principal Software Engineer.
Member of a team that designed and implemented software using C and C++ for a SAN (Storage Area Network) attached mass storage device, or File Processor.  The File Processor uses standard Intel x86 PC hardware and Wind River's VxWorks real time embedded operating system.  
- Participated in the design of the SANFS protocol that is used for communication between Host systems (UNIX and Windows NT) and File Processors.  Some of the unique features of  the SANFS protocol:
- File based (instead of sector based) protocol.  This allows the File Processor to optimize how it stores files and perform specialized processing on files because it knows what it is storing.
- Supports True Data Sharing among heterogenous Hosts.  This allows the same file on the File Processor to be shared between two different Hosts (UNIX and/or Windows NT) without the need to copy the file between the Hosts.
- Uses robust recovery mechanisms that can recover from Host and/or File Processor reboots.
- High performance protocol optimized for data transfer.  Uses storage transport (SCSI or Fibre Channel) instead of network transport.
- Designed, implemented, and tested UNIX (Solaris 2.5.1 and 2.6) and Windows NT Host file system code to interface with File Processors using the SANFS protocol.  This included: complete file system module to convert Host VFS/vnode operations or IRPs to SANFS protocol operations; optimization of the Host code using the Host page cache and directory name lookup cache; pseudo-driver used for debugging and statistics gathering.
- Designed, implemented, and tested the File Processor code that services SANFS protocol operations by utilizing the embedded file system in the File Processor.
- Participated in the design, implementation, testing, and debugging of the robust recovery mechanism between the Host and File Processor using the SANFS protocol.

EMASS / Advanced Archival Products, Englewood, Colorado.
February 1992 to April 1996.
Senior Software Engineer.
Worked with all of AAP's Storage Management System products -- file system and device driver software for optical disk and tape libraries -- in all areas of the software engineering process: design, implementation, testing, debugging, documentation, and management.  Was also involved with customer support, technical sales support, customer training and education.

AMASS file system -- adheres to the UNIX VFS interface.  It makes an optical disk or tape library appear to the system and the user to be a single large magnetic disk.  It is comprised of a kernel VFS (Virtual File System), two kernel pseudo-drivers, a SCSI passthru device driver, multiple daemons, and application level software for the API, GUI, CLI, and the file system metadata database.
-Worked on all areas of the code.  Specialized in the kernel code (VFS; AMASS cache disk I/O interface; SCSI passthru drivers) and daemon code (queuing code; scheduling code; I/O code; SCSI device interface; SCSI error handling code).
- Designed, implemented and tested several product enhancements:  Large (> 2Gb) File Support on SGI (IRIX 5.3 XFS); support for memory map vnode operations on IBM RS/6000 (AIX), including addition of a kernel resident page fault handling daemon; Offline Media Management.
- Ported the AMASS file system to new platforms:  IBM RS/6000 (AIX); SGI (IRIX); AT&T Starserver E SMP (SVR4 UNIX); Pyramid NILE SMP (dcosx).
- Added support for new SCSI jukeboxes and drives.  Fixed bugs with supported SCSI devices.
- Created tools and utilities for analyzing and fixing bugs both in-house and in the field: kernel debug and trace code; system hang and crash analysis utilities; AMASS internals analysis utilities.
- Analyzed, redesigned, and rewrote code to remove deadlock and data corruption problems: system buffer enhancements and fixes; SMP kernel locking fixes; improvements to the SCSI device error handling; locking fixes to the kernel VFS and application level database daemon interface.
V-Juke: "Virtual Jukebox" -- creates virtual device for each jukebox slot.  Kernel and daemon code.
SJI: "Standard Jukebox Interface" -- API for controlling jukeboxes.  Kernel and daemon code.
- Ported both to AIX, Solaris, and SGI.  Redesigned and added locking for SMP support.
- Added enhancements, bug fixes, debugging utilities, and support for additional SCSI jukeboxes.

Martin Marietta Astronautics Group, Denver, Colorado.
March 1990 to February 1992.
Software Engineer.
- Developed X Windows Neural Network simulation tool for various neural network algorithms.
- Used Neural Networks to solve a variety of aerospace engineering problems.
- Developed X Windows GUI for an Expert System used to track Software Problem Reports.

Combustion Engineering Process Automation Business, Rochester, New York.
September 1987 to August 1988.
Software Development Engineer.
Developed and maintained software and firmware for a real time, embedded, multi-node distributed process automation system made up of Motorola 68000 based machines on dual token ring networks using C and 68000 Assembly Language.
- Optimized memory allocation and free-list routines and nodal communication software.
- Redesigned and implemented nodal system state software.
- Developed error diagnostic software for communications routines and memory allocation routines.

SPECIAL SKILLS
Languages:	C, C++, various Assembly Languages, UNIX shell programming, Pascal, Prolog, LISP, ADA, Concurrent Euclid, SNOBOL.
Software:	kadb, kdb, dbx, adb, gdb, WinDbg, various kernel debuggers, various SCSI Passthru device drivers, lex, yacc, CVS, SCCS, Tornado.
Hardware(OS):	Intel (Windows NT, UnixWare, Linux, Solaris, VxWorks), Sun (Solaris and SunOS), IBM RS/6000 (AIX), SGI (IRIX), Hewlett Packard (HPUX), AT&T Starserver E (SVR4 UNIX), Auspex (SunOS),  Pyramid (dcosx), SNI (sinix), SCSI, HP 1630G Logic Analyzer.
Devices:	Tape Drives: 	NTP, DLT, 3490, RSP 2150, Exabyte.  
	Optical Drives: 	HP, Panasonic, Pioneer, Tahiti, Kodak, Sony, LMS.
	Jukeboxes: 	Grau, Metrum, Odetics, HP, Kodak, Sony, Exabyte, IDE, LMS.

EDUCATION
Rochester Institute of  Technology, Rochester, New York.
September 1985 to November 1989.
	Degree: 	Bachelor of Science, November 1989.	GPA: 		3.30.	
Major: 	Computer Science.			Concentration: 	Systems Software.

PUBLICATIONS AND PATENTS
- "Mass Storage System Controller for a Computing System" Patent Pending.
- Three Neural Network conference publications and presentations.

REFERENCES AVAILABLE UPON REQUEST