Mission Summary
Motional's CORE team is responsible for our vehicle's Compute and Onboard Runtime Environment. We are creating a world leading AI compute platform for autonomous vehicles.
The Advanced Technologies team is part of CORE'S Compute team. We work at the intersection of Software Engineering, machine learning, sensors, and hardware compute platforms to evolve Motional's on-board vehicle architecture. We conduct applied research into the latest advances in these AV technologies, influencing future platform design choices through developing working prototypes and proofs-of-concept, and taking them through to production.
What You'll Be Doing
As a Principal Software Engineer in the CORE Advanced Technologies team, you will work with us on the next generation of our autonomous vehicle platform. You will influence what technologies we need to use, and how best to use them to achieve our goal of creating a fully-autonomous vehicle. You will work with cross-functional teams of engineers and researchers to deliver the future of autonomous vehicle (AV) development.
Specifically, you will:
- Facilitate and lead in full lifecycle development from idea to proofs-of-concept to production.
- Design, develop, test, integrate, and optimize software and tools on a variety of ML compute architectures.
- Participate in shaping our future frameworks and APIs that provide access to sensors, mapping data, health monitoring, configuration management, data storage, and other vehicle platform subsystems.
- Lead designs and work together with peer teams to determine the needs of the system and how to best meet those needs with a robust infrastructure.
- Conduct code and design reviews for work done by peers, advise on technical matters, and mentor engineers.
- Define and execute on technical roadmaps, making appropriate tradeoffs between longer-term strategic goals and near-term tactical goals.
- Enable collaboration across multiple teams to deliver on cross-team initiatives.
What We're Looking For
- 10+ years of professional Software Engineering experience in a product environment.
- Proficiency in object-oriented development with C++ and Python and their associated software ecosystems.
- Industry experience developing software in a Linux environment.
- Curious and passionate about a wide range of technology topics including, but not limited to, software development, systems, machine learning, neural networks, sensors, microarchitectures, middleware, operating systems, sensors, safety, and security.
- Industry experience with modern Software Engineering principles and practices including software design, source control management, build processes, continuous integration, code reviews, automation, and testing methods.
- Comfortable working in an evolving environment, experimenting with and evaluating different options as we work towards finding solutions.
- Bachelor's Degree in Computer Science, Electrical Engineering, or equivalent professional experience in a similar field.
Bonus Points (not essential)
- Experience with distributed systems development, middleware development, embedded software.
- Familiar with an MLOps or DevOps environment.
- Experience with developing software for ARM platforms.
- Knowledge of ML frameworks such as PyTorch, TensorFlow, or ONNX.
- Experience with device drivers, particularly for sensors and embedded systems.
- Developing software for different computing architectures such as DSP, GPU, NPU, SoCs and their associated hardware computing platforms.
- Experience with a variety of networking and communication technologies and protocols.