Firmware / Embedded Software Engineer

GrAI Matter Labs (www.graimatterlabs.ai), a fabless semiconductor company specialized in brain-inspired technology, designs and develops fully programmable ultra-low power neuromorphic HW for sensor analytics and machine learning. The company has offices in Eindhoven (NL), Paris (FR) and San Jose (USA) and has strong relations with top-ranking research groups.

We are looking for Firmware Engineers to join our Software Team in Eindhoven. As a Firmware Engineer at GrAI Matter Labs, you will develop optimized low-level software for our neuromorphic processor. Your code will push to the limit the performance of our ultra-low power edge-of-the-cloud processors, and help us drive processor and system architecture evolution towards end solutions for reactive systems in the area of IoT and Computer vision.

As a member of this team, you will work closely with our architects, hardware designers, and tooling developers. As such, you will:

  • Find innovative ways to optimize application code such that it makes the best possible use of our unique hardware;
  • Design runtime support libraries to help application experts bring their ideas to our platform with maximum performance and minimal effort;
  • Provide validation tests for our neuromorphic processor architectures;
  • Define requirements to our SW development tools (compiler, IDE, simulator);
  • Propose improvements to our HW platform.

Responsibilities

You will be responsible for run-time software development, specifically focusing on optimizing for low power and high performance. You will apply your skills to many computing functions of interest to our target markets.
Your firmware will be applied in the development of end-to-end applications of artificial intelligence SoCs in various markets. Our run-time libraries will be used by customers to develop end-to-end applications running on our artificial intelligence SoCs.

Requirements

  • MSc in Computer Science, Electrical Engineering, or related field;
  • Excellent programming skills and knowledge of coding languages (e.g. C++, Python) and development frameworks/systems (e.g. Jira, Git);
  • Experience with software architecture, design and development in a test-driven environment;
  • Experience of parallel computing (eg., multithreading, hyper threading, GPU, …);
  • Ability to learn new languages and technologies;
  • Excellent communication skills in English (both speaking and writing);
  • Excellent problem analysis skills, resourcefulness and troubleshooting aptitude;
  • Team player with good interpersonal skills.

Nice to have

  • Knowledge/experience in deep learning and/or neuromorphic computing;
  • Knowledge/experience with data flow models of computation;
  • Knowledge/experience in optimizing compilers for embedded systems;
  • Knowledge/experience in SystemC;
  • Knowledge of one or more of the following fields: video analytics, virtual reality, imaging, natural language processing, digital signal processing;
  • Understanding of hardware development practices;
  • Familiarity with Agile development methodologies.