Job Description As a Senior 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 the full development cycle of the positioning receivers utilizing the OS, from participating in studies and requirement engineering, to implementation, verification, delivery and maintenance.
The Embedded Operating System team is a part of the Embedded Systems value unit which consists of several cross-functional teams and is responsible for software that boots up u-blox receivers and manages their resources. Members of the Operating System team are working within the value unit’s cross-functional teams, providing OS expertise. You will have opportunities to get out of your comfort zone and explore adjacent topics that the value team is working on, which can be outside of the OS domain.
In your daily work, you will be using an Agile approach, collaborating with other developers through Teams, Confluence, Jira, Gitlab 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 analyzer is necessary.
Your Responsibilities
Your Skills and Experience
Bonus Points
What are your perks?
Senior Software Engineer • Tampere