As an Embedded Software Engineer in the Embedded Operating System team, you will work to bring the company’s in-house operating system to new generations of positioning receivers. You will be involved in full development cycle of the positioning receivers utilizing the OS, from participating in studies and requirement engineering, to implementation, verification, delivery and maintenance.
In your daily work, you will be using Agile approach, collaborating with other developers through Teams, Confluence, Jira, Gitlab, wiki and Jama. You will mainly program in C but will also use assembler for ARM (Thumb2), Python, Perl, and C++.
To be successful in this role, you need to be comfortable in finding your way in a complex codebase, identifying main components and discerning interfaces from their implementation. You should be experienced with code reviews and collaboration on a shared codebase. Proficiency with embedded system design specifics (SW, HW) and OS internal mechanisms: drivers, networking, memory management, persistent storage, task scheduling and IPC, etc., is required. In addition, a good general understanding of digital electronics is beneficial, as well as being able to read schematics and use soldering iron. Experience with using on-chip debugger, oscilloscope and logic analyser is necessary.
There shall be occasional travel to other u-blox sites within Europe.