JobsPortal logo

Search Jobs In Finland

Senior Embedded Software Engineer

Published date more than one year ago
Posted: more than one year ago
Company U-Blox
Company: U-Blox
Location Espoo
Location: Espoo

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 can be based in Espoo or Tampere, Finland or in Athens, Greece. Please state clearly in your application to which location you are applying to.
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

Please apply with your CV and motivation letter and clearly state the location you are applying to (Espoo or Tampere, Finland or Athens, Greece.