View job here

Job Description

We are recruiting a firmware developer responsible for integrating kernel modules, and embedded systems, and developing libraries for high-level languages and firmware for automotive data acquisition devices. You will be working with other teams to determine the architecture and constraints of the project. Ideal candidates will have excellent skills in collaborative problem solving, the willingness to overcome hardware constraints, and the internal drive to create quality products.

Job Responsibilities

  • Analyze the project and participate in discussions with hardware designers, 3rd party driver teams, etc.
  • Design, build, and maintain efficient, reusable, and reliable C / C++ code.
  • Implement performance and quality modules.
  • Identify bottlenecks and bugs, and devise solutions to this problem.

Required Skills

  • Bachelor's/Master's degree in computer science, information systems, or a related field experience.
  • Strong proficiency in C / C++, with complete knowledge of the language specification.
  • Good understanding of memory management in non-garbage-collected environments.
  • Knowledge of low-level threading primitives and real-time environments.
  • Knowledge of component data sheets and specifications.
  • Familiarity with language tools, such as Lint, Valgrind, etc.
  • Good knowledge of CMake and building Linux systems using build root/Yocto.
  • Understanding of underlying electronics to the point where it influences firmware development and debugging.
  • Implementing automated testing platforms and unit tests.
  • Proficient understanding of code versioning tools such as Git, SVN.
  • Excellent analytical and problem-solving abilities.
  • Quality assurance through test-driven development and unit tests.
  • Refactoring of source code to optimize existing components in terms of efficiency, maintainability, and quality.

Preferred Skills

  • XML, Linux / batch scripts, and Python scripting knowledge would be preferred.
  • Experience with automotive protocols (CAN / CCP / XCP / UDS).
  • Knowledge of continuous integration.
  • Excellent teamwork and communication abilities.
  • Excellent organizational and time management abilities.
  • Effective scrum master experience.
  • 4-8 yrs of experience.