Our Client, an Internet Content & Information company, is looking for a Software Engineer III for their Redmond, WA location.
Responsibilities:
The ideal candidate is equally comfortable in a PyTorch training loop and in a C/C++ inference runtime on a resource-constrained device.
They understand that on-device ML is a co-design problem, where model architecture, quantization, and the target hardware all shape one another, and they can make the trade-offs required to get a research model running on real hardware quickly. Familiarity with audio ML, computer vision ML, or audio DSP is a strong plus, as many of our models operate on multimodal (audio and visual) sensor data.
Our team cultivates an honest and considerate environment where self-motivated individuals thrive. We encourage a strong sense of ownership and embrace the ambiguity that comes with working on the frontiers of research.
Responsibilities
Work side by side with research scientists to take ML models from research prototypes to efficient, real-time inference on embedded devices
Train, fine-tune, and adapt ML models with deployment constraints (latency, memory, power, compute) in mind
Optimize models for on-device inference using techniques such as quantization, pruning, distillation, operator fusion, and architecture adjustments
Port, integrate, and profile ML models on embedded targets (e.g. DSPs, NPUs, microcontrollers, mobile SoCs), identifying and resolving performance bottlenecks
Write clean, maintainable, high-performance C/C++ code for on-device inference pipelines and integrate it into real-time prototype systems
Build tools and infrastructure that make it faster for researchers to evaluate model performance and accuracy on target hardware
Coordinate with internal hardware, runtime, and toolchain teams across Client and Client to evaluate and integrate with existing systems
Work collaboratively as part of a multifunctional team where communication, documentation, and teamwork are highly valued
Learn constantly, dive into new areas with unfamiliar technologies, and embrace the ambiguity of AR/VR problem solving
Requirements:
BS degree in Computer Science, Computer Engineering, Electrical Engineering, or related field, or equivalent work experience
Industry experience optimizing and running ML inference on embedded or resource-constrained devices
Experience training ML models using deep learning frameworks such as PyTorch or TensorFlow
2+ years of industry experience writing C/C++
Experience profiling and debugging performance issues across the ML model and the target hardware
Experience working in cross-functional teams
Preferred qualifications
Experience with ML for audio (e.g. speech enhancement, source separation, keyword spotting, acoustic event detection)
Experience with ML for computer vision (e.g. detection, tracking, segmentation, pose estimation)