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.