You will join a firmware team implementing Morse Micro s IoT software stack for embedded devices, working closely with analog, systems, digital IC design engineers to build and maintain an elegant embedded software architecture. Your main focus will be firmware development for low-cost, RTOS-based devices, including 802.11ah upper layers, device drivers, network stack integration, as well as Python scripts for test and development, troubleshooting and debugging, and other related aspects.
Responsibilities include
RTOS device driver development
Network stack/protocol development, integration, and debugging
Implementation of upper layers of the 802.11ah standard in firmware
Various optimisations for performance, footprint and power consumption
Writing elegant Python scripts to facilitate testing and other tasks
Providing technical expertise and brilliance
There will be some customer interaction, e.g. implementation of customer requested features, resolution of customer found issues etc
Qualifications / Experience / Skills
BSc in Electrical / Electronics / Communication Engineering or Computer Science
3+ years relevant industry experience in embedded software projects
Proven experience in Firmware development using the C programming language
Experience in porting and using FreeRTOS or RT-Thread Real Time Operating Systems. Including bootloaders, device drivers, interrupt handlers and DMA routines.
Experience using software version control and issue tracking systems
Excellent verbal and written communication skills
Strong analytical and problem-solving skills
A hands-on, practical attitude
Desired requirements
A good understanding of IEEE 802.11 standard including 802.11 security model
Experience with ARM Cortex and RISC-V instruction sets and architectures
Experience in working on GNU/Linux, GCC and Make development environment
Experience in debugging with various hardware interfacing buses, like SDIO, SPI and I2C
Experience with wireshark for testing and debugging of 802.11 systems
Experience with real-time operating systems and embedded network stacks
Experience using Python for tools and scripts.
Experience in using static analysis and automated testing tools.
Bonus skills
Good understanding of C++
Experience with Linux driver and application development