Embedded Software/Hardware Engineer with 17 years experience in embedded
systems software design (boot-code, diagnostics, and firmware), RTOS/Embedded
Linux, Linux kernel device drivers, PCB/Microcontroller design, FPGA Design,
Ethernet and GPS.
TECHNICAL SKILLS
Software:
C (some C++),
Assembly (Motorola 68K, PowerPC, ARM, MIPS),
Linux device drivers,
Unix scripts and Makefiles,
Debug tools (GDB/DDD, BDM, JTAG),
Embedded-Linux/RTOS (uClinux, pSOS, uC/OS-II),
IDE/cross-compilers (Eclipse, Gnu, CrossWorks, Intermetrics, Diab),
Communication protocols (Ethernet, RS-232, RS-422, SPI, I2C, CAN, USB),
Network Protocols (TCP/IP, SNMP, NTP, HTTP),
GPS
Hardware:
Digital and analog circuit design and verification,
PCB design (stack-up, layout, routing),
FPGA design (Verilog HDL),
Altera/Xilinx FPGA design and simulation,
Power supply design,
OrCAD/Allegro schematic/PCB design tools,
PCI-bus design
General:
Experienced in embedded hardware and software design, debug and failure
analysis. Proficient use of laboratory test equipment including In-Circuit
Emulators (ICE), Logic Analyzers, Analog and Digital Oscilloscopes, and
Network Protocol Analyzers. Experienced in high-speed digital design and
verification.
PROFESSIONAL EXPERIENCE
Senior Embedded Software Engineer January 2011-May 2011
M/A-COM Technology Solutions Lowell, MA
Lead software engineer for a GPS Map and Positioning Engine (MPE) module
developed for an automotive Advanced Driver Assist System (ADAS).
* Developed main() system control process/state-machine for compliance with
specifications of vehicle CAN bus.
* Designed and developed multi-processor boot sequence and inter-processor
communication.
* Integrated 3rd party Vector-CAN bus drivers.
* Customized 3rd party Windows GUI utility for multi-processor firmware
upgrade via USB.
* Supported hardware design team with schematic and PCB layout/routing
design reviews.
* Led design team in prototype board-bring-up, debug, rework and respin.
Embedded Software Engineer June 2005-May 2009
TRAK Microwave Corporation Tampa, FL
Developed Linux kernel device drivers and user applications for several GPS
products. All products ran embedded Linux (uClinux) and supported the
following Network Service Protocols: NTP, SSH, SFTP, SCP, SNMP, Telnet,
HTTP/HTTPS, and TFTP.
* Ported the uClinux 2.4 distribution and customized the kernel to support
real-time functionality as well as other TRAK specific requirements.
* Developed kernel drivers for interrupts, I2C, SPI, and a proprietary
real-time task timer.
* Developed main() system processes responsible for spawning/initializing
all other user processes, servicing all command port I/O (local and
remote), and running a software watchdog to monitor all processes in the
system.
* Developed a Client/Server based remote-login server to support multiple
concurrent remote (SSH, Telnet, SNMP) and local (RS-232, RS-422)
connections.
* Developed drivers to interface with the Motorola M12+ GPS Receiver via
UART.
* Ported and installed Open-Source server implementations for SNMP, SSH,
HTTP/HTTPS, and TFTP.
* Developed the SNMP Management Information Blocks (MIB) specific for each
product.
* Designed/developed diagnostic tests/utilities for engineering and
manufacturing product verification.
Embedded Hardware Design Engineer May 2004-June 2005
TRAK Microwave Corporation Tampa, FL
Project Engineer and lead designer of a rack-mount PCB module used for
status/control in a GPS-based precision time and frequency distribution
system. The microprocessor core developed for this module added network
connectivity to an existing product and would later be used in three
additional product designs.
* Designed PCB analog and digital circuitry; Developed schematics
integrating Freescale MCF5272 32-bit CPU running at 66MHz, 8MB SDRAM,
4MB FLASH, Altera Cyclone FPGA, RS-232 Transceivers, I2C Bus Controller,
SPI Bus Controller, NVRAM, DC/DC Converters, and backplane buffers for
hot-plug capability.
* Designed an Altera Cyclone FPGA using Altera's Quartus II Design Software.
FPGA contained an interface to the MCF5272 CPU, interrupt controller, I2C
and SPI bus controls, general purpose status and control registers,
backplane tristate control, and logic for front-panel switches and display
LED's.
* Designed PCB stack-up and layout for optimal EMC performance and
high-speed LVDS differential pair routing and impedance matching.
Senior Software Engineer January 2003-May 2004
EMC Corporation Hopkinton, MA
Developed hardware models for a simulation environment designed to emulate a
complex RAID/Data Storage system consisting of 16 PCB's each containing four
PowerPC CPU's and six FPGA's.
* Created simulation models of proprietary hardware components in C/C++ for
a simulation environment comprised of a PowerPC Instruction Set Simulator
(ISS) running on Solaris and Linux.
* Designed and developed a Remote Procedure Calls (RPC) interface between
simulation environment and a remote Linux cluster consisting of PCI I/O
devices.
Login or Register to view the full resume.