Job Summary:
We are seeking a highly skilled and motivated ML and DSP real-time embedded Engineer to join our firmware team. In this role, you will be responsible for implementing cutting-edge machine learning and digital signal processing algorithms for our next-generation products. You will be a key contributor to the entire product development lifecycle, from concept to deployment, ensuring that our products are intelligent, efficient, and provide a seamless user experience.
Key Responsibilities:
- Implement and deploy machine learning inference models on resource-constrained embedded platforms.
- Implement and optimize real-time DSP algorithms for various sensor data streams (e.g., audio, motion, etc.).
- Collaborate with algorithm and software teams to integrate ML and DSP algorithms into the firmware.
- Profile and optimize code to meet strict performance, power, and memory requirements.
- Develop and maintain firmware in C/C++ for embedded systems.
- Participate in the entire software development lifecycle, including requirements gathering, design, implementation, testing, and deployment.
- Stay up-to-date with the latest advancements in ML, DSP, and embedded systems.
Required Qualifications:
- Bachelor's or Master's degree in Electrical Engineering, Computer Engineering, Computer Science, or a related field.
- 10+ years of professional experience in embedded firmware development, with a significant focus on ML and DSP implementation.
- Deep expertise in ML inference for embedded systems, including:
- Experience with real-time inference frameworks (e.g., TensorFlow Lite, ONNX Runtime).
- Experience with common NPUs (e.g., ARM Ethos-U55) and their corresponding compilers (e.g., Arm Vela).
- Deep understanding of NN model operator-level semantics.
- Experience in developing and implementing real-time DSP algorithms in close collaboration with algorithm teams.
- Strong programming skills in C/C++ for embedded systems, along with proficiency in Python.
- Extensive experience with embedded hardware and systems:
- Strong familiarity with microcontrollers and embedded processors.
- Hands-on experience with real-time operating systems (RTOS).
- Proven skills in low-power design and optimization techniques.
- Excellent problem-solving and debugging skills.
- Experience with agile development methodologies.
- Excellent communication and teamwork skills.
- A passion for building innovative products.