Firmware Engineer
About the role
We build IoT and smart home products that ship to thousands of devices worldwide. You will work across the firmware stack - drivers, application logic, tooling, and production support - on products that run in real homes, not just on the bench.
This is a broad role. You will touch hardware bring-up one week and fleet debugging the next, and you will own the parts of the system you build.
What you need
4+ years firmware development, ideally in consumer electronics or IoT
Strong C on resource-constrained MCUs, FreeRTOS or bare-metal
A shipped product - at least one that reached volume manufacturing with your firmware in it, and that you supported after launch
Hardware fluency - reading schematics, serial protocols (UART, SPI, I²C), board bring-up, and working from a datasheet without hand-holding
Debugging instinct - JTAG/SWD, logic analysers, scopes, and the patience to chase a bug that reproduces once a week
Tooling comfort - Git, CMake/Make, Python and bash for the scripts that make development and production work
Nice to have
Wireless connectivity - Wi-Fi, BLE, Zigbee, Thread, or Matter on embedded MCUs
Cloud-connected devices - MQTT, TLS, device authentication, AWS IoT Core
OTA firmware updates - A/B partitioning, image signing, rollback
Power optimisation for battery-powered devices
Certification experience (FCC, CE, SIRIM) or work with test houses
Production line bring-up: test fixtures, factory provisioning, yield debugging
Migrating firmware between MCU platforms
Our stack
Silicon: ESP32, nRF52, STM32
RTOS: FreeRTOS, bare-metal
Cloud: AWS IoT Core, MQTT/TLS
Languages: C, C++, Python, bash
Platforms: Linux and Windows
Tooling: Git, Make, CMake, JTAG/SWD, logic analysers, oscilloscopes
What you will actually do
Design, build, and maintain firmware for IoT and smart home products
Work across the full lifecycle - requirements, architecture, implementation, testing, release
Troubleshoot issues that span firmware and hardware, and figure out which side they are on
Improve existing architectures for robustness and scale
Evaluate and migrate between MCU platforms as products evolve
Build internal tools, test rigs, and production scripts
Prototype new features and product concepts
Review code and mentor junior engineers
Work with hardware, QA, product, and manufacturing through to delivery
Write design docs, test procedures, and release notes
How we work
Structured code review. Pull requests, agreed coding standards, feedback that is about the code
CI/CD built for embedded. Custom dev environment and build system - you will not spend your first month fighting toolchains
Experienced team. Teammates with 10+ years in embedded who are invested in knowledge sharing
Scale. Thousands of units in homes worldwide. Your bugs are real, and so are your fixes
Measures of success
Robust, stable, scalable firmware in the field
Releases that hit their milestones
Fewer firmware defects and support escalations over time
Hardware, QA, and manufacturing teams who want to work with you again
How to apply
Include in your application:
One product you shipped, and a specific problem you personally solved on it
A link to inspectable code if you have any - GitHub, a driver you wrote, anything we can read