The Role:
We are seeking a highly skilled and motivated Embedded Systems Engineer to join our growing team. In this role, you will play a key role in developing robust and efficient innovative software solutions. You will work across the entire software stack, from low-level hardware interactions to higher-level application enablement.
Responsibilities:
* Design, develop, and optimise runtimes for embedded environments, ensuring efficient resource utilisation and performance.
* Develop and maintain bootloaders and Board Support Packages (BSPs) for various embedded platforms.
* Design and implement device drivers for a wide range of peripherals, interacting directly with hardware.
* Integrate runtimes with Real-Time Operating Systems (RTOS) or bare-metal systems, enabling the development of modular and scalable embedded applications.
* Collaborate with hardware engineers to define and optimise hardware/software interfaces.
* Perform debugging, testing, and validation of embedded software to ensure high reliability and stability.
* Contribute to architectural discussions and drive best practices in embedded software development.
* Document designs, implementations, and test procedures.
* Stay up-to-date with emerging technologies and industry trends in embedded systems, microservices, and containerization.
Required Skills and Qualifications:
* Bachelor's or Master's degree in Electrical Engineering, Computer Engineering, Computer Science, or a related field.
* Proven experience in embedded software development
* Strong proficiency in C/C++ programming for embedded systems.
* In-depth understanding of RTOS concepts and experience with at least one RTOS (e.g., FreeRTOS, Zephyr).
* Experience with bare-metal programming and understanding of microcontroller architectures (e.g., ARM Cortex-M/R/A, RISC-V).
* Demonstrated experience in developing bootloaders and BSPs.
* Experience with debugging tools (e.g., JTAG/SWD debuggers, oscilloscopes, logic analysers).
* Version control proficiency (Git).
Highly Desired Skills (Bonus Points For):
* Experience with microservices architecture and development in constrained environments.
* Familiarity with container technologies (e.g., Docker, LXC) and their application in embedded systems.
* Experience with integrating and optimising container runtimes on RTOS or bare metal.
* Experience with scripting languages (e.g., Python, Bash) for automation.
* Familiarity with network protocols and communication interfaces.
* Understanding of security principles in embedded systems.
* Experience with continuous integration/continuous deployment (CI/CD) pipelines for embedded software.
Join Our Team:
If you are a passionate Embedded Systems Engineer with a desire to push the boundaries of what's possible in embedded software and microservices, we encourage you to apply!
1.