Embedded Systems, Machine Learning Developer

Job description

We’re looking for an experienced embedded systems machine learning developer to join our Embedded Platform Optimization team. The team’s mandate is to harness the capabilities of embedded platforms from a variety of manufacturers, be it Qualcomm, Intel, NVIDIA, etc. to run wrnch.ai's latest innovations. After a product implementation has been completed you will then become a subject matter expert for that embedded platform and maintain and support it. 

The types of projects you will be working on will include:

  • Grappling with specialized inference frameworks for a variety of edge devices (like Qualcomm SNPE, CoreML, etc.), ensuring that the platform implementation maximizes the use of on-board compute resources while maintaining the quality of ML inference results 
  • Validating the output of ML inference on supported edge platforms, ensuring that your implementation meets the appropriate quality standard. 
  • Handling a steady flow of new and improved ML models in the realm of human pose estimation, as the wrnch.ai toolset grows and evolves, and optimizing those for a number of edge platforms
  • Assisting important customers with integration support of wrnch.ai's platform solutions into their hardware products. 

Your typical day-to-day work will include tasks like:

  • Writing C/C++ code to implement the required i/o processing, and analyze the output of neural network inference in applications such as markerless motion capture on embedded devices
  • Participating in team scrums and agile sprint planning and review sessions
  • Developing an understanding of the strengths and weaknesses of a variety of ML inference frameworks, with a view to becoming an integration expert in those frameworks

Job requirements

In order to be considered, you must have:

  • Bachelor’s degree or higher in computer science, engineering, or related field.
  • 5+ years of low-level programming and embedded application development experience in industry.
  • Familiarity with coding, debugging and profiling on embedded platforms.
  • Mastery of modern standards and programming in C and C++.
  • Experience developing software on embedded hardware such as Qualcomm Snapdragon, NVidia Jetson, Intel Myriad, Google Coral, Raspberry Pi, etc.
  • Familiarity with cross-compilation toolchain and build systems (e.g. CMake).
  • Comfortable working in a collaborative environment (e.g. participate in SCRUM and planning meetings, contribute to and accepting peer code reviews, adhere to coding standards).
  • Dedication to writing production-quality code that is robust, elegant, portable and bug-free.

We’d also love it if you had the following (though not required):

  • Experience with Machine Learning edge platform frameworks (e.g. SNPE, CoreML, OpenVINO, TensorFlow Lite).
  • Experience training and optimizing machine learning algorithms (e.g. quantize/recalibrate neural network models).
  • Experience with GPGPU compute frameworks (e.g. CUDA, OpenCL, Metal, Vulkan, OpenGL ES 3.1+).
  • Experience in system programming.
  • Experience in mobile app languages (Swift, Kotlin) a plus.

What comes next?

If you think this challenge is right for you, we encourage you to apply. Our application process is quite simple so, it won't take long. Upon submission, you’ll receive an email outlining what comes next.

wrnch is passionate and committed to creating a diverse environment. We are an equal opportunity employer. If you require special accommodations, please apply and you will receive instructions on how to contact us to discuss when we confirm receipt of your application.

About wrnch - Create something bigger through AI.

wrnch is one of Canada’s first profitable AI companies, and we are growing!

We collaborate with global brands like Nikon, Intel, and The Mill to change the way humans interact with technology and the world around them. Together, we build magical experiences that make our everyday lives safer, healthier and a lot more fun.

wrnchAI is our high-performance, deep learning runtime engine, engineered and designed to extract human motion and behaviour from standard video. It analyzes regular 2D RGB video and returns 3D motion data in real-time.