North America
Mid-Senior Level
Bachelor or above

Main responsibilities:

  • Development, customization, maintenance, implementation and design of a complex project modules and embedded software
  • Responsible for the development and debugging of Linux common peripherals (UART, I2C, I2S, SPI, SDIO, EMMC, PWM, camera, LCD, gyroscope)
  • Support and respond to technical queries and requirements to company customers
  • Troubleshooting, bug fixing and improving application performance
  • Discover, evaluate, and implement new technologies to maximize development efficiency
  • Lead and guide junior members in the team.


  • Some experience developing applications and firmware in C/C++ on Linux and/or RTOS embedded systems.
  • Good data structure and algorithm knowledge.
  • Some experience on debugging with GDB or JTAG debugger.
  • Motivated individual to learn and grow together by working with team and should be able to develop modular and scalable code in embedded systems.
  • Operating system internals and Linux kernel build and configurations knowledge.
  • Knowledge on various peripheral technologies, including low-speed peripheral and high-speed peripheral busses i.e. USB, I2C, SPI, UART, I2S.
  • Some experience on pin-control software, GPIO and ADC is required.
  • Some experience with socket APIs, inter-process communications, and multi- threaded programming.
  • Working knowledge on networking protocols, including TCP and UDP.
  • Knowledge on source code management like SVN, GIT and PERFORCE.
  • Experience working on cross-functional teams using agile software development methods.
  • Requires a BSEE/CS combined with some related experience, or an MSEE/CS combined with some experience.
Apply Now