Principal Firmware Engineer Resume
SUMMARY:
- Software/Firmware engineer with 15+ years of experience in real - time and embedded systems.
- Over 10 years of Linux and Unix experience.
- Strong skills in real-time, embedded, C/C++, Python, Scripting, and assembly language.
- Experience with software development life cycle methodology and tools, such as Agile, Git, Redmine/Jira, and Code review/collaborator.
- Experienced in networking protocols and datagrams, such as TCP/IP, UDP, and ICMP.
- Skilled with security protocols, encryption and software, such as VPN, PKI, Openssl, Quicksec, and Strongswan.
- Experience with performance analysis, benchmarking and code optimization.
- Strong communication and presentation skills.
- Ability to work in a fast paced environment with minimal direct supervision.
- Proven success in new software development, enhancement/support of existing applications, and automated hardware/software testing.
PROFESSIONAL EXPERIENCE:
Confidential
Principal Firmware Engineer
Responsibilities:
- Developed, and tested firmware for the Confidential / Confidential SSD product lines. These high performance SSD products are primarily used by data centers.
- Performed feature development, failure analysis, and bug fix for Flash Transition Layer firmware and drive bring-up.
- Developed Flash page simulation for simulation debugging and testing.
- Software was written in C/C++ for ARM7, ARM9, and Cortex. The design utilized multiple cores and MPU's.
- The development environment incorporated GIT Source Code Management and JIRA defect management. Supporting software was written in Python.
- Earlier SSD products used a proprietary rt-exec. More recent products (last 2 years) use ThreadX.
- Development included simulation and device integration testing, and unit testing using CPPUtest and OpMock. Debugging with Jtag, Lauderbach, and GDB.
- Worked with Agile software development process across local and remote cross functional teams. Development and simulation was done in Linux.
- Additionally, participated in documentation, code reviews, demos, and status updates.
Technical skills used: C and Python languages, ARM embedded development, Agile, Git code control, Jira defect reporting.
Confidential
Senior Software Engineer IV
Responsibilities:
- Designed, developed, and tested network software and applications for Confidential 's line of secure communications server products. Real-time systems software was written for Linux using C and C++. The applications level software also included development in Python and Java.
- Developed test software in Linux C++ for testing 5000 handsets with 500 simultaneous voice calls.
- Developed specialized voip software for General Dynamics and L3 Communications secure cell phones based on Windows Mobile / Windows CE. All software was written in C++.
- Developed communications software for Confidential 's vending machine payment software using ARM based embedded Linux.
Technical skills used: C and C++ languages, Python, Java, shell scripting, Unix/Linux, ARM embedded development with OpenEmbedded and Lantiq toolchains, Quicksec, Python Selenium, openssl, and Strongswan.
Confidential
Software Engineer
Responsibilities:
- Ported a 500,000 line C language control software for the Mark IV PVD semiconductor system from a proprietary operating system to Linux.
- The project included a rewrite of GUI modules to X-Windows, including development of a graphics editor to handle proprietary picture files.
- Wrote an Intel RMX PL/M to Linux C translator capable of 100% conversion, and converted the legacy PL/M based TAZ Mark II control software to Linux.
- Developed a hardware simulator for the Mark II system to allow software maintenance without the requirement for actual hardware.
- The simulator samples stepping motor and analog/digital outputs and creates appropriate computer inputs.
- Developed an 80286 emulator to handle protected mode iRMX-II O/S binary load modules.
- The software included the emulation of over 80 iRMX functions including VGA graphics. The emulator permitted replacement of unavailable Multibus-I hardware with a Linux based controller.
Technical skills used: C Language, C++ Language, Scripting, PL/M Language, Unix/Linux, Real-Time/Embedded Software, Unix/Linux Device Drivers, Hardware Interfaces, Porting & Legacy Systems, Semiconductor Equipment, SECS/GEM, Compiler/Translator/Tools dev.
Confidential
Team Manager / Lead Engineer
Responsibilities:
- Designed and developed C/C++ control software for a $2,500,000 semiconductor wafer processing system utilizing six networked computers, LynxOs real-time Unix, and X-Windows based Graphical User Interface.
- Development included modeling and prototyping, simulation, production product development, integration of hardware/software, systems test, and initial customer support.
- As a team contributor, designed, coded and tested several major subsystems including the material handling robotics, the GUI, and the SECS/GEM interface.
- Over 50 systems were delivered to major semiconductor companies.
Technical skills used: C Language, C++ Language, Scripting, Unix/Linux, Real-Time/Embedded Software, Unix/Linux Device Drivers, Hardware Interfaces, Semiconductor Equipment.