Strong modern C++, C++17 or later. You have written and debugged performance-sensitive C++ in a codebase you did not write yourself, not only coursework.
Solid algorithms and data structures, including graph algorithms such as strongly connected components and topological ordering, combinatorial search and pruning, and complexity analysis.
Computational geometry fundamentals: triangle meshes, bounding volume hierarchies and other spatial indexes, intersection and collision tests, and reasoning about directions on the sphere.
Experience profiling and optimizing code. You have used a profiler and made something measurably faster.
Research or coursework in assembly sequence planning, disassembly planning, or motion planning. If you know what a non-directional blocking graph is, or have read Wilson and Latombe or the STAAT work by Romney and colleagues, we want to talk to you.
Publications at ICRA, IROS, RSS, SoCG, or Solid and Physical Modeling, or in the Computer-Aided Design journal.
Experience with Eigen, OpenCASCADE, OpenVDB, CGAL, or a collision or bounding volume hierarchy library.
Parallel programming in C++ with Intel TBB, OpenMP, or standard threads, with attention to determinism.
Familiarity with CAD data: boundary representations versus tessellated meshes, and formats such as STEP and JT.
Experience with CMake, GoogleTest, and reproducible builds. Nix is a plus.
Python for tooling and analysis, e.g. NumPy and trimesh.
Familiarity with infinitesimal motion analysis or rotational motions in assembly planning.