Firmware Engineer

Salary Range

$135,000 – 215,000

Total Compensation:






hiresparks av manufacturer

Job Description:

A Firmware Engineer’s daily activities will include the full life cycle of design, development, modification, testing, debugging, and support for new and existing embedded software for our embedded Linux and Android-based products.

Job Duties:

  • Design, develop, implement, debug and maintain embedded real time applications for Android/Linux based products C, & C++ development environments.
  • Embedded Linux Kernel / OS development on ARM based platforms including configuration management, build, deployment, hardware interfaces, device driver, device tree
  • Work closely with other software and hardware engineers to solve design issues.
  • Responsible for design and implementation of new device features on multiple platforms
  • Responsible for the maintenance of current software including: feature enhancements, performance increases, troubleshooting, testing, and bug fixing.
  • Interfacing software applications with other devices and control systems
  • Providing technical documentation (test procedures, design specifications, etc.)
  • Special projects as assigned

Job Requirements:

  • A minimum of 6 years of proven experience developing and debugging embedded software, preferably for Android/Linux.
  • Must have strong C, & C++ skills.
  • Must have experience with:
  • Linux OS internals, Linux kernel software
  • Embedded Linux U-Boot/kernel development and customization
  • Linux Device Tree development
  • Embedded Linux device driver development, optimizations, bug fixing, add new functionality
  • Ability to independently read and understand electrical schematics
  • Hardware and software abstraction
  • File system operations
  • Multi-threaded and multi-process architectures
  • TCP/UDP client and server implementations
  • Resource constrained processors (e.g. single core ARM)
  • Experience debugging embedded systems where step debugging may not be available.
  • Experience with communication networks and protocols (e.g. USB, Ethernet, TCP/IP, etc.) are also beneficial.
  • Experience with HW accelerated graphics processing (OpenGL ES) is beneficial
  • Android NDK and SDK is beneficial