The Embedded Software Engineer role involves developing and maintaining firmware and low level software for embedded products. Candidates with practical experience in embedded systems design, hardware interfacing and real time software development should apply.
Embedded Software Engineer Job Profile
This role is responsible for the design, implementation and verification of embedded software that interacts directly with hardware components. The postholder will translate system requirements into reliable firmware, collaborate with hardware and test teams and contribute to product lifecycle activities.
The purpose of the role is to ensure embedded software meets functional, performance and quality targets while supporting integration, validation and maintenance activities across development phases.
Embedded Software Engineer Job Description
The Embedded Software Engineer will work within a cross functional engineering team to develop firmware for controllers and peripherals. Typical duties include writing and optimising embedded code, developing device drivers, implementing communication stacks and supporting hardware bring up. The engineer will produce clear technical documentation and participate in peer reviews to maintain code quality.
Work context includes close collaboration with hardware engineers, test engineers and systems engineers to resolve interface issues, diagnose faults and verify fixes. The role requires pragmatic problem solving, systematic debugging and the ability to balance functionality, performance and resource constraints inherent to embedded devices.
Expectations include adherence to software quality practices, contribution to design decisions, timely delivery of assigned features and support for integration and release activities. The engineer will be expected to identify risks, propose mitigations and support continuous improvement of development processes.
Embedded Software Engineer: Duties and Responsibilities
- Develop, test and maintain firmware for embedded controllers and peripheral devices.
- Design and implement device drivers and low level hardware abstraction layers.
- Integrate and validate communication protocols and peripheral interfaces.
- Perform hardware bring up, support board level testing and debug board issues.
- Optimise code for CPU usage, memory footprint and power consumption.
- Create and maintain unit tests, integration tests and test benches for firmware.
- Conduct code reviews and enforce coding standards and best practices.
- Analyse and resolve software defects using systematic debugging and root cause analysis.
- Produce technical documentation including design notes, release notes and test reports.
- Collaborate with systems and hardware teams to define interfaces and verify system behaviour.
- Support software integration, deployment and field issue resolution during product releases.
- Identify risks and propose mitigations for software reliability and maintainability.
- Contribute to continuous improvement of development processes and test coverage.
Embedded Software Engineer: Requirements and Qualifications
- Bachelor's or Master's degree in Electronic Engineering, Computer Engineering or related discipline.
- Proven experience designing and developing embedded firmware for commercial products.
- Strong programming skills in embedded C and familiarity with C++ in constrained environments.
- Experience with real time operating systems and concurrency concepts.
- Practical knowledge of hardware interfaces and communication protocols used in embedded systems.
- Experience with device driver development and hardware abstraction.
- Proven debugging skills using logic analysis and hardware test methods.
- Understanding of software quality practices, version control and testing methodologies.
- Ability to read schematics and collaborate effectively with hardware engineers.
- Good problem solving skills and the ability to work under constrained timelines.
- Strong written and verbal communication skills for technical documentation and cross team collaboration.
- Familiarity with secure coding practices and safety or regulatory considerations relevant to embedded products.
