Senior Embedded Engineer Engineering





Job description

The Senior Embedded Engineer will steer the development of the next-generation edge device software that brings AI onto the IoT devices equipped with various cutting-edge sensors. The software, which cooperates with cloud platforms, solves challenging problems in the world of IoT such as centrally managing massively distributed devices, deploying and upgrading applications remotely, securing data end-to-end, and optimizing the placement of workloads onto a set of heterogeneous devices. The designed edge devices should work in ultra-low-power and they are subject to several constraint conditions such as high/low ambient temperatures and limited energy budget from battery power or network connectivity. The devices integrate tightly with various sensors/accelerators to reduce power consumption in order to offer an optimal solution for constrained environments like Smart City or Smart Retail among others.

We are looking for a highly motivated and hands-on individual who is willing to learn new technologies and innovate and has strong analytical, problem-solving, and communication skills, as well as the ability to take on multiple responsibilities at once.  Must be able to work in a fast-paced environment with teams distributed around the globe.


  • Write firmware with an Agile mindset for high quality and timely delivery, to help achieve company business goals.
  • Develop Edge Platform Software that works across various RTOS available in the market.
  • Design and implement dynamic software loading systems over the network.
  • Design and implement highly concurrent software components.
  • Test and debug.
  • Interact with the product team to gather requirements, participate in architect design solutions, provide means to deploy and support our software.
  • Provide guidance to junior engineers.
  • Work with HR, eventually, to help grow the engineering team.

Desired Skills and Experience

  • Strong relevant embedded development experience.
  • Strong development experience in C, Python and Shell scripting.
  • Familiarity with POSIX standards (libraries, compliant OS).
  • Familiarity with UNIX-like environments for development.
  • Socket programming experience.
  • Concurrent and asynchronous programming.
  • Experience in containerization (Docker).
  • Experience in IoT and remote management of devices.
  • Knowledge of End-to-end security architecture.
  • On-Chip debugger experience (GDB/LLDB).
  • Experience with Version Control tools (Git).
  • Strong analytical skills.
  • Strong written and verbal communication skills.
  • Experience developing on the NuttX RTOS.
  • Cloud technologies such as Kubernetes, Azure, AWS, etc.
  • Dynamic software loading on RTOS.
  • Software Testing Framworks: PyTest, CMock, etc.
  • Software development in testing and
  • Knowledge about L2-L7 network protocols including Ethernet, IP, TCP, HTTP.

Additional skills and experience as a plus

  • Debugging peripheral buses and GPIOs using an oscilloscope/logic analyzer.
  • Knowledge about electronic circuits to read schematic sheets and utilize for debugging.
  • Strong system architecture design experience in embedded software. e.g. RTOS selection, power modes and system clock management.
  • Deep knowledge of controlling hardware inside/outside of MCU and for designing services based on such hardware functionality.
  • Experience designing software for memory-constrained settings such as tiny MCUs.
  • Knowledge of higher-level system languages such as C++ and Rust.
  • Experience designing and developing peripheral drivers such as DMAC, I2C, SPI, some specific IP.
  • Sensor technologies and/or specific SW programming (DSP, ISP, FPGA, etc)


BS or MS in Computer Science, or a related field, required.

Other requeriments

  • EU Residence (Mandatory).
  • Strong written and verbal communication skills in English (Full Professional Proficiency).
  • Spanish or Japanese as a plus.
  • Job location in Barcelona (Spain).