--> --> -->
Craig Steiner's Resume - ****.com
Remember Me
(Free)
Consulting ServicesThe 8052.com BookForum Rules (Read!)8051/8052 Tutorial8052 TCP/IP
Craig SteinerIndependent Consultant / Software Engineer / Electrical Engineer
Current Residence: Denver, CO USA
Phone: +1-303-***-****
Email: ********@********.***
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.
OBJECTIVE
Full-time employment or consulting as a software engineer or project manager in my
fields of expertise.
SUMMARY OF MAJOR FIELDS OF EXPERTISE
Consulting, identification, and implementation of customer needs, requirements, and specifications
Microcontroller & embedded software development (especially 8052-compatible, Palm OS)
Electrical circuit design and printed circuit board layout
Internet site/application development (Unix-based, C, CGI, PHP scripting, HTML, MySQL)
Windows software development (VisualBasic, Visual C++)
Authored the book "The 8051/8052 Microcontroller: Architecture, Assembly Language, and Hardware Interfacing"
Webmaster of and
SKILLS AND OTHER NOTABLE EXPERIENCE
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 .
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
and applications. I have also
authored "The 8051/8052 Microcontroller" Book (ISBN 158*******).
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 8052.com, and a Yahoo-style web page creation engine whereby users can create their
own web pages from within their browser at 8052.com.
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).
WORK EXPERIENCE
September 2008
Present 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, 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, 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, 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, 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 (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 158*******)
Authored a book on the 8051/8052 microcontroller that was published in October 2005.
Based on content previously written for 8052.com
Additional chapters written on hardware
Assembly language programming techniques
Hardware design and interfacing examples
March 2004
August 2004 (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, 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, 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 (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, 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 8052.com
Additional chapters written for product-specific features
May 2002
August 2002 Link World Trade, Inc. (now ), 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 (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 (Independent Project)
I designed and developed a custom "Online Store" for my site, 8052.com. 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, 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, 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,
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,
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 (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, 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, 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 ), 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 (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,
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: )
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, 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: )
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: )
Administration of Novell 2.15 and 3.11 servers
Software development in Visual Basic 3.0
Aug. 1990
Dec. 1992, 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: )
Designed, developed, and maintained code in Microsoft QuickBASIC.
EDUCATION
Aug. 1989
May 1995,
Denver, Colorado
Bachelor of Science in Business Administration
Major in Information Systems
CU-Denver Regents Scholar
Received degree May 1995.
REFERENCES
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.