Embedded Software Engineer
Embedded Software Engineer
Posted 5 days ago
SENIORITY
Lead
About the role
- Design, implement, test, debug, and support embedded operating-system and application software architectures that satisfy technical and customer product requirements.
- Develop embedded software in C and C++, including reusable software and system components for new and existing designs.
- Conduct unit, integration, and system testing; track reported defects; and verify the effectiveness of fixes through thorough validation.
- Develop automated tests and tools in a high-level language such as Python.
- Document designs clearly with comments, reports, and technical descriptions.
- Follow established coding standards and embedded software development best practices.
- Design and implement code within a controlled workflow using version control.
- Conduct and participate in peer code reviews.
- Work closely with other engineering disciplines to plan, design, and develop products that ensure software and hardware performance and compatibility.
- Serve as technical lead on assigned projects, coordinating with functional groups and customers to meet deliverables and resolve technical or product issues.
- Work independently and collaboratively within a team while consistently meeting critical deadlines.
- Drive innovative designs based on input from product management and end customers.
- Use AI tools appropriately and effectively to improve productivity and code reliability.
- BS or MS in Computer Science, Computer Engineering, Electrical Engineering, or a related field.
- 10+ years of relevant embedded software development experience.
- Strong experience with C/C++ embedded software development including object-oriented analysis and design skills, to create maintainable, modular, and reusable software architectures.
- Strong understanding of microcontroller architecture, timing, memory, interrupts, multithreading, real-time scheduling, IPC, and deterministic networking.
- Experience with real-time operating systems such as FreeRTOS, Zephyr, or Embedded Linux.
- Proficiency with test and debug tools such as multimeters, oscilloscopes, and logic analyzers.
- Experience with networking protocols, including TCP, UDP, and HTTP/HTTPS; prior experience with industrial wired networks is a plus.
- Excellent oral, written, and listening skills, with the ability to collaborate effectively with diverse professionals.
- Strong organization, attention to detail, problem-solving, decision-making, and time-management skills, with the ability to multitask, work independently, and consistently meet deadlines.
Before you apply
Applying takes about a minute. These four things decide how fast it moves after that.
Your profile is current
It's what we read first. Occupations, seniority and locations matter more than a long history.
Two examples you can talk through
Not a portfolio — just two pieces of work where you can explain the decisions and what you'd change.
A number in mind
What you're on now and what would make you move. We negotiate better when we know both.
Your notice period
Employers plan around it, and it's the question that stalls offers most often.
Once you apply, someone reads it and calls you before anything reaches the employer — usually within two working days.
