Responsibilities
· Design and implement software of embedded devices and systems from requirements to production and commercial deployment
· Design, develop, code, test and debug system software
· Review code and design
· Analyze and enhance efficiency, stability and scalability of system resources
· Integrate and validate new product designs
· Support software QA and optimize I/O performance
· Provide post-production support
· Interface with hardware design and development
· Assess third-party and open-source software
Requirements
· Proven working experience in embedded software
· Bachelor’s degree in Computer Science or Engineering
· Experience in hands-on development and troubleshooting on embedded targets
· Solid programming knowledge in C or C++
· Proven experience in embedded systems design with preemptive, multitasking real-time operating systems
· Familiarity with software configuration management tools, defect tracking tools and peer review
· Adequate knowledge of reading schematics and datasheets for components
· Strong documentation and writing skills
· Experience working with Arm Cortex-M microcontrollers.
· Hand-on knowledge of Linux Build Environment for Cross-compilation and building of embedded software.
· Able to develop device drivers to interface with Master Controller using i2c, spi or uart serial protocols.
· Team Player and a knack for solving problems.
Nice to Have (But not Mandatory):
· Experience with wireless protocols such as BLE and WiFi.
· Previous experience with nrf microcontrollers and nrf sdk.
· Have experience of Leading a Firmware Team.