Robotics Software Engineer, Embedded Systems
Role details
Job location
Tech stack
Job description
We are building the next generation of Moonwalkers and are looking for engineers who thrive in fast-paced environments where hardware, software, and human motion intersect. As a Robotics Software Engineer for our Embedded Systems team, you will play a critical role in designing, prototyping, and testing the reliable, innovative hardware and software systems that power our mobility solutions., + Embedded Development: Design, develop, and maintain embedded software for wearable robotics, including system software, RTOS, bootloaders, and Built-In Self-Test (BIST) software.
-
System Architecture & Coding: Lead the system architecture design of the overall product firmware, write core code, and ensure the delivery of high-quality, safety-critical software solutions.
-
Hardware Integration: Collaborate tightly with hardware engineers to integrate software with complex hardware components, including motor controllers, sensors, and communication interfaces.
-
System-Level Validation: Design and build advanced test frameworks and use cases to verify hardware/software integration. Implement rigorous test plans across all phases of the software development lifecycle to identify and resolve complex system defects.
-
Code Quality & CI/CD: Organize and lead code reviews, manage merge conflicts, and maintain repository health. Implement and optimize CI/CD pipelines and automated testing.
-
Production Support: Architect and maintain production-line testing software. Optimize mass-production test workflows and provide software-perspective insights to hardware teams during cross-departmental troubleshooting.
-
Cross-Functional Collaboration & Documentation: Work seamlessly with mechanical engineers, algorithm developers, and product managers. Create comprehensive technical documentation, including design specs, test plans, and user manuals, ensuring smooth knowledge transfer.
Requirements
Required Qualification
-
Education & Experience: Bachelor's degree in Electrical Engineering, Computer Science, or a related field, with 3+ years of embedded software development experience.
-
Programming: High proficiency in C/C++ and Object-Oriented Design for embedded systems.
-
Embedded Platforms: Hands-on experience with Microcontrollers/Microprocessors, particularly ARM Cortex-M series and ESP32.
-
RTOS & Architecture: Strong understanding of RTOS concepts, multi-tasking software development, and multi-core/multi-processor systems.
-
Hardware Knowledge: Ability to read electronic schematics and deeply understand chip architecture (instruction optimization, memory access, fixed-point math, and pipelining).
-
Protocols: Familiarity with communication protocols (SPI, UART, CAN, I2C, Ethernet).
-
Tools: Proficiency with hardware debugging tools (oscilloscopes, logic analyzers) and engineering tools (Git, Git workflows).
-
Soft Skills: Strong logical analysis, systematic thinking, and a self-motivated initiative to get things done with minimal supervision.
Preferred Skills
-
Robotics/Wearables: Experience developing firmware for wearable robotics, consumer electronics, or high-volume manufacturing products.
-
Test Automation & DevOps: Experience with DevOps pipelines for robotics, CI/CD, and designing automated test architecture.
-
IDEs & Environments: Experience with ESP32 development environments and IDEs like Keil uVision, STM32 CubeIDE, or PSOC Creator.
-
Advanced Hardware Skills: Knowledge of microcontroller I/O, A2D, power configurations, memory-mapped peripherals, and RF communications.
-
Tooling Development: Experience in Windows/Linux tools development to support testing and diagnostics.
-
Motor Control: Deep knowledge of BLDC Motor Control (FOC and/or Trapezoidal, sensored/sensorless) and the ability to tune control logic for specific use cases.