Email: Password: Remember Me | Create Account (Free)
Craig Steiner
Independent Consultant / Software Engineer / Electrical Engineer
Current Residence: Denver, CO   USA
Phone: +1 (303) 439-0909

Resume last updated 15-Jul-2008

I am currently interested in full-time or consulting employment in the Denver area, as well as employment or consulting opportunities in other locations which can be done predominantly from Denver.




  • CONSULTING/SPECIFICATIONS. As an independent consultant for the last 9 years, I am proficient at working with clients to determine their requirements, establish a proposal based on a detailed functional and technical specification, estimate the time and cost of the project, and implement the project according to an agreed-upon timeline.

  • ELECTRICAL ENGINEERING. Significant capability for circuit design, analysis, and review, with experience with printed circuit board layout and manufacturing. Designed and produced the SBC.

  • COMPUTER LANGUAGES. Professionally fluent in the computer languages 'C', Microsoft Visual Basic 3.0/5.0/6.0, the Novell Netware Windows API, and capable of developing Internet-based applications in both VB and 'C'. I have a working knowledge of 80x86 Assembly Language and in-depth knowledge of 8051 Assembly Language. I have had academic exposure to Pascal, Fortran, Cobol, and Ada with at least 1-2 semesters of classes at the University of Colorado - Denver in each of these languages.

  • EMBEDDED 8052 / MCS-51. Extensive knowledge of embedded systems, specifically MCS-51 (8031 / 8051 / 8032 / 8052 / etc). Fluent in MCS-51 assembly language as well as 'C'-based implementations. To-date, the vast majority of my consulting experience has been related to MCS-51 projects. I am webmaster and author of as well as the 8052 Simulator for Windows and Pinnacle 52 IDE applications. I have also authored "The 8051/8052 Microcontroller" Book (ISBN 1581124597).

  • PERSONAL DIGITAL ASSISTANT. I have worked with both Windows CE and, more recently, with Palm OS software development and have developed complete applications for both platforms.

  • DATABASE / SQL. Broad knowledge of relational databases including design theory and implementation. I have utilized Microsoft SQL Server 6.5, MySQL, and Microsoft Access 2.0/97 as integral parts of information-management applications, and have worked extensively in Structure Query Language (SQL), having developed stored procedures and triggers as well as traditional database queries.

  • WEB APPLICATION DEVELOPMENT. I have developed a number of Internet/Web-based applications based on both PHP and CGI scripts written in ‘C’. Systems include an e-commerce/customer/order-tracking system to process online orders, a customized user message forum on, and a Yahoo-style web page creation engine whereby users can create their own web pages from within their browser at

  • OPERATING SYSTEMS. Expert in Linux (especially Red Hat 7.3, 9.0, and Fedora Core 3), MS-DOS, Microsoft Windows 95/98/XP. I also have more limited experience with Macintosh and IBM OS/2.

  • LANGUAGES. Fluent in Spanish, English (native language).


September 2008
Irrigation-Related Company
Project: Irrigation Control System
Project consists of maintaining and developing new features for a commercial irrigation control system.
  • Keil-based 8051 assembly language & ST Microelectronics microcontroller (8051-based)
  • Review and document existing assembly language program
  • Detect and correct existing bugs
  • Add new functionality, as required
  • Design new user interface for existing system

September 2007
September 2008
Cropwire LLC, Lodi, CA
Project: 8052-Based Remote Data Logger & Internet Server
Contact/Reference: Bryan Osborn
Project consisted of continuing development for the previous project I developed for the client in 2005.
  • Assist client in identifying software and hardware requirements
  • Re-design website and database for new expanded requirements
  • Embedded C programming
  • GRPS wireless embedded communication
  • Server side programming in PHP and MySQL, with HTML for presentation

July 2006
August 2007
Millennia Music & Media, Placerville, CA
Project: Digitally Controlled Analog High-Voltage Preamp
Contact/Reference: Stephan Buck
Project consists of developing the digital front-panel controls of a high voltage pre-amplifier that will be used by clients such as Carnegie Hall, the Mormon Tabernacle Choir, etc. The firmware controls two independent LCDs, 45 LEDs, monitors 18 buttons and a quadrature encoder, and uses this I/O to allow the user to control the gain, muting, polarity, and gain of eight separate audio channels. The firmware is also able to communicate with external devices via Ethernet or MIDI.
  • Assist client in identifying software and hardware requirements
  • Assisted in selection of microcontroller (Dallas Semiconductor 80C411 combined with two Analog Device AduC841’s)
  • Embedded C and assembly language programming, implemented as 4 concurrent tasks
  • Simultaneous Analog/Digital conversion of eight individual audio channels at ~44kHz
  • Design of customer-specific Ethernet communication protocol
  • Embedded Ethernet communication using Teridian and Intel PHY ICs
  • Inter-processor communication between the 80C411 microcontroller and the AduC841’s

July 2006
March 2007
Power Efficiency Corporation, Las Vegas, NV
Project: Three-Phase Power Factor Optimization
Contact/Reference: John Hurst
Project consists of developing the firmware for a device that measures three-phase voltage and current, and adjusts them dynamically to achieve an optimized power factor which produces a potential savings in energy. This is an embedded component that will be integrated with industrial high-power motors (elevators, escalators, etc.) to improve their efficiency. This is essentially the same product as described below, but for three-phase motors rather than single phase.
  • Selected the microcontroller (Analog Devices AduC843)
  • Embedded C programming
  • Analog/Digital conversion of three independent voltage and current signals

August 2006
September 2006
Power Efficiency Corporation, Las Vegas, NV
Project: Single-Phase Power Factor Optimization
Contact/Reference: John Hurst
Project consisted of writing new firmware for an already-existing hardware design to replace existing firmware that was not working for the customer. This is a single-phase version of the three-phase project (immediately above) and was started and completed while the three-phase project was stalled due to a delay on the hardware design.
  • Embedded C programming
  • PIC 16F687 microcontroller (existing design)

November 2005
June 2006
Professional Automation Services, Longmont, CO
Project: VB/PHP-based Internet & Reporting Systems
Contact/Reference: Brian Anderson
As a long-term consultant, I am involved in the development and enhancement of systems that are primarily related to the storage, retrieval, printing, and reporting of employee tax information—specifically the annual W-2 forms.
  • Development and enhancement in Visual Basic 6 and PHP using MySQL

February 2005
July 2005
Advanced Vineyard (now Cropwire LLC, Woodbridge, CA
Project: 8052-Based Remote Data Logger & Internet Server
Contact/Reference: Bryan Osborn
Project consisted of assisting the client in identifying his software and hardware requirements, establishing a specification, and the subsequent development of firmware for an MSC1210 microcontroller (8052-based). The system performs data collection and subsequently transmits the collected data wirelessly to an Internet server. The project also included developing software that receives the data on the Internet server and the actual website design for the entire domain.
  • Assist client in identifying software and hardware requirements
  • Establish requirements specifications
  • Embedded C programming
  • GRPS wireless embedded communication
  • Server side programming in PHP and MySQL, with HTML for presentation
  • Website design for the entire domain

August 2004
February 2005
The 8051/8052 Microcontroller Book (ISBN 1581124597)
Authored a book on the 8051/8052 microcontroller that was published in October 2005.
  • Based on content previously written for
  • Additional chapters written on hardware
  • Assembly language programming techniques
  • Hardware design and interfacing examples

March 2004
August 2004
Palm GPS Toolkit Application Development (Independent Project)
Developed a GPS toolkit application for the Palm platform which provides standard GPS navigation features, such as waypoints, routes, real-time navigation map, ETA to next waypoint, final destination, etc.
  • GPS navigation
  • Developed for Palm OS in ‘C’ using Code Warrior 8.0

May 2003
July 2003
USA Signal, Inc., Dallas, TX
Project: Stoplight Bulb Controller
Contact/Reference: Paul Calixto
Designed and developed the 8052 assembly language firmware to operate the logic within a LED-based stoplight bulb. The firmware detected failure of the component LEDs and automatically adjusted voltage appropriately to maintain a fixed brightness output, while also detecting day/night mode in order to auto-dim the bulb at night.
  • Designed and developed 8052 assembly language firmware
  • Assisted in testing and modification of platform hardware

Janary 2003
April 2003
AISD, Inc., Grass Valley, CA
Project: Simulator Project
Contact/Reference: John Kesterson
Projected consisted of the development of a specialized simulator written in Visual Basic 6.0 which simulated the function of a proprietary microcontroller. This built on the experience I had writing a simulator based on my past work with the 8052 Simulator and Pinnacle 52 IDE. The simulator allowed the client to accelerate its own development by allowing them to develop and test code within the simulator before the actual microcontroller hardware existed.
  • Assisted client in identifying software, design, and software interface requirements
  • Development in Visual Basic 6.0
  • Calls to external, custom DLLs written in Visual C++

October 2002
March 2004
PrismEmail Spam Filtering Service (Independent Project)
Primary architect and developer of the PrismEmail spam filtering service. This service acts as a POP3 mail filter by having the user download their POP3 email from PrismEmail while PrismEmail downloads their email from their true POP3 provider, filtering undesirable spam in the process using traditional keyword filters as well as state-of-the-art Bayesian statistical filtering.
  • PHP 4.3 and HTML
  • GCC ‘C’ under Red Hat Linux 9.0
  • MySQL 4.0.18 database
  • Implementation of custom POP3 and SMTP servers in ‘C’

May 2002
September 2002
Texas Instruments, Inc., Tucson, AZ
Project: MSC1210 Documentation Project
Contact/Reference: Russell Anderson
Project consisted of writing a complete technical user manual explaining the functionality of the MSC1210, an 8052-derivative developed and distributed by Texas Instruments.
  • Based on content previously written for
  • Additional chapters written for product-specific features

May 2002
August 2002
Link World Trade, Inc. (now USA Signal, Inc.), Dallas, TX
Project: Medical Dose Meter
Contact/Reference: Paul Calixto
Project entailed writing the 8052 firmware for a device that attaches to metered medication dispensers (such as asthma inhalers, eye drops, etc.). The firmware reminds the patient of scheduled doses of the medication and also records the actual time and amount of medication consumed by the patient. The information is subsequently downloaded by a doctor.
  • Assisted client in identifying software, design, and interface requirements
  • Assisted client in selecting embedded hardware components
  • Developed firmware in 8052 assembly language to implement system

February 2002
March 2002
Cima World Traveler Palm-Based Application (Independent Project)
I developed the Cima World Traveler Palm-based application. This B&W/color Palm application was designed for the frequent world traveler and contains useful functions such as a world, country, and city database, currency conversion, a world clock, and measurement conversions.
  • Developed for Palm OS in ‘C’ using Code Warrior 8.0
  • Extensive use of Palm databases to store graphics, maps, and data

July 2001
November 2001 Online Store (Independent Project)
I designed and developed a custom "Online Store" for my site, The Online Store, which went online in October 2001, allows vendors of 8052-related products to list their merchandise in the Online Store which visitors to the site are subsequently able to purchase. Includes customer interface with catalog, shopping cart, and order system, along with a back-office component that manages the process for the life of the order and ultimately orders payments to the vendors based on the previous month's sales.
  • PHP 4.3 and HTML using cookies
  • MySQL 4.0 database

July 2000
January 2001
Avocet Medical, Inc., San Jose, CA
Project: Pinnacle Simulator Modification
Contact/Reference: Dr. Stephen Zweig
Project consisted of modifying the Pinnacle 52 IDE to simulate custom hardware specified by client. This allowed the client to develop and test firmware for their custom device before it was actually built.
  • Modified existing program in Visual Basic 3.0
  • Implemented simulations of SPI, I2C communications
  • Implemented simulation of Dallas RTC DS1307, DS1803 Dual-Pot, Philips PCF8533 LCD controller, serial EEPROM.

August 2000
October 2000
Texas Instruments, Inc., Dallas, TX
Project: 8052 USB Keyboard Firmware Development
Contact/Reference: Michael W. Wilson
Project consisted of developing firmware written in 'C' for Texas Instruments' TUSB2136 microcontroller, an 8052-compatible derivative which provides USB support. The code provides the complete firmware of a 102-key USB keyboard and is used as the example/reference code offered by Texas Instruments for developers using the TUSB2136 microcontroller.
  • Developed firmware in 8052 assembly language
  • USB slave device and USB communication with PC

March 2000
April 2000
SCAN, S.A. de C.V., Monterrey, Mexico
Project: Windows CE Portable Sales Data Collector
Contact/Reference: Alejandro Jose Phillips
Project consisted of developing a sales and route control system within a Windows CE environment using a Symbol Technologies PPT2700 hand-held device. Software functions include utilizing the integrated barcode scanner, file system, and IrDA infrared I/O port to communicate with an external portable printer. The application is used by delivery personnel that deliver food product to customers, using the application to record sales, transit times, and print sales receipts.
  • Visual Basic for Windows CE and Visual C++ for Windows CE
  • IrDA communication with external printer

August 1999
January 2000
Cunningham Electronics Corporation, Anna, Illinois
Project: Bar-Code Decoder and Motor Control
Contact/Reference: Richard W. White
Project consisted of developing 8052 assembly language code to operate a coupon-scanning device which operates a motor to receive a coupon and read its barcode. The code interprets and decodes information received from the optical barcode scanner supporting multiple symbologies.
  • Assisted client in identifying software, design, and interface requirements
  • Developed firmware in 8052 assembly language
  • Investigated, understood, and implemented UPC-12, EAN-13, EAN-99 coupon code, and EAN-128 barcode symbologies

January 1999
March 2000
Pinnacle 52 Integrated Development Environment (Independent Project)
Expanding on the 8052 Simulator I wrote in 1997 (see below), in 2000 I developed and released the Pinnacle 52 Integrated Development Environment. Pinnacle is a full IDE including editor, assembler, linker, and simulator for the 8052 and compatible derivatives.
  • Designed, developed, and maintained Visual Basic 3.0 and Visual C++ 1.51 code
  • Simulated 8052 machine language instruction set
  • Developed a complete assembly language and compiler and object linker

May 1997
June 2000
Analog Devices, Limerick, Ireland
Project: Modification to 8052 Simulator for Windows
Contact/Reference: Brian O'Mara
Analog Devices contracted me as an independent consultant to modify and enhance my 8052 Simulator to fully simulate new microcontrollers that they are currently in the process of developing and promoting. The modified Simulator is being included in Analog Devices' Software Development Kit which is sold to customers which are interested in taking advantage of the new microcontroller's special features.
  • Modified existing program in Visual Basic 3.0 and Visual C++ 1.51
  • Implemented simulations of AduC812-specific microcontroller features

March 1997
July 1997
TDK Semiconductor, Green Valley, California
Project: Modification to 8052 Simulator for Windows
Contact/Reference: Steve Buck
TDK Semiconductor contracted me to modify my 8052 Simulator to support the special features included in a new 8052-based microcontroller that they are currently developing. It was necessary for TDK to start writing application software for their new microcontroller before the firmware actually existed; thus I made the requested changes to the Simulator and they were able to begin software development using my Simulator in lieu of the actual hardware.
  • Modified existing program in Visual Basic 3.0 and Visual C++ 1.51
  • Implemented simulations of specific microcontroller features

May 1997
July 1997
Link World Trade, Inc. (now USA Signal, Inc.), Dallas, TX
Project: 8052 Development for U.S. Postal Service Sorter
Contact/Reference: Paul Calixto
Project consisted of reverse engineering an existing 8052 assembly language program, determining the use and function of each of 32 digital I/O lines, and writing a new assembly language version of the software. The final product was a control panel that is currently being sold in quantity to the U.S. Postal Service as one of the principal components of mail sorting machines.
  • Reverse-engineered existing 8052-based embedded product to determine functionality
  • Designed and developed new version of system in 8052 assembly language

October 1996
March 1997
8052 Simulator for Windows (Independent Project)
8052 Simulator for Windows simulates the 8052 microcontroller in a Windows environment. The program is written in Visual Basic with an additional DLL written in Visual C++ and in Assembly Language.
  • Designed, developed, and maintained Visual Basic 3.0 and Visual C++ 1.51 code
  • Simulated 8052 machine language instruction set

May 1996
April 1999
SCAN, S.A. de C.V., Monterrey, Nuevo Leon, Mexico
Employment: Software Engineer
Contact/Reference: Aldo Laiseca
Worked as a software engineer in 'C', Visual C++, Visual Basic, and in various assembly languages (Intel 80x86 and 8051/8031) developing an assortment of information-collection and management programs for clients throughout the country of Mexico. (Employment Details: PDF | HTML)
  • Assisted clients in identifying software, design, and interface requirements
  • Designed, developed, and maintained Visual Basic 3.0 and Visual C++ 1.51 code
  • Worked in Windows and embedded (8052) environments
  • Extensive work with barcode scanning and printing

July 1994
Jan. 1996
Automotive Computer Technology, Littleton, Colorado, U.S.A.
Employment: Software Engineer
Contact/Reference: Ted Ott
Participated as a member of a development team that worked in a MIPS-based Unix Operating System developing a 'C'-based financial application. The application assists automobile dealerships in the task of managing car sale/lease deals in such a way as to maximize dealer profits. (Employment Details: PDF | HTML)
  • Assisted in identifying software, design, and interface requirements
  • Extensive use of Unix pipes for inter-software communication
  • Designed, developed, and maintained code in Visual Basic 3.0 and ‘C’ under MIPS OS.

Dec. 1992
July 1994
Micro Insurance Software, Inc., Aurora, Colorado, U.S.A.
Employment: Network Administrator/PC Support Specialist
Contact/Reference: Ned Boddy
Acted as the Novell network administrator and internal support department and was responsible for approximately US$250,000 worth of purchases in 1993. Independently developed a purchase authorization and asset tracking system to improve my efficiency in my primary tasks. (Employment Details: PDF | HTML)
  • Administration of Novell 2.15 and 3.11 servers
  • Software development in Visual Basic 3.0

Aug. 1990
Dec. 1992
Automotive Computer Technology, Littleton, Colorado, U.S.A.
Employment: Software Engineer
Contact/Reference: Ted Ott
As my first position in the software industry, my primary task was initially the development of programs to print forms for automobile leases and purchases. As my experience in the field grew I began to assume duties in more complicated areas such as financial calculations, bar code reading, and modem-based communications to access customer credit bureau reports. (Employment Details: PDF | HTML)
  • Designed, developed, and maintained code in Microsoft QuickBASIC.


Aug. 1989
May 1995
University of Colorado at Denver, Denver, Colorado
Bachelor of Science in Business Administration
Major in Information Systems

CU-Denver Regents Scholar

Received degree May 1995.


    Available upon request. Email addresses for the contacts/references mentioned in this resume are also available upon request--they've been removed from this online version of my resume to help the contacts avoid being spammed.