Sr. Firmware Engineer

Sr. Firmware Engineer Job Description Template

Our company is looking for a Sr. Firmware Engineer to join our team.


  • Define software architecture for product platforms;
  • Coordinates design of subsystems and integration of total system. Includes systems modeling, experimentation and data analysis, and system testing;
  • May perform limited project management duties;
  • Will initiate, recommend, or provide solutions through designated channels;
  • Develop software source code for products;
  • Coordinate with manufacturing to release and maintain products;
  • Develops and specifies data protocol messages required to transfer feature specific data between device, cellular network and backend IT systems;
  • Designs changes to improve overall system performance;
  • Responsible to assist the QA team in test plan creation and review;
  • Develop software functional specifications for products;
  • May make recommendations to the future direction of the products;
  • Work with communication protocols and peripherals, such as LTE, WiFi, BTLE, TCP/IP, and GPS;
  • Design and development of high performance firmware and software for cutting-edge enterprise SSD products;
  • Support customer qualification and adoption of SSD products;
  • Participate in ground-breaking advanced SSD storage development and research projects.


  • Familiarity with ARM or equivalent embedded multi-core microprocessor architectures is required;
  • Strong understanding of operating systems concepts such as thread scheduling, context switching and memory management is required;
  • Collaborate with others in the organization to define and improve system level requirements for the hearing aid firmware;
  • Participate in the creation of firmware requirements based on system requirements;
  • Storage industry experience or familiarity with storage protocols such as SAS / SATA / SCSI / FC / NVMe / PCIe protocols is required;
  • Have a solid understanding of system level requirements impacting firmware deliverables;
  • Candidate is expected to have experience in using ARM debuggers such as Lauterbach and Arium ;
  • Programming experience in scripting languages such as Python is desired;
  • Candidate needs to have a very good understanding of operating system concepts, algorithms and data structures.