Embedded Engineer TinyML, Remote OK (Europe/US), Contract
About the role
Are you excited about bringing true intelligence to the smallest of devices?
Edge Impulse enables developers to create the next generation of intelligent device solutions with embedded Machine Learning (TinyML). We believe that machine learning will enable the valuable use of the 99% of sensor data that is currently discarded due to cost, bandwidth or power constraints. Our framework provides data ingestion, labeling, training, and deployment capabilities to accelerate developer success with ML on the edge.
As an embedded engineer at Edge Impulse you'll have the opportunity to not just work in, but define the field of TinyML and work at the cutting edge of ML, sensors and the web. You’ll work with our customers to port our SDKs to their targets, work with our ML engineers to design algorithms that run as efficiently as possible on real hardware, and build new signal processing pipelines for novel sensors.
You have experience shipping a complex embedded codebase that needs to run on multiple architectures, know how to write fast and maintainable code, and are a fast learner. We’re looking for someone who feels comfortable in all areas of our embedded codebase, and you’ll have the opportunity to work on other parts of our stack (including contributing to TensorFlow, or our web applications or ML pipelines) if that interests you.
What will I be accountable for?
- You’ll port our data acquisition tools, signal processing pipelines and ML algorithms to new development boards or end products. We target a wide variety of architectures, from ARM Cortex-M0+ to x86 to DSPs, and we expect you to be a fast learner.
- Work with our ML engineers to design new algorithms that work fast on our embedded systems. Think: can we reduce the resolution of variables while training an ML algorithm to 16-bit integers instead of 32-bit floats, and how does that affect accuracy vs. speed on embedded?
- Help us design the ultimate TinyML embedded developer experience. What’s the best way to collect data from real devices in the field? How would we design a delta-update system to update part of your ML model?
- Experience shipping embedded code (in C++) in real products.
- Understanding of signal processing and extracting features from sensor streams.
- You write defensive code.
- Self-starter, and can work effectively in a global, distributed team.
- Curious and inventive. You'll break new ground on a daily basis, and know how to deal with this.
- You feel strong about building a developer community. We want Edge Impulse to be the place where developers go to build TinyML models and learn from others.
Bonus points if…
- You have experience with machine learning, or are keen to learn about it.
- Have extensive knowledge on writing fast and efficient signal processing code, especially fixed-point algorithms.
- Know how to profile and benchmark code on embedded systems.
- You have worked on open source projects and with open source communities.
What we offer
- The chance to work in a field-defining startup involved since the beginning of TinyML.
- A well-funded startup with founders who care about team, users and values.
- An awesome product with a scaling user base and great enterprise customers.
- We value work-life balance, and are building a remote-first organization.
- We are committed to open source software and are working with leading open source projects like TensorFlow as well as our own device SDKs.
- We have offices in San Jose, CA and Amsterdam; but if you’re awesome and comfortable working remotely we’re cool with that too (Europe / US only)!
- A contract position, but if you want to come on as a permanent employee we can discuss that going into 2021.
Interested? Email Jan Jongboom (CTO) at [email protected] !
Note: We do not work with external recruiters.