Companies Careers

Firmware Engineer at Kindred
San Francisco, CA, US
At Kindred, we are on a mission to build human-like intelligence in machines.
Since 2014, we've been paving the way for a world filled with more powerful and helpful AI systems.  We bring together reinforcement learning, machine learning, and remote human guidance to create intelligent robots that solve real-world problems alongside humans in complex, changing environments like today's supply chain.
As a Firmware Engineer, you will build embedded control and data acquisition systems for Kindred robots and robotic components such as grippers, perception modules, etc. You will also work very closely with our software teams to ensure your firmware can be integrated within our overall software stack.

Every day will bring new and exciting challenges on the job while you:

    • Create the necessary technical documentation for effective product launch, regulatory compliance, training, production, and other areas
    • Rapidly design, implement and iterate control system concepts on embedded hardware
    • Implement new firmware features and maintain code base for production robots
    • Collaborate with our electrical, software, and hardware teams to troubleshoot system level robotic issues both in house and at customer locations
    • Writing device drivers for Ethernet, CAN, I2C, SPI
    • Fix errors and faults; perform root cause analysis
    • Implement new firmware features and maintain code base for production robots
    • Patch or repair prototype embedded electronics


    • Extensive experience with Firmware / Embedded software development
    • Expertise in C/C++ software development, tools, and debugging
    • Deep understanding of common embedded communication protocols (e.g. CAN, SPI, UART, I2C, USB, JTAG/SWD)
    • Experience developing with real-time operating systems (e.g. FreeRTOS)Worked with ARM Cortex M-series micro-controllers (or other motor controllers)
    • Comfortable with prototype PCB bring-up and testing
    • The ability to be handed electronics and make them work; with no direction
    • Ability to debug issues using a combination of software and lab equipment such as oscilloscopes and protocol analyzers
    • Familiarity with FPGA design and Xilinx Zynq SoCs a plus
    • Familiarity with Embedded Linux and build tools a plus (i.e. Yocto/BitBake)