Senior Firmware Engineer Resume
Waukesha, WI
SUMMARY:
- Noninvasive electrocardiographic method of real time signal processing for obtaining and displaying instantaneous fetal heart rate and fetal heart rate beat - to-beat variability (Patent # 5,042,499, August 27, 1991)
TECHNICAL SKILLS:
Highlevel languages: C/C++, Java, C#, Objective-C, PERL, Labview, HTML, Basic and others
Assembly languages: ARM, Analog Devices & TI DSPs, Confidential, Intel and others
RTOSs: eCOS, vxWorks, vrtx, pSOS and proprietary (rolled my own)
Platform OSs: Linux, Android, iOS, Confidential P2K, proprietary
Host OSs: Windows, Linux, Unix, Solaris and Mac OS
Communication Protocols: USB, Serial, CORBA, IPv4/IPv6, SIP, 3G, CDMA, GSM and others
Hardware Interfaces: UART, USB, I2S, SPI, DMA, Ethernet
Requirements Capture: DOORS, Clearquest, Requisite Pro
OOA&D/UML Tools: Rhapsody, Rational Rose, Visio and others
IDEs: Eclipse, Slickedit, Visual Studio, Visual C++, TI Code Composer, Analog Devices VisualDSP++
Software Quality: FDA, Six Sigma DMAIC, FMEA, CMMI, ISO 9001, TL9000 and others
Software Development Models: Agile (i.e. Extreme, Lean, Scrum), Spiral, V and Waterfall models
Software and Firmware Development: (Driver, library, framework, test and application software) for embedded and standard platform systems
PROFESSIONAL EXPERIENCE:
Senior Firmware Engineer
Confidential, Waukesha, WI
Responsibilities:
- Designed, implemented and tested real-time, embedded software for a diagnostic imaging system that combines Positron Emission Tomography (PET) and Magnetic Resonance Imaging (MRI).
- Worked as part of a small team (5 engineers), in all phases of the development process (requirements to system validation). Provided leadership and acted as a mentor for junior members of the team.
- Designed software utilizing object-oriented analysis and design methods, capturing and updating the design model using IBM Rational Rhapsody Architect. Created classes, interfaces, object models and sequence diagrams to fully capture the design, both before and during implementation.
- Wrote software in C++ using an Eclipse IDE, running on Host platform (Linux/Unix servers). Software is compiled with a GNU cross-compiler, generating code executed on a Nios II core processor, implemented in an Altera FPGA.
- Used IBM Rational Clearcase for version control of all source code, make files and the build environment.
- Ran unit tests on the host platform using CppFit. Tested and debugged on the target platform using a JTAG target connection and Altera’s NIOS/Eclipse development environment running on a Windows laptop.
- Implemented high speed data transfers using DMA transfers and Gigabit Ethernet.
- Implemented logging and diagnostic services into the target system used for engineering and manufacturing integration and regression tests.
- Debugged and corrected JFFS2 file system corruption issues in flash driver.
Senior Firmware Engineer
Confidential, Mundelein, IL
Responsibilities:
- Software/firmware/hardware development and support of embedded medical systems (Hearing Screeners and Test Equipment).
- Developed requirements, architecture and schedules for a new hearing screener based on an Android platform utilizing a TI OMAP SOC comprised of an ARM core and a C64x+ DSP. My role on this project included Android BSP Porting, hw/sw architecture, design and integration, Linux device driver development and DSP code development (digital filters and screening algorithm impelmentation).
Senior Software Engineer
Confidential, Libertyville, IL
Responsibilities:
- Developed real-time, embedded software components (file system, database, charging application and other low level services) and device drivers (NOR and NAND flash drivers) for most of Confidential ’s GSM and 3G mobile phones (RAZR, KRZR, and many others) These software components had critical performance and reliability requirements since all applications in the phone were dependent on these low level services.
- Worked with security team to provide methods to encrypt and decrypt secure data in the phone utilizing secure coding practices, cryptographic functions and authentication and authorization protocols.
- Development was done on UNIX, Linux and Windows cross-development host platforms with embedded software running on phones and Linux-based hardware simulators
- Embedded software ran on the vrtx RTOS with proprietary Confidential enhancements
- Development languages included C/C++, Java and ARM and MCore assembly languages.
- Software verification/validation was done using software simulators as well as prototype and final release hardware.
- Used logic analyzer traces, software logs and other debugging techniques and root cause analysis to solve many difficult technical defects discovered in Confidential and 3rd Party flash hardware and driver software.
- Worked with 3rd party software and hardware engineers to specify new NOR and NAND flash hardware specifications and software driver functional and non-functional (performance, reliability) specifications.
- Worked with Intel software engineers to develop, from concept to product release, a new high performance file system used to provide a significant increase in file system performance required in the initial RAZR phone. Authored many of the key design ideas used in this file system and in later file system releases.
- Developed desktop tools to read and analyze file system data acquired form phones and simulators and to analyze phone logs and logic analyzer traces in analyzing the real-time behavior of applications, the file system and low level drivers.
- Provided software estimates and status updates required to meet strict project schedules and software delivery dates.
- Successfully worked with hundreds of other engineers, managers and marketing people all over the world; i.e. China, Russia, Singapore, India, Australia, Brazil, Mexico, Germany, France, Italy, etc.. Successfully worked through language and cultural barriers and time differences to solve many difficult integration, component interaction and communication issues between software components and development and integration teams.
Lead Software Engineer
Confidential, Arlington Heights, IL
Responsibilities:
- Led a software development team of about 20 engineers in the successful development of critical subcomponents of a large (>1000 man-month) project.
- Developed a software frameworks as part of a CORBA-based, distributed architecture for an IP-based wireless phone switch running call control applications based on an early version of SIP
- Led multiple framework development teams implementing the distributed, multithreaded design in C++ and Java running on a Linux platform.
- Provided scheduling and effort estimation for software design, code implementation, test and delivery of our SW Frameworks to the project’s application layer development team.
- Moderated code and test plan inspections, oversaw the component and system integration effort, and mentored junior members of my team.
- Championed and implemented software development process improvements based on the RUP (Rational Unified Process)
Senior Software Engineer
Confidential, Meadows, IL
Responsibilities:
- Developed real-time software for Confidential ’s Cable Modem Termination System (CMTS), the Cable Headend portion of their cable modem system.
- Rapidly come up to speed in my understanding of TCP/IP and the DOCSIS standard (Data-Over-Cable Service Interface Specifications) used by Confidential and the Cable Modem industry.
- Improved CMTS ease of use by developing configuration scripts and setup and configuration procedures.
- Designed and developed conversion programs (in C++ running on multiple platforms - Solaris/Windows) used to automate configuration of multiple CMTS platforms. Conversion of SNMP MIB information occurred between an embedded system binary format and human readable text format.
- Improved design of the CMTS Packet Bus Protocol Stack (PHY, MAC & DLL layers), implementing new design in C running under pSOS.
- Investigated system security and QOS improvements that could be achieved with IPv6 vs IPv4
Senior Software Engineer
Confidential, San Diego, CA
Responsibilities:
- Designed, developed, documented and tested several key software components of an object oriented (C++), real-time, multitasking (VxWorks), 68060-based DeModulator Card, DMC. The DMC provides the lower layers (physical & link layers) of the reverse link (Demodulator) subsystem in a large CDMA-based satellite phone system, Globalstar. Used UML model and the Rational Rose CASE tool to design and develop system architecture. Used Class, Object and Interaction diagrams for documentation, analysis and design reviews.
- Worked in a UNIX (Solaris)/Windows NT development environment in several highly productive software development teams and in the subsystem test team, as a critical team member and resource. Used Clearcase for version control and automated builds, Requisite Pro for Requirements documentation and Livelink for design and test documentation control. Used the GNU compiler and tools in conjunction with the Tornado tool set for our embedded run-time environment.
- Team lead and senior team member for several teams in a multi-tiered project. Trained junior engineers and used my skills to leverage other team and project members.
- Worked with systems engineers to formalize system requirements. Used these requirements to write feature design documents, software design documents, test and verification plans and procedures, etc.
- Developed test tools and test environments for the Shelf Level (Subsystem) Test team and learning how to use a CORBA API for our test environment interface (Perl or C++ callable).
- Evaluated SNIFF+ and Visual Slickedit as part of a performance improvement initiative to get the development team to use an IDE.
- Participated as reviewer and reviewee in formal and informal design and code reviews required in the project.
- Designed and developed software (C++ & Perl) used to test the DMC at the unit, subsystem and system levels. Wrote test plans and implemented automated and semi-automated test environments.
- Worked as a Point-of-Contact between the production software team (RLGTS) and the Integration and Test teams. Utilized CR report and tracking tools and procedures, DDTS. Instrumental in the detection, diagnosis and closure of evasive software bugs and environment failures.
- Helped develop and implement effective engineering processes and procedures required in this large, complex project including requirements verification, software documentation procedures, software release procedures, test procedures, etc.
Independent Consultant
Confidential, Reno, NV
Responsibilities:
- Worked on a project for equity in a startup company in Connecticut called GW Scientific, developing a computer program that produces an early warning (1 to 6 hours) of stress conditions that may lead to heart failure. This program was used to analyze data, collected by a variety of Holter Patient Monitors and stored on a PC, used to verify the efficacy of the algorithm. . Software development was done using the Microsoft Visual C++ environment in C and C++. This work allowed the company to acquire additional funding to convert the program to operate in a real-time patient monitor for use in hospital and home patient monitoring equipment.
Senior Electronic Engineer
Confidential, Reno, NV
Responsibilities:
- Team Lead responsible for the completion of a one-year project for the Army. Redesigned for manufacture an 8051-based K-Band (24.15 Hz) Transceiver Pairing System. This system is mounted on tanks to simulate firings between individual tanks during war game exercises to determine hit/miss ratios (pairings) under realistic battle conditions. Each tank has a transmitter mounted in its gun barrel, 4 or 8 receivers and a receiver processor all communicating over a high speed, multi-drop serial communication link resembling the IEEE 422/485 standard using a military protocol. My design and development functions included Digital, Analog and RF/IF circuits and firmware integration.
R&D Manager/Senior Engineer
Confidential, Reno, NV
Responsibilities:
- Redesigned hardware and firmware in two embedded microcontroller-based devices in accordance with quality assurance and manufacturability requirements required by the FDA and internal Good Manufacturing Procedures (GMPs).
- Transitioned all Devices and Systems through the complete design cycle, from Product Specification to Production. Worked closely with Marketing and Sales in specifying and documenting products.
- Developed Test Procedures, Manufacturing Instructions, Bills of Material, Parts Lists, Specification Sheets, etc. to meet with FDA and GMP approval.
- Designed and developed a dense, double-sided, surface mount PCB layout required to add additional functionality to the small, battery-powered, hand-held monitor. Worked closely with Board and Assembly houses to produce a highly manufacturable and reliable device.
Firmware Engineer
Confidential, Reno, NV
Responsibilities:
- Firmware Design Engineer of three HPLC optical detectors, a scanning Fluorescence Detector, and two Scanning UV/VIS Absorbance Detectors.
- Designed, developed, and tested embedded system software in real-time, multitasking, 68000-based systems, using C and Assembly languages.
- Integrated hardware and software. Specified design of critical, real-time hardware (PLD design). Debugged systems with logic analyzers, emulators, scopes, etc.
Electronics EngineerI
Confidential, Rockville, MD
Responsibilities:
- Instrument Design Engineer of an Immuno-Assay Analyzer utilizing an Electrochemoluminescence measurement method to quantify the concentration of a broad spectrum of biochemical compounds. The analyzer system is composed of an IBM PC containing a PC board connected to a separate analyzer unit.
- Designed, tested and documented stepper motor control hardware of an autosampling system for the analyzer; Designed, tested, and documented digital and analog hardware modifications including a PAL design and a photon counter.
- Wrote and tested prototype software of the instrument.
Electronics & Firmware Engineer
Confidential, Crofton, MD
Responsibilities:
- Systems Engineer and Software/Firmware Engineer of a three man, three year project: Designed, prototyped, tested, and documented a fetal heart monitor composed of an embedded, real-time microprocessor (80186) system
- Developed the system design of the fetal heart monitor; estimated subsystem specifications and costs; provided project schedule estimates; Determined requirements to meet medical safety standards.
- Responsible for all software design, documentation, and performance evaluation; wrote software in Assembly for real-time data acquisition and DSP requirements.
- Researched, developed, and tested digital signal processing algorithms on a PDP-11/23; explored implementations of these algorithms on AT&T and TI, DSPs.
- Designed and developed digital and analog hardware required in the fetal heart rate monitor; Used PC-based CAD tools for circuit design and layout.
- Wrote and reviewed patent documentation, research papers, proposals, and user manuals; Documented software and hardware with flowcharts and schematics.