We will trust you with:
Developing software architectural design, implementing, maintaining and testing up to medium-scale embedded software components (e.g. complex device drivers, drivers that manage a small set of simple devices or other software systems of equivalent complexity);
Debugging and resolving complex issues in embedded systems, and performing root cause investigations for bugs utilizing tools such as oscilloscopes, logic analyzers, and hardware debuggers;
Planning software development activities for a small technical team (1 - 2 members), breaking larger work packages into tasks and estimating effort ensuring planned items are delivered on time and at the required quality;
Providing consultation on development strategy and assert related risks and technical gaps as early as possible;
Promoting best engineering practices and demonstrating sufficient knowledge and expertise in own developments and by providing feedback on fellow engineers’ work;
Designing and implementing verification platforms for all stages of product verification (IC verification, embedded software verification);
Developing requirements for embedded software components of all complexity levels;
Implementing and maintaining tests for embedded software (e.g. embedded test programs, scripts);
Collaborating with engineers of different disciplines in requirements and design activities of embedded software (e.g. application development, hardware development);
Proposing improvements on development processes and strategies;
Consulting less experienced engineers, providing coaching and training in selected areas of embedded software development.