Professional info
-
Passionate, thorough, detail-oriented, experienced software engineer, with background in hardware design & troubleshooting.
-
Creative visionary with a strong interest in research and development.
-
Proven skills designing electronic controls for low-cost ¼% accuracy instruments, safety-critical production equipment, and mission-critical weapon systems.
-
Experience in developing embedded real-time software, firmware, ladder, glue logic for microcontrollers, microprocessors, single-board computers, programmable logic controllers, personal computers, relays, discrete logic, analog circuitry, and discrete components.
-
Expert in debugging and in performing very low-level analysis.
-
Versatile in several programming languages (C, C++, C#, Assembly, Python, and others) and operating systems (UNIX/Linux, Windows, embOS, and others) for a number of microprocessor architectures.
Languages
C
C#
C++
Assembly
Visual BASIC (VB)
Ladder
BASIC
Ada
Pascal
Python
Accomplishments
-
Collaborated with a team to design a new debris-removal system for the Cummins-Allison Money Machine, which was later patented (United States patent number 7,438,172).
-
Designed and built (prototyped) a circuit to prove the company could use an STMicroelectronics ARM Cortex-M3 microprocessor for their new design, thereby reducing the overall cost of the system.
-
Troubleshot production problems and improved the software of the Money Machine to be more forgiving of tolerance stack-up, resulting in fewer service calls to repair the machines.
-
Wrote a high precision integer RPN calculator in C and assembly for an 8-bit PIC processor, allowing 64-bit math calculations to be performed, to improve sensor calibration accuracy.
-
Training and assisting interns in software development.
Operating Systems
Windows
UNIX/Linux (BASH)
MSDOS
VAX/VMS
embOS
Work experience
Since 2019, I have been programming at home on my own and doing volunteer work with Trans World Radio to diagnose and rewrite a voltage monitor and web interface for measuring AC power to a shortwave radio station in Guam. I wrote a C program to factor quadratic equations, using the GCC compiler in Linux. I also revised a Python program in Windows Subsystem for Linux (WSL) that calculated the number of days until a specific event.
Contract Software Engineer
2013 - 2019
Worked in several short-term contract positions in various industries in the Chicago area:
-
RHM Staffing Solutions, Schaumburg, IL
-
Wrote documentation and software in C and performed hardware troubleshooting for a burger broiler for Marmon Foodservice Technologies, Carol Stream, IL.
-
-
Column Engineering, Lombard, IL
-
Developed and debugged software for an embedded microcontroller in C and assembly for a voltage/current/temperature monitor and fan controller for an in-flight video entertainment system that used a Linux computer (for Righthand Technologies, Harwood Heights, IL).
-
Wrote disk operating system in C for driving a web interface to be used on Android smartphones and iPhones to display diagnostics for a vending machine’s coin box (for DiMonte Group, Warrenville, IL).
-
Wrote firmware in C for a smart battery pack for the military (for Inventus Power, Woodridge, IL).
-
-
CDI Corporation, Philadelphia, PA
-
Developed software for automated test equipment. Wrote software design documents for a new product and implemented design in C and C++. Debugged hardware and software. Trained and assisted interns in software development (for Eagle Test Systems/Teradyne, Buffalo Grove, IL).
-
-
Self-employed Consultant, Rolling Meadows, IL
-
Completed various tasks for multiple clients including: designing firmware for real-time embedded devices; designing and prototyping analog, digital, and power electronic circuits; surface-mount soldering; and troubleshooting hardware.
-
Firmware Engineer, RF IDeas, Rolling Meadows, IL
2012 - 2013
Designed firmware for radio frequency ID badge readers. Wrote a Microsoft Windows program that took serial data from a Personal Computer Memory Card International Association (PCMCIA) card and translated it into keystrokes for a login application. Interfaced a radio-frequency card reader to a Raspberry Pi single-board computer to display the card’s ID number.
Software Engineer, Cummins-Allison Corp., Mt. Prospect, IL
2001 - 2012
Designed firmware for high speed coin sorting/counting equipment. Converted 68HC16 assembly code to C code. Wrote serial communication routines with error checking and retry logic. Designed device drivers and interrupt handlers/ISR. Wrote state machine code. Debugged code and hardware. Programmed software to:
-
create multitasking Operating System (OS)
-
do multi-drop communications
-
perform COordinate Rotation DIgital Computer (CORDIC) calculations
-
make AC measurements using Fast Fourier Transform (FFT) Sin/Cos Correlation and convert it to amplitude and phase to display eddy current readings
-
design low pass filters
-
handle motor control drivers
-
execute diagnostics
-
perform machine setup and configuration
-
drive debug port
-
control user interface
Education
DeVry Institute of Technology, Decatur, GA
Bachelor of Science
Electronics Engineering Technology