Staff Embedded Software Engineer

Ford Ford · Auto · United States · PD Operations and Quality

Staff Embedded Software Engineer responsible for designing and implementing software for distributed embedded systems with multiple microcontrollers, focusing on reusable software designs, real-time communication, and low-level software development for a scalable platform. The role involves specifying requirements, developing software components, creating testing methodologies, debugging at hardware and HIL levels, defining system requirements, profiling performance, and collaborating with vendors and V&V teams.

What you'd actually do

  1. Design and implement software running on a distributed embedded system with multiple microcontrollers with a focus on creating re-usable software designs / components.
  2. Design and implement real-time Ethernet communication.
  3. Develop custom serial communication protocol over UART and I2C interfaces to support reliable data exchange between the device and external components.
  4. Specify requirements, design, implement, and test both bare metal and RTOS low-level software for creating a scalable platform.
  5. Work with hardware and debuggers at a bench and HIL level to verify software operation.

Skills

Required

  • C/C++
  • embedded design
  • bare metal
  • RTOS
  • electrical engineering fundamentals
  • circuit analysis and design

Nice to have

  • Zephyr OS
  • software build tools (Bazel, Scons, Cmake)
  • fundamental hardware components on PCB
  • testing scripts (Python)
  • software design and maintainability
  • hardware bring-up
  • system debugging
  • code optimization

What the JD emphasized

  • 10+ years of relevant experience in embedded design, using C/C++
  • Experience with bare metal and RTOS environment