JAY TALBOTT
SysPro Consulting, LLC
3057 E. Muirfield St.
 Gilbert, AZ
85298
(480) 704-8045
Objective
To provide software
engineering consulting services to clients in need of systems level software
engineering expertise. These services include the development of device
drivers, embedded systems, operating system internals, real-time control
systems, etc. for industrial, commercial, military, and consumer applications.
Expertise
Systems Programming
· C, C++, and assembly language programming
· Intel x86/x64 and 8051, Motorola 68K and PowerPC CPUs,
and TI TMS320Cxx DSPs
· ISA, EISA, PCI, CPCI, VME, S-bus, SCSI, and custom
proprietary hardware buses
· Windows NT/2000/XP/2003/Vista kernel-mode device
drivers
· Unix device drivers (Linux, DEC OSF/1, SunOS, LynxOS,
HP-UX, AIX, etc.)
· Real-time multitasking operating system internals
· Kernel level programming and debugging
· Multiprocessor environments
· Embedded systems programming
· Hardware register level programming
· Programmed I/O and interrupt driven I/O
· System and busmaster DMA
· Hardware and software communication protocols
· Hardware emulators and logic analyzers
Applications Programming
· Win32 / MFC application development
· Unix/Linux application development
· Object oriented programming
· Multithreaded programming
· Client/Server architectures
Software Development Tools
· Microsoft Visual C++, Windows SDK, Windows DDK, and
other Microsoft Developer Network tools
· Compuware NuMega SoftICE kernel debugger
· Cygnus, Microtec, and TI cross development tools
· ClearCase configuration management software
· Various Unix/Linux development tools
Application Areas
· Telecommunications
· High-availability and fault-tolerant systems
· Factory automation and industrial control
· Machine vision systems
· Speech recognition
· Real-time control systems
· Data acquisition systems
· Data storage
· Automotive / heavy equipment
· Commercial grade products
· Consumer products
Experience
Principal Consulting Engineer
SysPro Consulting, LLC, Phoenix, Arizona, March 2001 - Present
Client:
Microsoft Corporation (subcontracted
through Steyer Associates, Inc.)
· Contributed to the Windows Driver Kit (WDK) for
Windows Vista and Windows Server Code Name "Longhorn" by writing the
technical documentation for the following technologies:
· Winsock Kernel
· Network Module Registrar
· Windows Filtering Platform
· Windows Hardware Error Architecture
· PCI Express
· Dynamic Hardware Partitioning
· Contributed to the design of the kernel-mode API for
the technologies listed above. This effort involved reviewing internal
specification documents and software header files and providing key feedback
and suggestions to the development teams from the perspective of an independent
device driver developer. Almost all of the feedback and suggestions that were
provided to the development teams were incorporated into the final interfaces.
· Wrote a technical whitepaper that documents new
extensions to the StorPort interface.
· Contributed to two technical whitepapers about the
Windows Hardware Error Architecture and Dynamic Hardware Partitioning that were
published for WinHEC 2006.
· Contributed to the development of the Windows
client-server protocol documentation.
Client:
Hybond Inc.
· Developed 8051-based real-time control software for
the Hybond model 626 and 676 wirebonders.
· Contributed to the design of the hardware interface
between the CPU board and the A/D board for the Hybond DFS-III dynamic force
measurement system.
Client:
Southwall Technologies, Inc.
· Architected new Windows-based software for Southwall�s
Hexatrom optical monitoring system used in their manufacturing facilities. This
software replaces their original DOS-based software.
· Developed a custom Windows device driver for a PCI
data acquisition board to meet the unique requirements for interfacing with the
optical monitoring system hardware.
· Developed a Win32 console application that interacts
with the device driver and provides various low-level diagnostic functions for
debugging the optical monitoring system hardware.
· Developed a custom multi-threaded Win32 system service
that interacts with the device driver and provides access for both local and
remote client applications to connect to and interact with the optical
monitoring system.
· Developed a custom Win32/MFC application for
installation, configuration, and removal of the system service for the optical
monitoring system.
· Developed a custom multi-threaded Win32/MFC client
application for user interaction with the optical monitoring system. This application also provides tabular and
graphical displays of the relevant data during the manufacturing process, as
well as various diagnostic functions for debugging the optical monitoring
system hardware.
Client:
Adtron Corporation
· Modified an existing Windows device driver for the
Adtron SDDR data storage product so that it works correctly when used with
Windows 2000.
· Designed and developed a custom Win32/MFC application
for installation, configuration, and removal of the device driver for the Adron
SDDR and SDDL data storage products.
· Designed and developed a custom Win32/MFC application
for installation, configuration, and removal of the device driver for the
Adtron ALCP data storage product.
Client:
S.D.S.S., Inc.
· Developed a mouse filter driver for Windows 2000/XP to
provide unique functionality for a prototype mouse design.
· Developed a custom Win32/MFC application that provides
the ability to change the operational parameters of the mouse filter driver for
optimizing the performance of the prototype mouse.
Staff Software Engineer
Motorola, Inc., Tempe, Arizona, July 1998 � June 2001
Motorola
Computer Group
· Development of Windows 2000 operating system level
software for CompactPCI based high-availability computing platforms. Involved development of specialized device
drivers, system services, and system management tools to provide support for managing
multiple CPCI I/O domains and for handling hot swapping CPCI modules.
· Development of operating system level software for
fault-tolerant computing platforms.Â
Involved customization of the AIX operating system kernel, development
of highly specialized device drivers and kernel extensions that provide fault
tolerant capabilities, and development of custom system administration
utilities.
· Development of Linux device drivers for ATM network
hardware as well as the porting of the ATM drivers and protocol stacks between
the x86 and PowerPC architectures.
Motorola
Manufacturing Systems
· Development of Windows NT based control software for
machines used in the manufacturing and handling of high-density BGA chips,
â�œbio-chipsâ�, and other semiconductor products.Â
Involved integrating I/O subsystems from multiple vendors and developing
and debugging the main control applications.
Senior Software Engineer
Cognex Corporation, Natick, Massachusetts, February 1995 - June 1998
Systems
Software Group
· Lead developer of the PC Host software for the
Programmable Vision Engine product line.Â
Involved designing, implementing, and debugging kernel-mode device
drivers for ISA bus and PCI bus vision processing hardware for a wide variety
of host operating systems.  Also
involved developing MFC based applications for installation and configuration
of the device drivers for Windows NT. In
addition, was involved in the design and development of DLLs and MFC
applications used for user interaction with the vision processor hardware. The device drivers provide multiple channel
interrupt driven communication between the host PC and the vision
processor. The PCI bus device drivers
also provide support for busmaster DMA transfers between the vision processor
and the host PC.
· Key developer of operating system level software running
on the embedded vision processor hardware.Â
Involved porting existing software to new vision processor hardware
platforms, developing new software to provide additional functionality, and
developing custom special software to fulfill specific individual customer
requirements.
· Worked closely with hardware engineering, software
quality assurance, technical documentation, release engineering, and other
internal groups throughout the complete product development cycle in order to
develop the best possible product.
· Provided 2nd line customer support for
existing products in the field.
· Involvement in developing standards and procedures for
software development.
· Mentor to others in the group.
Software Engineering Consultant (Part
Time)
Verbex Voice Systems, Cambridge, Massachusetts, February 1995 - September
1999
Advanced
Research and Development
· Ongoing development of the I/O interface for an
advanced prototype speech recognition system.Â
Involved designing and implementing a configuration message protocol between
the host computer and the embedded DSP hardware that provides significantly
more flexibility and provides for configuration at runtime instead of at
compile time. Also involved
re-implementing much of the software running on the DSP hardware, including
interrupt handlers, memory managers, and most of the actual signal processing
code. In addition, involved improving
the robustness of the software running on the DSP so that it can detect various
error conditions and automatically correct the problem dynamically without
disrupting the speech recognition process.
· Development of a number of Windows NT device drivers
for custom DSP hardware, including porting all of the communications libraries
and test code from other operating systems to Win32.
Software Engineer
Verbex Voice Systems, Littleton, Massachusetts, November 1993 - February
1995
Advanced
Research and Development
· Development of the I/O interface for an advanced
prototype speech recognition system.Â
Involved development of Unix device drivers for speech I/O hardware,
software development for embedded DSP hardware in a real-time multitasking
environment, and development of a generic API for application software to
interface with different speech I/O hardware.
· Development of the centralized control module for the
speech recognition system that coordinates the events during the recognition
process and processes the results returned from the speech recognition
engine. Involved development of
real-time multithreaded software on symmetric multiprocessing Unix systems.
· Development of an X /Motif based application for
evaluation of the speech recognition system.
· Application of formal software engineering techniques
to refine prototype research software into production worthy code, making it
more robust and easier to maintain.
· Involvement in developing standards for software
development in the R&D groups.
Research Engineer
Caterpillar, Inc., Technical Center, Peoria, Illinois, May 1989 -
November 1993
Control
Systems Research Division
· Development of advanced electronic control systems for
improving the performance, productivity, and reliability of heavy earthmoving
equipment. Involved control system
specification and design, real-time multitasking software development for
embedded control hardware, and performance analysis through computer simulation
and field testing.
· Involvement in development of corporate standards for
software development in the R&D groups.
· Investigation of advanced sensor technologies for use
in electronic control systems.
· Participation in the College Graduate Training
Program, which involved various projects in areas of engineering, research,
manufacturing, and logistics.
Graduate Assistant
University of Minnesota, Minneapolis, Minnesota, September 1987 - March 1989
Department
of Mechanical Engineering
· Software and hardware implementation of a â�œbehavioralâ�
control strategy on an autonomous mobile robot.Â
Involved real-time object oriented programming for a multiprocessor
embedded environment and hardware I/O interface development.
Department of Electrical Engineering
· Investigation of computerized methods for
electromechanical system identification.
· Preparation, teaching, and grading of Junior/Senior
level electronic circuits labs.
Summer Technical Employee
3M Company, St. Paul, Minnesota, June 1987 - September 1987
Corporate
Research Labs
· Development of custom computer controlled laboratory
instrumentation.
Student Assistant
Gustavus Adolphus College, St. Peter, Minnesota, September 1983 - June 1987
Department
of Physics
· Hardware and software development of computer
controlled physics experiments.
· Investigation of electromagnetic interference from
personal computers.
· Preparation and teaching of advanced electronic
circuits labs.
Department of Computer Science
· Teaching Assistant for introductory programming
courses.
Patents
Method Of Controlling Clutch-To-Clutch
Shifts For A Powershift Transmission
U.S.
Patent No. 5,467,854, Issued Nov. 21, 1995
Method Of Controlling Interrupted Shifts
For A Powershift Transmission
U.S.
Patent No. 5,505,100, Issued Apr. 9, 1996
Adaptive Control Method For An Automatic
Transmission
U.S.
Patent No. 5,551,930, Issued Sep. 3, 1996
Method For Determining The Fill Time Of
A Transmission Clutch
U.S.
Patent No. 5,580,332, Issued Dec. 3, 1996
Publication
Scarecrow: An Implementation of
Behavioral Control on a Mobile Robot
Proceedings
of the SPIE, Vol. 1195, November 1989
Education
Professional Training and Conferences
· Windows Driver DevCon 2003
· WinHEC 2001, 2002, 2003, 2006
· PCI Express system architecture
· Windows driver developer roundtable
· Writing reliable drivers for Windows
· Win-Dev 2001
· Writing kernel-mode device drivers for Windows 2000
· Advanced driver development for Windows 2000
· Writing kernel-mode device drivers for Windows NT
· Effective C++
· Numerous C and C++ courses
· Structured analysis and design
· SEI CMM
· Fuzzy logic
Master of Science, University of
Minnesota, March 1989
Major
/ Minor: Mechanical Engineering / Electrical Engineering
Cumulative
GPA: 3.76
Focus:
Control systems, software development, robotics, and electronic interfacing
Bachelor of Arts, Magna Cum Laude,
Gustavus Adolphus College, June 1987
Major
/ Minor: Physics / Mathematics
Cumulative
GPA: 3.71
Honors:
Academic Assistant 1986-87; Dean�s List 1985, 1986, 1987; Research Fellowship
1985