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 response to technical queries and requirements to company customers
Troubleshooting, bug fixing and improving application performance
Discovery, evaluation, and implementation of new technologies to maximize development efficiency
Educational and Skill Requirements
Experience in developing applications and firmware in C/C++ on Linux and/or RTOS embedded systems.
Good data structure and algorithm knowledge.
Experience in debugging with GDB or JTAG debugger.
Motivated to learn and grow together by working with team
Capable of developing 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.
Experience in pin-control software, GPIO and ADC is required.
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 in working with cross-functional teams using agile software development methods.
BSEE/CS with related experience, or an MSEE/CS with related experience is required.