My Resume
 

Firmware/Software Engineer

Design and develop system software or embedded firmware for innovative computing devices. Experience debugging untested hardware and the ability to take ownership of the total solution.

Skills
Primary Languages:   C/C++, ARM & IA/x86 assembly  
Other Langauges: Pascal, COBOL, FORTRAN, Prolog, ADA, dBase, HTML, MIPS, 68xx, & IBM 360/370 assembly
Software Systems: OS-Free/BIOS, Windows CE, QNX, Linux
CPU Architectures: ARM, IA/x86, MIPS, 68xx, 80x51
Experience With: USB1.1/2.0 & OTG, ATA, AC97, I2S, I2C, SD/MMC-Card, RS232, SSP, PCI, CFI, PCMCIA, CAN, Compact Flash, IrDA, LCD panels, keyboard, touch screens, DSPs, TV CODECS, audio CODECs, power management devices,opto/mechanical encoders, AM/FM tuners, CDROM, DVDROM, battery monitors, and other devices

Engineering Experience

Principal Software Engineer
September 2006 to Present
Designed and developed a compact POSIX-like file system and device driver framework for high-performance microcontrollers. Working on a flexible and expandable USB OTG software stack.

Senior Software Engineer
April 2001 to September 2006
Maintained a bare-metal test suite of over 100,000 lines of C and ARM assembly source code used for design-validation, debugging, and testing of ARM-based hand-held devices. Designed and developed many enhancements including a priority-based and nested interrupt subsystem and highly complex power management features. Also enhanced the device driver and application architecture and the boot sequence. Integrated internal and third-party code adding features such as USB mass-storage support and "hot" debugging, allowing debugger connections to systems already running or awakening from sleep modes.

Ported the test suite from third-party tools to in-house tools, reducing external dependency, simplifying the architecture and enhancing debugging capabilities. Co-developed a method for source-level debugging of shared objects that has been submitted for inclusion as a new ARM standard and used by other internal organizations.

Performed design validation, debugging and board "bring up" on nearly a dozen embedded system and hand-held designs (internally and for customers). Developed code as necessary to demonstrate functionality and test performance. Achieved excellent results, exceeding customer expectations, debugging boards faster then expected and providing quality support. Received a division-level recognition award for contributions to a project that resulted in three successful portable media player consumer products. Co-invented a technique for supporting direct memory access to ATA disk drives from an ARM-based processor that was later published by the company.

Performed training, provided customer support, and wrote documentation for the test suite and for internal hardware designs. Received excellent customer feedback and another divisional recognition award for the training of engineers from a sister group and contributing to a successful wireless media adapter product.

Selected and configured third-party firmware for the graphics controller-chip on a docking station for a wireless web-tablet design, accomplishing in days what would have required three or more months to develop from scratch.

Provided engineering support for in-car entertainment & telematics designs. Maintained the boot loader, eventually adapting into the test suite mentioned above. Design and developed QNX device drivers and test applications for the face-plate keypad, serial peripheral interface (SPI), Controller Area Network (CAN), AM/FM tuner, and I2C bus.

Contributed to client-side USB 2.0 mass storage drivers for Linux and to Windows CE drivers for audio, DMA, serial, MMC, I2C, rotary encoder, PMW and Direct Sound.

Software Engineer
January 1998 to April 2001
Co-designed a rotary encoder controller with integrated de-bounce logic that was implemented in a Field Programmable Gate Array (FPGA) in a telematics reference design, meeting the need for a dial control without requiring additional third-party hardware.

Member of an engineering "tiger team" that developed a Windows CE Auto-PC Board Support Package for IA/x86-based systems. Received a division-level recognition award and a mid-year promotion for exceeding expectations. Personal contributions included device drivers for an AC97 audio CODEC, faceplate keypad, AM/FM tuner, SPI, USB audio, and IrDA as well as parts of the power management API.

Member of a team developing software and firmware for IA/x86-based Auto-PC platforms. My contributions included the text-IO and numeric-conversion libraries and the keyboard driver for the boot loader. Developed AC97 and USB audio device drivers. Also developed a COM-wrapper for an AC97 driver, providing software mixing of multiple audio streams.

Developed BIOS-expansion/option ROM code enabling booting Windows CE from a PCI-based Flash card.

Developed Software Configuration Management (SCM) system and Build Verification Test (BVT) systems. Trained technicians and engineers on the systems, improving code quality and reducing integration time.

Education

Bachelor of Science Engineering, Computer Systems Engineering
Graduated Summa Cum Laude. Award of Scholastic Excellence, two years in a row. Deans list, College of Engineering and Applied Sciences. Member Phi Kappa Phi Honor Society.

Associate of Applied Science, Computer Information Systems
Honors graduate with highest distinction. Outstanding CIS student and scholarship awards. Member Phi Theta Kappa honor society.

Other Experience

Manufacturing Technician, Equipment
Maintained and repaired component pick-and-place, mark, and inspection equipment. Key member Station Improvement Team. Key member of Lead Inspection System Station Improvement Team. Active in team leadership and training.

Manufacturing Technician, Production
Operated component burn-in and test equipment (both manual and robotic). Test package owner. Author of WIP management process improvement systems. Perfect attendance award (0 personal absence hours) for 3 years.

Peer trainer & Computer Programmer
Tutored mathematics and computer programming. Developed and implemented a LAN-based database application.

Food Service and Hospitality
Management and maintence experience in different food-service and hospitality-industry positions.
 


www.BudCaldwell.com | About | ABout: My Website

This document maintained by webmaster@budcaldwell.com.
Material Copyright © 2006 Bud Caldwell