Ellipticlabs logo 2019

Embedded Software Engineer - C/C++

  • Full-time
  • Oslo, Norway

Elliptic Labs, a fast-growing AI software company, is headquartered in Norway with presence in the USA, China, South Korea, Taiwan, and Japan. Founded in 2006 as a research spin-off from Norway’s Oslo University, Elliptic Labs filed its IPO with the Euronext Growth Market in October 2020. Elliptic Labs is now a global enterprise targeting the smartphone, laptop, IoT, and automotive markets. The Company’s patented AI software combines ultrasound and sensor-fusion algorithms to deliver intuitive 3D gesture, proximity, and presence sensing experiences. Its scalable AI Virtual Smart Sensor Platform creates software-only sensors that are sustainable, eco-friendly, and already deployed in over 150 million devices. Elliptic Labs is the only software company in the market that has delivered detection capabilities using AI software, ultrasound and sensor-fusion deployed at scale. Elliptic Labs’ technology and IP are developed in Norway and solely owned by the Company.

We are looking for an experienced developer with knowledge of software architecture and design patterns for embedded systems. You will be working on the implementation of advanced machine learning algorithms for gesture recognition.

What will you be working with?

  • Software for embedded, real-time audio processing 
  • Implement machine learning algorithms in C/C++ for various SoCs/DSPs  
  • Debug, test, and profile embedded software
  • Integration with laptop, smartphone and IoT platforms
  • Android, MS Windows, AOSP, Linux kernel, Qualcomm Hexagon, ARM Cortex, Intel
  • Development of internal SDK and tooling

Who are we looking for?

We do not have any hard requirements but we are looking for candidates with some of the qualifications or skills listed below:

  • BSc / MSc in Computer Science, or equivalent 
  • Fluent written and oral communication skills in English
  • Ability to plan work, interface with other engineers, and communicate results effectively
  • Programming experience with C/C++
  • Cross platform development using C or C++
  • Modern C++ (C++11) and STL
  • Knowledge of software design patterns and best practices
  • Experience with embedded real-time system development
  • Algorithm design, mathematical principles and signal processing theory
  • Build tools and toolchains: make, cmake, GCC, Clang/LLVM, Visual Studio, Git, Docker
  • Scripting languages such as Python
  • Worked with Linux environments
  • Knowledge of and experience with microcontrollers, SoCs, and DSPs
  • Continuous integration and continuous development (CI/CD)