Great vacancy Senior Embedded Software Engineer hiring now


Data Privacy

u-blox respects your privacy and is committed to protecting your personal information that you share with us. Your information will not be disclosed to any unauthorized third party, i.e. u-blox will only disclose your information to those contractors or employees of u-blox AG or any of its affiliated companies (parent company, subsidiaries) who have a reasonable need to know your information in order to hire new staff or to keep a reasonably confined database for future hiring purposes. Please ensure that your application does not contain any sensitive personal information (religious beliefs / sexual orientation / health information / race / trade-union membership). If you wish to have your personal information removed please click the following link contact us.
Return to u-blox site

Applicant Portal


Job Details: Senior Embedded Software Engineer

Full details of the job.

Senior Embedded Software Engineer
Tampere, Finland
u-blox (SIX:UBXN) is a global provider of leading positioning and wireless communication technologies for the automotive, industrial, and consumer markets. Our solutions let people, vehicles, and machines determine their precise position and communicate wirelessly over cellular and short range networks. With a broad portfolio of chips, modules, and a growing ecosystem of product supporting data services, u-blox is uniquely positioned to empower its customers to develop innovative solutions for the Internet of Things, quickly and cost-effectively. With headquarters in Thalwil, Switzerland, the company is globally present with offices in Europe, Asia, and the USA.
As a Senior Embedded Software Engineer you will be part of the operating system team that belongs to an R&D division of u-blox’s Positioning product center. The team is responsible for providing reliable, scalable and secure real-time operating system for a wide variety of u-blox positioning products. We design, implement, test, document and maintain low-level platform software that boots up the system and manages its resources. That includes, amongst other things: startup, power management, task scheduling and communication, exception and interrupt handling setup, memory management, security services and device drivers.

Our software runs on embedded processors integrated with several RAM and ROM blocks, specialized signal processing acceleration units and other custom HW, as well as standard peripheral blocks within System-on-a-Chip products. We work closely with several hardware and software teams to help bring up new chips, prototype and implement features, perform system-level testing and optimization. We also cooperate with architecture, product and application engineering teams, receiving feedback about and improving our software.

You will be part of an international multi-site team. In your daily work you’ll be using Scrum and the following tools to cooperate: Jira, Phabricator, git, wiki. You will mainly program in C but also will use assembler for ARM (Thumb2), C++, Perl and Python where necessary. You have a general understanding of digital electronics and are able to use, e.g., a Lauterbach debugger and lab equipment for debugging purposes.

The position shall be based in Tampere, Finland or in Thalwil, Switzerland. There shall be occasional travel to other u-blox sites within Europe.

Your Responsibilities
  • Participate in design, implementation, testing and optimization of operating system software for new and existing platforms of u-blox positioning products
  • Review and refactor code, fix issues, collaborate with product and application engineering teams to help improve software
  • Create and maintain technical documentation for developed software modules and features
  • Take part in design of new SoC platforms, provide input from OS perspective

Your Skills and Experience
  • BSc., MSc or specialist diploma in computer science, electrical engineering or equivalent studies, as well as 5+ years in the following topics
  • Good understanding of operating system design concepts, such as synchronization primitives, inter-task communication, scheduling disciplines, etc.
  • Good understanding of algorithms, data structures, time and memory complexity
  • Knowledge of computer architecture in general, familiarity with ARM architecture, knowledge of embedded peripheral interfaces
  • Hands-on knowledge of low-level embedded software development with real-time operating systems using the C programming language
  • Sound analytical and problem-solving skills
  • Fluency in written and spoken English
  • Solid experience with git, Linux command-line environment and basic development tools (make, gcc- and/or clang-based toolchains, doxygen, etc.)

Bonus Point
  • Other programming and scripting languages, such as C++ and Perl
  • Knowledge in GNSS technology
  • Knowledge in software testing, test automation, continuous integration concepts
  • Experience with agile methodology, especially Scrum
Are you interested in this challenging position within an international work environment in a successful company? Apply now! You will be working with a motivated team in an exciting technology.

We are looking forward to receiving your application.
Previous MonthNext Month