Senior Firmware Developer

Job Description

Summary:

Our Client is looking for a Senior Firmware Developer to join the firmware team in their Technical Design Center. The team develops and maintains firmware for telematics hardware platforms. This role requires experience with embedded firmware development. The candidate should possess excellent programming and debugging skills.

Key Responsibilities and Duties:

  • Advocate for best practices for firmware development, including source code control, continuous integration, coding standards, and unit testing. Define internal processes and standards.
  • Understand undocumented legacy code with complicated dependencies in order to troubleshoot bugs or extend features.
  • Define requirements for development and testing tools. Define new ways to use existing tools in order to improve development processes.
  • Select algorithms and design patterns considering embedded system constraints.
  • Break down user and technical stories into smaller tasks. Assist others in breaking down stories and improving estimation.
  • Lead technical architecture and design reviews.
  • Work with product management to define user and technical requirements.
  • Define and implement protocols for interacting with backend and mobile software.
  • Read schematics and component datasheets to understand requirements for hardware driver implementation. Provide recommendations to hardware engineers for component selection based on firmware needs.
  • Implement bootloaders and use hardware tools such as multimeters and oscilloscopes to bring up firmware on new boards from scratch.

Knowledge, Skills, and Abilities:

  • Bachelor’s degree (B.A./B.S.) from a four-year college or university in computer science, electrical engineering, or a related field (Master’s degree preferred); and 6+ years of experience in embedded development with escalating responsibilities; or equivalent combination of education and experience.
  • Fluency in C/C++ for embedded devices.
  • Experience with best practices for software development, including Agile methodologies and the use of tools for issue tracking, documentation, static code analysis, and unit testing.
  • Comprehensive understanding of real-time operating systems (embedded Linux experience highly desired).
  • Experience with common microcontrollers and microprocessors (ARM Cortex-M3/M4 highly desired).
  • Experience with automotive databus interfaces highly desired (CAN, J1939, UDS, OBD-II, J1587).
  • Excellent verbal and written communication skills.

Reference Number: 5232