We provide IT Staff Augmentation Services!

Firmware Engineer Resume

5.00/5 (Submit Your Rating)

Cedar Rapids, IA

SUMMARY

  • 8 years of professional experience in Embedded Firmware, Application & Driver Development.
  • Embedded Firmware development (C, Embedded C, RTOS: Linux, QNX Neutrino, µC/OS - II and VxWorks).
  • Hands-on experience in Device Driver and API library development.
  • Expertise in System Analysis, Design and Development of various projects in multiple domains.
  • Experienced in software product life cycle, design process including requirement definition, prototyping, proof of concept, design, implementation, testing (unit & regression), bug fixing and maintenance.
  • Expertise in various embedded application solutions for various embedded products.
  • Knowledge of real time communications/network implementation.
  • Rich hands-on programming experience in C, Embedded C, Assembly language and Data structures.
  • Experience in C++ Object oriented programming.
  • Provided various software programming solutions for embedded software applications, management software, Multithreaded programming, Unix/Linux programming, POSIX programming, IPC/Socket programming and Deadlock prevention in multicore environment.
  • Experience using embedded development tools including JTAG emulators, Logic analyzers and Digital/analog scopes.
  • Hands-on experience in Python and Shell scripting.
  • Experience in Configuration Management tools such as SVN and Clearcase.
  • Excellent Analytical, Debugging and problem solving skills.
  • Experience in working with cross-functional teams.
  • Highly motivated and detail oriented with strong work ethics.
  • Excellent communication, interpersonal and documentation skills.
  • Ability to work effectively and make significant contribution in team and group environments.

TECHNICAL SKILLS

Programming Languages: C/C++, Embedded C, Assembly Language and Matlab.

Scripting Languages: Python and Shell.

Software Tools: Simplicity Studio 4.0, Perforce (P4V Visual Client), AVR Studio 4, Keil µ Vision 4, GIT, GitHub, Bitbucket, Git Extensions, SourceTree, JIRA, IBM Rational DOORS, LDRA Testbed, Microsoft Visual Studio Express 2013, GvEdit, Borland C++, CCS 5.3.0, Dev C++, Notepad++, GCC, GDB, SlickEdit, Saleae Logic Analyzer, Beagle Logic Analyzer and SPI Protocol Analyzer, Advanced Design System, IBM Rational ClearQuest, Putty, HyperTerminal, Simplicity Commander, SVN, Clearcase, J-Flash v6.56, Araxis Merge, WinMerge, Beyond Compare, AsciiDoc and Microsoft Office.

Hardware Tools: ARM Cortex M3 based NXP micro-controller (LPC1768), ARM (Cortex M4 & M33) based Silicon Labs SoCs (MGM12P & EFR32MG21), ARM A7 processor, AVR based Atmel micro-controllers (XMEGA-A3BU Xplained & UC3-L0 Xplained), Thunderboard Sense 2, JTAG, Flasher Portable Plus, Spectrum debugger, Analog & Digital Oscilloscopes, Schematics and Vector Network Analyzer.

Protocols: UART, SPI, I2C, TCP/IP, CAN, UDP, ARP, DHCP, Mobile IP, SMTP, HTTP.

Networking Tools: Network Simulator 3 (NS-3), Wild packets Omnipeek and Wireshark.

Operating Systems: Windows, Linux, QNX Neutrino, µC/OS-II and VxWorks.

PROFESSIONAL EXPERIENCE

Firmware Engineer

Confidential, Cedar Rapids, IA

Responsibilities:

  • Design, development & debugging of application software using C/Embedded C in order to periodically exchange data, once every second in a client/server fashion, between a Zig-Bee Coordinator (MGM12P) and a Zig-Bee End device (EFR32MG21). Utilization of the on-board LEDs to provide an indication of the current status of the network.
  • Design, development & debugging of application software in order to commission a secure Zig-Bee 3.0 network between a Zig-Bee Network Coordinator and a Zig-Bee End device.
  • Firmware development using Simplicity Studio 4.0 IDE (consists of built-in GCC & IAR compilers) in Windows 10 environment.
  • Leverage GitHub/Git Extensions for version control, source code/project management and software peer reviews.
  • Perform power consumption analysis using Energy Profiler tool and network messaging/protocol analysis using Network Analyzer tool in Simplicity Studio.
  • Creation & debugging of a Bootloader project for the Zig-Bee Coordinator that enters into boot mode upon button press and presents a menu to the user to either upload/run an application image.
  • Creation of binaries for the application and the bootloader images that can be uploaded to a Stand-alone flash programmer (Flasher Portable Plus from Segger) using J-Flash v6.56.
  • HAL-level board bring up, porting over the code-base to custom prototype PCBs and opening up an UART bus to establish communication with an external module.
  • Take part in daily Stand-up Scrum meetings as part of an Agile Development process.
  • Provide documentation for the projects on GitHub in mark down (.md) & AsciiDoc (.adoc) format.

Environment: C, Embedded C, Simplicity Studio 4.0, GCC, GitHub, Git Extensions, EmberZnet SDK 6.7.2, Gecko SDK 2.7, Thunderboard Sense 2, EFR32MG21 & MGM12P radio boards with Wireless Starter Kit (WSTK) Mainboards, Custom prototype boards, Flasher Portable Plus, J-Flash v6.56, Simplicity Commander, Notepad++, Putty/HyperTerminal, WinMerge, Saleae Logic Analyzer and AsciiDoc.

HSIT Software Engineer

Confidential, Fort Lauderdale, FL

Responsibilities:

  • Decomposed system requirements into software requirements.
  • Designed and implemented software requirements for various applications (Primary Electrical Power System (PEPS), Roll Yaw Trim (RYT), Full Authority Digital Engine Control (FADEC) Wheel Brake and Tires (WBT), etc.) using C/Embedded C programming languages in Windows environment.
  • Performed Verification by design/develop/debug of Functional and HSIT tests (System level) for various applications (Fire protection, Oxygen, Fuel, Environmental Control system, Maintenance, etc.).
  • Application and requirement-based test case development (Verification) using Microsoft Visual Studio Express 2013 IDE (Integrated Development Environment).
  • Utilized GIT/Bitbucket for source code management and version control and Notepad ++ for text editing purposes.
  • Ensured that the developed code strictly adheres to the guidelines enlisted in the DO-178B Confidential for safety-critical software used in avionics software systems.
  • Fixed Defects/Bugs using JIRA, a tool used for issue tracking and project management purposes.
  • Used IBM Rational DOORS as a database for requirements and to keep track of any modifications in design/specifications.
  • Performed Static and Dynamic analysis using LDRA Testbed (MISRA C:2004).

Environment: C, Embedded C, Microsoft Visual Studio Express 2013 IDE, GIT, Bitbucket, SourceTree, JIRA, LDRA Testbed and IBM Rational DOORS.

Embedded Software Engineer

Confidential, Erie, PA

Responsibilities:

  • Designed and developed Embedded Control software using C/C++ in a QNX Neutrino (RTOS) environment.
  • Implemented SCNs (Software Change Notice) and worked on Defect fixes for various Baselines/ Release versions of the software. Used IBM Rational ClearQuest for tracking purposes.
  • Worked on implementation of Real-time Configurable Parameters, Monitor Parameters, On-Board Diagnostic Incidents, etc. based on Matlab models/handcode and also created HMI screens for the operator.
  • Firmware and Application development using GCC compiler on a QNX Host PC. Used Perforce (P4V Visual Client) for revision control and Notepad++/Vim for text editing purposes.
  • Involved in Software Releases for various customers like Union Pacific (Q1 ’16, Q3 ’16 and Q1 ’17), NS (Norfolk Southern), BNSF, Ferromex, etc. and Tier-4 Locomotives.
  • Software requirement review and revision in collaboration with Controls and Design engineers.
  • Performed Software tests/Validation on HITL Simulators (Hardware in The Loop) in a Simulation laboratory as well as on real locomotives.
  • Supported the escalations and was also involved in fixing of bugs found in the software during alpha, beta testing and field test on locomotives.
  • Participated in daily Stand-up Scrum meetings as part of an Agile Development process.
  • Performed technical peer reviews for software and provided assistance to peers troubleshooting difficult problems.

Environment: C, Embedded C, C++, GCC, QNX Neutrino, Perforce, Notepad++, IBM Rational Clearquest, Araxis Merge and Putty/Hyperterminal.

Embedded Engineer

Confidential, New York, NY

Responsibilities:

  • Designed and developed embedded real-time data monitoring system software using C/C++ in Linux (RTOS) environment.
  • Implemented Networking concepts like TCP/IP protocol for data transfer.
  • Software requirement review and revision in collaboration with Systems engineering team.
  • Firmware and Application development using GCC compiler in Linux Host PC.
  • Developed Python scripts for diagnostic purposes.
  • Developed a Linux driver for a portable device using i.MX ARM-based development kit.
  • Supported the escalations and was also involved in fixing of bugs found in the software during alpha and beta testing.
  • Optimized code to minimize memory usage and maximize CPU throughput.
  • Delivered software fixes or patches to different baselines, release versions of the software.
  • Performed technical peer reviews for software and provided assistance to peers troubleshooting difficult problems.

Environment: C, Embedded C, C++, Socket Programming, GCC, Gdb debugging, Linux and Python.

Embedded Engineer

Confidential, Methuen, MA

Responsibilities:

  • Developed and maintained code for data acquisition through peripheral protocols such as RS-232, SPI, and I2C.
  • Documented Functional specifications, Architectural revisions and Component designs.
  • Implemented the software using C/C++ and Assembly Language to transmit the data collected from the sensor using proprietary protocol stack.
  • Developed an Ethernet driver on Windows.
  • Customized user interface application used to analyze the data collected from the sensor and performed unit tests.
  • Performed on-target software debugging using BDM interface debugger.
  • Provided best solutions for the critical bugs by identifying the root cause of the issue.
  • Involved in every step of SDLC process like Requirement Analysis, Design, Coding, Unit testing, Release, etc.
  • Worked in close cooperation with project managers and other functional team members to come up with the best possible solution for the potential issues from the customers.
  • Developed test/analysis tools using Python scripting language.

Environment: C, C++, Assembly language, Embedded C, Multi-threading and thread synchronization, Windows, Tortoise SVN and Python.

Embedded Engineer

Confidential, Louisville, KY

Responsibilities:

  • Developed embedded software and was also involved in porting for end clients seeking to implement Bluetooth in their product line(s).
  • Implemented the change orders for the Bluetooth application according to the project requirements.
  • Teamed with Systems Engineering group to keep in-sync software requirements and modeling updates/changes.
  • Customized wireless protocol parameters to achieve faster wireless transmission data rates.
  • Worked with an array of microprocessors including ARM processors, and Texas Instrument’s DSPs.
  • Developed test software for GPIOs, PWM, ADC read & EEPROM read and write.
  • Created, debugged, and peer reviewed C based test scripting code.
  • Documented specifications and test cases.
  • Developed low-level Drivers using I2C, GPIOs, PWM, RS232 and CAN protocols.
  • Generated make files and played an active role in debugging firmware.

Environment: C, Borland C++ IDE, Assembly language, Shell, Embedded C, CCS 5.3.0 and Spectrum debugger.

Embedded Engineer

Confidential

Responsibilities:

  • Integrated code for HAL-level Bring up of Wi-Fi modules (Connect-io-n and WiSeConnect series) with Atmel XMEGA-A3BU Xplained and UC3-L0 Xplained Micro-controller boards using SPI and UART interfaces.
  • Configured the hardware unit based on the schematics and debugged the code using JTAG debuggers with AVR Studio 4.0 IDE.
  • Executed Test cases and documented the Start-up guide for the assigned Software Release task.
  • Developed Firmware using Embedded C, Assembly language and implemented a Detector-based RF Wake-up mechanism for Dual band (2.4/5 GHz) RTLS Tags in Power-Save mode by actively collaborating with a team of 4 members.
  • Spearheaded the RTLS Network Validation team and performed tests on RSSI and TDOA metrics for Wi-Fi based RTLS applications.
  • Developed test applications to test the functionality of the application programming interfaces of these peripheral components.

Environment: C, AVR Studio 4.0, Windows, Embedded C, GCC, GDB, SVN, Linux and Beyond Compare.

We'd love your feedback!