| |
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. |
| |
|