Software Engineer - Performance Optimization
Optimizes application-layer software for embedded systems in autonomous driving stacks, analyzing runtime performance, profiling compute resources on constrained platforms, and ensuring efficient execution while collaborating with ML engineers. Requires 5+ years experience, strong C++ skills, and bachelor's/master's in CS/EE.
About the job
Responsibilities
- Analyze runtime performance of the application layer and identify potential resource contentions
- Optimize compute usage to fit within embedded platform constraints without sacrificing algorithm accuracy or latency
- Profile and tune performance on embedded targets under real-world operating conditions
- Collaborate closely with ML runtime optimization engineers to ensure smooth model inference execution within the stack
- Proactively design for contention avoidance and thread safety through code reviews and software architecture reviews; propose single threaded lock-free approaches where appropriate
- Deploy and validate production code on QNX, Linux-based embedded, or similar RTOS platforms
- Contribute to improving system-wide runtime, latency, and performance monitoring tools
Requirements
- Bachelors or Masters in Electrical Engineering or Computer Science or a related field
- 5+ years of experience in software development
- Strong C++ development skills with a focus on runtime performance
- Experience profiling CPU, GPU, and memory usage performance on constrained compute
- Proven ability to debug complex runtime issues and resolve onboard resource contention
Nice to have
- Exposure to ML models and runtime frameworks (PyTorch, ONNX, TensorRT)
- Experience with memory-constrained deployments and concurrent scheduling
- Prior experience with autonomous driving software stacks
- Scripting experience for performance profiling and automation
Compensation
Base salary range: $199,295-$264,500 USD annually (full-time position). Total compensation may include equity, comprehensive health/dental/vision insurance, 401k with employer match, learning/wellness stipends, and paid time off.
Skills
C++, Qnx, Linux, PyTorch, Onnx, TensorRT, GPU, Cpu Profiling, Memory Profiling, Rtos, Autonomous Driving, Lock-Free Programming
Similar jobs
Embedded Engineering jobsDevelops real-time perception, sensor-control, and fusion software for heterogeneous autonomous vehicle platforms, integrating ML algorithms across sensors and embedded systems. Requires advanced engineering education or 5+ years of relevant experience, multi-modal sensing expertise, Linux/Docker proficiency, and U.S. security-clearance eligibility.
Develops operating-system platforms, device drivers, and infrastructure for autonomous-vehicle robotics systems. The role requires 4+ years of production software experience, strong Linux internals expertise, and proficiency in C/C++ plus scripting languages.
Develops reliable embedded software and custom device solutions, integrating vendor components, sensors, operating systems, and communication interfaces. Requires a bachelor's degree and at least three years of relevant experience with C/C++, embedded Linux, debugging, and CI/CD tools.
Build and harden OS foundations for AI consumer devices, spanning kernel, services, security, performance, and application interfaces. Requires strong systems programming in C/C++, kernel experience, and debugging skills.
Develops, deploys, and maintains software for autonomous vehicles, integrating sensors, autopilots, and perception modules with hands-on field testing. Requires 5+ years experience or MS/PhD, C++/Python/Linux proficiency, and robotics knowledge.