Embedded Software Design Engineer
Role details
Job location
Tech stack
Job description
We're on the lookout for an Embedded Software/Firmware Engineer who loves working with embedded systems and enjoys getting hands-on with both code and hardware.
This is a great opportunity to work on exciting, real-world products that demand smart, reliable software. You'll be involved in the whole journey - from brainstorming ideas and designing solutions to testing, tweaking, and launching. If you enjoy solving tricky problems and seeing your work make a real impact, this could be a great fit.
What You'll Be Doing
-
Developing and improving embedded software and firmware for a variety of processors and microcontrollers.
-
Building and fine-tuning low-level drivers and communication protocols to keep everything running smoothly.
-
Writing clean, efficient C/C++ code that performs well in the real world.
-
Getting involved in early design discussions to help shape system architecture and technical decisions.
-
Working closely with hardware to figure out (and fix!) integration challenges.
-
Helping create secure and reliable firmware update systems.
-
Taking part in testing - from quick checks to full system validation - to make sure everything works as it should.
-
Keeping documentation clear, simple, and useful.
Requirements
Essential:
-
A degree or solid experience in Software Engineering, Computer Science, Electronics, or something similar.
-
Hands-on experience developing software and firmware for embedded systems.
-
Strong skills in C and C++, with a focus on writing reliable and maintainable code.
-
Experience with RTOS or bare-metal development.
-
A good understanding of microcontrollers and protocols like I2C, SPI, UART, and CAN.
-
Comfortable using tools like oscilloscopes and logic analysers.
-
Familiar with version control (e.g., Git) and Agile workflows.
-
Enjoys problem-solving and isn't afraid to get stuck into tricky debugging.
-
Communicates well and works well with others.
Nice to Have:
-
Experience working in regulated or safety-critical environments (e.g., DO-178C, ISO 26262, IEC 61508).
-
Knowledge of FPGA or other low-level hardware programming.
-
Experience with CI/CD pipelines and automated build/test tools.