Embedded Software Engineer

Job description

The embedded team gets to work with the best hardware the world has to offer, in order to choose and create the ultimate platform for our products. As part of this team you will be responsible for fusing together hardware in creative ways, understand and develop Linux, kernel, drivers, boot-loaders, and adopt any firmware that doesn't yet do what we believe it can do. A major part of the job is constant learning of hardware components, such as Processors, Systems On Chip, a variety of semiconductor products and many more.

 

Your responsibilities in this role can include:

- Board bring-up involving embedded processor, System-On-Chip or micro-controllers

- Platform software support for various projects

- Bug fixing

- Performance improvements

Requirements

Must have:

- Proven experience in customizing Linux/Android kernels for custom boards.

- Experience in writing device drivers for various peripherals on embedded processor boards in C

- Experience in debugging the low level source code on the processor/SOC/micro-processor using In Circuit Emulators (JTAG/ICE) and other suitable methods

- Knowledge of processors/SOCs/MCUs

 

Advantage:

- Proficiency in embedded software programming in c/c++ on embedded processor/SOC/Micro-controller and Linux/Android

- Experience in working with version control systems like SVN and Git

- Experience in writing bash/python/ruby scripts

- Knowledge of standard protocols like USB, TCP/IP, I2C, UART,  MIPI-CSI and others