Online I couldn’t find much information about which responsibilities an Embedded Machine Learning Engineer actually has. So, I thought it could be helpful to share the description I wrote for my current role.

Job Title: Embedded Machine Learning Engineer
 
Role Overview:
As an Embedded Machine Learning Engineer, you will collaborate with a highly interdisciplinary team to deliver end-to-end (software and hardware) application-use cases. Your work will involve developing, deploying, and maintaining firmware as well as Machine Learning pipelines, ensuring they run efficiently on our hardware platforms. This role is critical in creating intelligent, efficient, and reliable embedded systems that power our innovative products.
 
Responsibilities:
- Collaborate with a highly interdisciplinary team to deliver end-to-end (software and hardware) application-use cases.
- Develop, deploy, and maintain firmware and ML pipelines, ensuring they are robust, reproducible, and efficient.
- Analyze, profile, and benchmark firmware and ML models and pipelines to optimise for latency, memory, and power.
- Ensure accurate signal acquisition and data streaming at designated frequencies from various sensors like ADC (e.g., EEG, GSR, etc.), IMU, PPG.
- Contribute to the creation of IP (patents, know-how) and ensure the highest coding standards, documentation, and efficiency in product development.
- Stay up-to-date with the latest advancements in machine learning and embedded systems technologies and tools.
 
Skills and Qualifications:
 
Education:
- Master’s degree in Machine Learning, Data Science, Statistics, Computer Science, Electrical Engineering, or a related field. PhD is a plus.
 
Experience:
- Proven experience developing and deploying embedded or TinyML AI applications.
- At least 3+ years of hands-on experience delivering AI solutions.
- At least 1+ year of hands-on experience writing firmware for Embedded Systems.
- Experience with time-series data and sensor data.
- Familiarity with hardware AI accelerators architectures.
 
Technical Skills:
- Proficiency in Python (NumPy, Scikit-learn, TensorFlow, PyTorch) and strong programming skills in C/C++.
- Experience with Machine Learning model optimization techniques (e.g., quantization, pruning).
- Knowledge of neural network inference engines like ONNX Runtime, TensorRT, TFLite for Microcontrollers.
- Solid experience in software design, implementation, debugging, and profiling.
- Practical experience with Linux, version control systems (e.g., Git), build systems (Make, CMake).
- Experience with edge AI (e.g., Jetson Nano, Raspberry Pi) and IoT devices (e.g., nRF52840, ESP32).
- Familiarity with embedded operating systems like FreeRTOS and Zephyr.
- Knowledge of hardware interfaces and communication protocols like UART, SPI, I2C, etc.
- Knowledge of wireless communication technologies like BLE.
- Proficiency with electronics lab tools (e.g., oscilloscope, soldering iron, bench power supply) for essential hardware tweaks.
 
Soft Skills:
- Problem-solving and goal-oriented attitude.
- Excellent analytical skills and a good mathematical background.
- Strong verbal and written communication skills.
- Ability to work in a dynamic and interdisciplinary team environment.