Software Engineer, Robotics ML Engineer - SPG
Santa Clara Valley (Cupertino), California, United States
Machine Learning and AI
Apple’s Special Projects Group is doing groundbreaking work in building autonomous systems based on Reinforcement Learning. We’re looking for Software Engineers who can help deploy these intelligent behaviors onto robots. This is a broad role covering neural network inference, performance optimization, and Robotics systems.
- We are looking for solid programming skills in Python and C++ as well as experience and interest in one or more of these domains:
- on-device Machine Learning inference, using frameworks such as TensorRT or ONNX runtime. We are primarily a PyTorch shop but we believe that your experience in other Deep Learning frameworks would translate well in our environment.
- Robotics systems, where you have designed and implemented integrations between different components of a robotics stack, potentially using a framework like ROS. Familiarity with fundamental concepts such as motion planning or coordinate transformations is appreciated.
- Systems-level software engineering with a focus on performance-aware code (both in terms of CPU and memory). This includes multithreading and parallelism, algorithms, data structures, and familiarity with profiling tools such a perf.
This role sits at the intersection of Machine Learning on-device deployment and Robotics. Our team works with Reinforcement Learning models trained to control the behavior of autonomous systems and deploys them on the robotic platform. On any given week, you might be optimizing neural network graphs on PyTorch or working on middleware integration to enable exciting new autonomous behaviors. At the end of the day, our team is responsible for the last mile of turning ML research into a working robot. To carry out this ambitious goal, you’ll frequently be interacting with the RL modeling team (who designs and trains the model), the motion control team, and the simulation team. You’ll gain experience on neural network optimization robotics system design, and performance engineering under tight latency constraints.
Education & Experience
B.S. or M.S. in computer science, engineering, robotics or a related field.