Sr. Firmware Engineer Job Description Template
Our company is looking for a Sr. Firmware Engineer to join our team.
Responsibilities:
- 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.
Requirements:
- 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.