Principal Embedded Software Engineer
Role details
Job location
Tech stack
Job description
-
Architecting, developing and debugging low-level embedded software and device drivers across Embedded Linux, RTOS and bare-metal platforms.
-
Leading platform software activities, including software design, task planning, integration testing and technical reviews.
-
Investigating and resolving complex real-time system issues across multi-threaded, event-driven embedded systems.
-
Collaborating closely with hardware teams during board bring-up, system integration and product development.
-
Driving technical standards and mentoring engineers across the embedded software team.
Requirements
-
8+ years' embedded C development experience delivering commercially released real-time embedded products.
-
Strong expertise in low-level device drivers, Embedded Linux driver architecture and ARM-based platforms/BSPs.
-
Excellent debugging and problem-solving skills within multi-processor, multi-threaded embedded systems.
-
Experience working across the full software development lifecycle including design, testing and integration.
Bonus Skills:
-
Experience within telecommunications, wireless communications or mobile embedded products.
-
Familiarity with hardware debugging tools including oscilloscopes and logic analysers.
-
Experience with automated testing, profiling, code coverage and memory analysis tools.
-
Knowledge of Agile / Scrum development environments and modern software quality processes.