Senior Software Engineer, Algorithms

San Francisco, CA
Shaper is developing a revolutionary line of computer-augmented power tools, starting with a handheld CNC router called Origin. We're looking for a skilled Algorithms Developer to join our team. You’ll work on the platform and applications that enable users to interact with their tools in dramatically new ways. You should be excited to invent new algorithms and play with power tools! You should be comfortable working with C/C++ development on embedded systems ranging from real-time microcontroller platforms to application processors running Linux. A background in computational geometry and computer vision will help you excel in this role.

The Job

    • Invent new algorithms for controlling handheld robots, starting with Shaper Origin
    • Research techniques across a variety of fields from robotics to computer game AIs to get inspiration
    • Get your hands dirty in the physical world-- figuring out what performance characteristics really matter when the rubber hits the road (or the router hits the wood)
    • Document your code and keep it organized and manageable
    • Perform estimates and work breakdowns from design specifications
    • Write unit tests to ensure high quality
    • Work effectively across the stack, from understanding bare metal code up to highly abstracted systems
    • Build maintainable APIs for coordination with other members of the Shaper Software team


    • You have previous experience writing large codebases and developing original algorithms
    • Minimum 3 years experience with C++ on Linux
    • Solid understanding of 3D computational geometry (e.g., using matrices to represent a transition from one coordinate system to another)
    • Good problem solving and debugging skills
    • Good communication skills (English) are required (verbal & written)
    • You’re excited to explore an entirely new field and develop products that real users will depend on!

Bonus Points

    • You have prior computer vision experience -- but if not, you can learn the CV-specific parts on the job
    • You’ve shipped one or more hardware products that included embedded systems
    • You know low-level systems well enough that you can get close to the silicon when you need to to optimize critical algorithms
    • You have implemented algorithms directly from academic papers
    • You have a good grasp on control theory
    • You like building things with your hands