1420 E Burns Valley Rd, Apt 209
Winona, Minnesota 55987
A paper resume is necessarily brief. My full profile is available on LinkedIn via:
Embedded software engineer, working closely with electronic hardware and contributing to a team effort in all
phases of electronic system or subsystem development, from requirements specification through maintenance.
My goal is to use my experience and problem-solving insight to consistently deliver a quality product.
Proven Skills and Experience
26 years of experience in embedded systems product design, development, and test. Consistently reliable and robust
real-time embedded software and firmware for instrumentation, communications and control applications.
Microprocessors, microcontrollers, and assembly language programming:
8-bit processor architectures and assembly languages:
4 years using Motorola 6800, 68HC05, and 68HC11
8 years using Zilog Z80 and Z180
16-bit processor architectures and assembly languages:
5 years using Intel 80C196 and 80296SA
1 year using Renesas R8C/23
1 year using Renesas M16C/60
32-bit processor architectures and assembly languages:
3 years using Freescale ColdFire MCF5213, MCF5235, and MCF5282
High level language (HLL) programming:
7 years using C
Experience with C++, Visual Basic, Pascal, and PL/M
Reverse engineering of undocumented systems and software
Digital filters and PID control using fixed-point arithmetic
TCP/IP, J1939 CAN, synchronous serial, and asynchronous serial communication protocols
Input/output using drivers and prioritized interrupt service routines (ISR)
Real-time operating systems (RTOS):
Foreground/background; proprietary cooperative multitasking kernel; QNX; μC/OS
Module-level and function-level comments for both HLL and assembly language
Line-by-line comments for assembly language
Digital hardware design:
Designing the interfaces between processors and peripheral devices
Reviewing and critiquing system schematic diagrams
System test and debug:
Isolate and resolve real-time hardware/software issues using:
Digital voltmeters, oscilloscopes, and bus analyzers
In-circuit emulators (ICE) or background debug mode (BDM)
Debugging software at the assembly or HLL level, with or without symbols
Microsoft Office skills:
Modeling the system and analyzing test data using Microsoft Excel
Documenting the system design and structure using Microsoft Word and Visio
WATLOW ELECTRIC MANUFACTURING COMPANY, Winona, Minnesota
2011 – 2013
(contract through Ciber, Inc.)
Temperature Sensing and Communications: Maintained, documented, and greatly enhanced the C
firmware for the company’s legacy sensor product. The firmware continuously sampled, processed, and
transmitted temperature readings from up to three thermocouples. Transmissions were made through a
proprietary J1939 CAN protocol stack that additionally performed all of the J1939 commands and responses
needed to reliably and cooperatively function in any J1939 network environment. The target system was a
Renesas R8C/23 microcontroller with an Analog Devices AD7795 ADC.
Firmware features that I designed and implemented included:
o Supporting multiple overlapping streams of Transport Protocol traffic per J1939-21
o A failsafe strategy for writing configuration data to flash memory and preserving its integrity
despite power failures or flash memory failures
o Accessing that flash memory securely through the Memory Access protocol described in J1939-73
o Detecting faults and reporting their SPN, FMI, and Occurrence Counts per J1939-73
o Performing network address negotiations per J1939-81 with Arbitrary Address Capability (AAC)
enabled or disabled
o Supporting the Name Management protocol described in J1939-81
o Supporting highly configurable custom transmission formats to transmit temperature readings, fault
information, and message counts
o Developed firmware using the Renesas High-Performance Embedded Workshop (HEW) with C
compiler and symbolic debugger
o Configured and ran unit tests and J1939-82 Compliance Tests using the Vector CANoe J1939
CAN simulation and test tool
o Archived software builds using the Visual SourceSafe version control system
o Developed comprehensive system design and release documentation using Microsoft Office Word,
Excel, PowerPoint, and Visio
Heating Control: Diagnosed and corrected legacy products in response to trouble reports from the field.
o Determined root cause for a rarely occurring problem, finding that it was most likely due to a
momentary drop in supply voltage that reset the 68331 CPU during a write to serial EEPROM.
Documented several hardware and firmware factors that had combined to cause the problem.
Created, tested, and released a firmware solution that required no handware changes.
AMERICAN TRAFFIC SOLUTIONS, Scottsdale, Arizona
2010 – 2011
Embedded Programmer (contract through Productive Data Solutions, Inc.)
Traffic Enforcement: Maintained, documented, and enhanced legacy firmware in C and C++ to detect,
classify, and report illegal vehicle movements at traffic intersections in real time. Software tools included
GCC, GDB, the μC/OS RTOS, the Subversion version control system, and the NetBurner Eclipse IDE. The
build target was a Freescale ColdFire MCF5282 microcontroller on a NetBurner MOD5282 module. Much
of the development used the Scrum process.
ENDYMION SYSTEMS, Blaine, Minnesota (self-employed)
2008 – 2010
Freescale Beta Test: Evaluated Freescale’s new Eclipse-based CodeWarrior Development Studio for
embedded system development. Designed, coded, and debugged C++ programs using a Freescale ColdFire
MCF51QE / MC9S08QE evaluation board.
Legacy System Upgrade: Determined the feasibility of reverse engineering and retargeting a legacy
embedded system. Determined the structure of the project, and its sequence and deliverables. Estimated its
man-hours and overall duration.
Engine Control: Updated the bootstrap software for the Motorola 68HC11-based engine control units
manufactured by Zenith Fuel Systems. I changed the assembly code to be compatible with newer flash
memory chips, since the chips in the original design had reached end-of-life and were no longer available.
CUMMINS POWER GENERATION, Fridley, Minnesota
2006 – 2007
Developed firmware in C for new gasoline- and diesel-powered electrical generators.
Large Diesel Generators: Led the embedded software development for a family of 10 militarized AC
generators. A prototype based on the Motorola 68332 had already been constructed; our team was to
construct the production model using the Freescale ColdFire MCF5235. I reviewed the prototype's hardware
and software design, and the production model’s hardware design. Project work was paused while awaiting
a government contract award, and I was assigned to the following project in the meantime.
Small Gasoline Generator: Developed the inverter section of the embedded software for a small
commercial AC generator. A variable-speed engine drove an alternator which produced variable-frequency
AC. The AC was rectified to DC, and my software then used pulse width modulation to produce a 60 Hz AC
output. The challenge was to achieve acceptable THD under all load conditions. Hardware engineers
provided me with process control designs and a platform based on the Freescale ColdFire MCF5213. I
determined how to best implement the control designs, specified the best crystal frequency for the
microcontroller’s clock, and designed and coded the firmware in C. For test, I configured a Lauterbach
TRACE32-ICD in-circuit debugger to help the team tune the control algorithms. The debugger displayed
real-time graphs of various stages in the development of the output voltage waveform, and enabled
interactive adjustment of the control parameters.
ZENITH FUEL SYSTEMS, Bristol, Virginia
2002 – 2005
Developed and maintained software and firmware for the company’s product line of custom engine control units
meeting the 2004 EPA emissions requirements for gasoline and LPG spark-ignited internal combustion engines.
Sensors: Missing-tooth decoding. Digital filtering of MAP and oxygen sensors. RPM and MPH
calculation from tach signals or flywheel teeth. Engine shutdown or alert on out-of-range conditions.
Actuators: Precise fuel injector timing and pulse-width control. PWM vacuum trim valve control.
Spark advance and dwell control. PWM throttle control to achieve constant RPM or to limit vehicle ground
speed under a wide range of loads.
Communications: RS-232 and SAE J1939 (CAN).
Control: Air/fuel ratio control in response to sensor inputs and table values. PID control of throttle.
Development: Reverse-engineered existing uncommented code in C and 68HC11 assembly. Documented,
repaired and enhanced its function. Added new modules to improve performance or to meet customer
requirements. Created a Visual Basic application to speed ECU programming.
Test: Tested firmware using PC monitor or oscilloscope on bench, engine test stand, or customer facility.
Validated new ECU hardware under extremes of heat and voltage.
Patent: Co-inventor on a patent application for vehicle ground speed control.
ENDYMION SYSTEMS, Raleigh, North Carolina (self-employed)
Providing contract services to clients in various fields.
New Product Development: Teamed up with other consultants to propose development of a new
electronic product for a client. Met with the client to understand his product requirements. Worked
with the team to write and submit a proposal.
Web Site Development: Developed a web site to publicize the work of a local artist.
CISCO SYSTEMS, Research Triangle Park, North Carolina and San Jose, California
Maintained C code for the Gigabit Ethernet family of line cards for the Cisco GSR 12000 family of routers.
Analyzed and resolved software problems. Thoroughly documented the problems and their solutions.
Configured several IP networks within my own test bed of three Cisco GSR 12008 routers. Used those
networks for learning, problem determination, debugging, and test.
1994 – 1999
AMETEK, Greensboro, North Carolina and Largo, Florida
Test and Calibration Instruments Division
Senior Project Engineer
Responsible for design, development, release and maintenance of all embedded software for the Chatillon product
line of force measurement instruments and material test stands.
Diagnosed, documented and solved more than 100 hardware and software problems across the entire
Chatillon product line.
Reverse-engineered existing uncommented code. Documented it to meet FDA GMP guidelines for Class II
medical devices. Repaired and enhanced its function.
Researched and recommended leading-edge hardware and software technology to prototype and produce
Designed new products. Created detailed specifications containing system block diagrams, keypad and
display actions, menu trees, data flow diagrams, and communication protocols.
Exploited the processor architecture in one product to increase its performance by a factor of four.
Education and Training
M.S., Computer Science
West Coast University, San Diego, California
SNA, TCP/IP, OOP, C++
IBM, Research Triangle Park, North Carolina
B.A., Applied Physics and Information Science
University of California, San Diego, California
Cisco Routers and IOS
Cisco Systems, San Jose, California
DC and AC Circuit Theory
Virginia Highlands Community College,