Descripción
General Motors is reimagining automation at economy scale to make manufacturing more competitive in the USA.
You are a Senior Software Engineer who has deep experience in building manipulation planning and control libraries. The work covers collision-free motion generation, trajectory optimization, and the execution layer that turns a planned motion into repeatable movement on real arms.
The target applications are C++, Python, and ROS 2 on FANUC arms and mobile manipulators, under cycle time and reliability requirements. You have the taste to see important problems, the talent to build great solutions and the grit to get it done.
This role sits in the core robotics team and works alongside controls and perception engineers.
The Opportunity
- Build and own manipulation planning capability: collision-free planning, trajectory optimization, and time parameterization.
- Implement and tune planners for the target applications, with cycle time as a first-class requirement.
- Build the collision environment representation from perception output and static scene models.
- Implement Cartesian and constrained motion planning for approach, grasp, and place phases.
- Handle the mobile manipulation cases: planning with base placement, redundancy resolution, and whole-body motion.
- Build the execution layer that monitors trajectory tracking and reacts to deviation and contact.
- Define the interface between perception, planning, and control, and keep it clean as the system grows.
- Diagnose planning failures from field data and turn them into regression cases.
The Job Requirements
Experience
- 6+ years of professional engineering experience, with 2+ years in motion planning or manipulation.
- Experience deploying manipulation planning on physical arms in a production or field setting.
- Experience meeting a cycle time requirement, not only a feasibility requirement.
Education
- M.S. degree or higher in Robotics, Computer Science, Mechanical Engineering, or a closely related technical field.
- Equivalent industry experience with demonstrated simulation depth can be considered.
Core technical background
- Strong grounding in motion planning: sampling-based methods, optimization-based methods, and their respective failure modes.
- Solid kinematics and dynamics: forward and inverse kinematics, redundancy resolution, singularity handling, and Jacobian methods.
- Experience with trajectory optimization and time-optimal path parameterization.
- Experience with collision checking and distance queries, including performance characteristics.
- Hands-on experience with MoveIt, OMPL, TrajOpt, Drake, or comparable frameworks.
- Strong C++ plus Python. Hands-on experience with ROS or ROS 2.
Systems mindset
- Ability to judge how much fidelity a given validation question requires.
- Comfortable trading simulation speed against accuracy.
Collaboration
- Ability to work effectively with remote teams across multiple time zones.
- Treats simulation as a product with internal users.
Nice to have
- Experience with FANUC arms or the FANUC controller interfaces.
- Experience with force control, impedance control, or contact-rich manipulation.
- Experience with mobile manipulation and whole-body control.
- Experience with learned or hybrid planning approaches.
- Prior open-source contributions to MoveIt or the ROS manipulation ecosystem.
Compensation: The compensation information is a good faith estimate only. It is based on what a successful applicant might be paid in accordance with applicable state laws. The compensation may not be representative for positions located outside of the California Bay Area.
The salary range for this role is $129,400 to $234,100. The actual base salary a successful candidate will be offered within this range will vary based on factors relevant to the position.
Bonus Potential: An incentive pay program offers payouts based on company performance, job level, and individual performance.
Benefits: GM offers a variety of health and wellbeing benefit programs. Benefit options include medical, dental, vision, Health Savings Account, Flexible Spending Accounts, retirement savings plan, sickness and accident benefits, life insurance, paid vacation & holidays, tuition assistance programs, employee assistance program, GM vehicle discounts and more.
Este puesto se desempeña remotamente, pero si el candidato seleccionado vive dentro de un radio específico de una milla de un centro de GM, deberá presentarse en el lugar tres veces por semana {o con otra frecuencia indicada por su líder}.
Los beneficios de reubicación están disponibles para los candidatos que califican según la política de la empresa.
Información sobre diversidad
General Motors se compromete a ser un lugar de trabajo en el cual no solo no haya discriminación indebida, sino que fomente con sinceridad la inclusión y el sentido de pertenencia. Creemos firmemente que la diversidad del personal crea un entorno en el cual nuestros empleados pueden prosperar y desarrollar mejores productos para nuestros clientes. Instamos a los candidatos interesados a que revisen las responsabilidades y aptitudes clave para cada puesto y se postulen para los puestos que coincidan con sus habilidades y capacidades. Es posible que, cuando corresponda, se les pida a los solicitantes que están en el proceso de contratación que completen satisfactoriamente una o más evaluaciones relacionadas con su función y/o una evaluación previa al empleo antes de comenzar a trabajar. Para obtener más información, visite Cómo contratamos.
Declaración de igualdad de oportunidades en el empleo (EE.UU.)
General Motors se enorgullece de ser un empleador que ofrece igualdad de oportunidades. Todos los solicitantes calificados serán tenidos en cuenta para el empleo sin distinción de raza, color, religión, sexo, orientación sexual, identidad de género, nacionalidad, discapacidad o condición de veterano protegido.
Adecuaciones (EE.UU. y Canadá)
General Motors ofrece oportunidades a todos los solicitantes de empleo, incluyendo las personas con discapacidades. Si necesita una adecuación razonable para ayudarle con su búsqueda o solicitud de empleo, envíenos un correo electrónico a [email protected] o llámenos al 800-865-7580. En su correo electrónico, incluya una descripción del puesto específico que está solicitando, así como el título del empleo y el número de solicitud del puesto que está solicitando.




