Senior Firmware and Embedded Software Engineer
- Vancouver, Canada
- On-site
- Senior Level
- Posted
Responsibilities
- Develop and implement embedded software for robotic systems, emphasizing hard real-time performance and reliability as well as safety
- Integrate and optimize hardware and software components, including sensors, actuators, and communication modules
- Analyze and make recommendations on implementation paths with trade-offs
- Write and debug firmware for microcontrollers, FPGAs, ASICs, and SoCs
- Implement and manage communication protocols such as EtherCAT, CAN, UART, SPI, and I2C
- Collaborate closely with mechanical and electrical engineers to ensure seamless system integration
- Perform hardware testing, validation, and troubleshooting of embedded systems
- Analyze system constraints and resource limitations to optimize performance and efficiency
- Develop low-level drivers and interfaces for sensors, motors, and control electronics
- Maintain clear documentation of system architecture, code, and test results for traceability and maintainability
- Own embedded software components from concept through testing and deployment.
Requirements
- Bachelor’s or Master’s degree in Electrical Engineering, Computer Science, Robotics, or a related field
- Solid understanding of embedded systems architecture and hardware-software interfaces
- Strong analytical and problem-solving skills
- Ability to work effectively in a fast-paced multidisciplinary engineering environment.
Preferred
- Experience working with robotics frameworks such as ROS or ROS2
- Hands-on experience with FPGA or SoC development
- Experience developing distributed robotic control systems
Familiarity with agile development methodologies
- Experience with EtherCAT-based motor drivers and real-time control networks
- Experience developing safety-critical or high-reliability embedded systems.
About the Role
We are looking for an
Firmware and Embedded Software Engineer to design and develop the real-time software systems that control our humanoid robots.
You will own the development of embedded software for critical robotic subsystems, including motion control, sensor interfaces, communication networks, and hardware abstraction layers that enable reliable and safe robotic operation.
This role requires strong fundamentals in embedded programming, distributed hard real-time systems, and hardware-software integration, along with experience building robust software for complex electromechanical systems.
You will collaborate closely with mechanical, electrical, and robotics engineers to rapidly prototype, test, and deploy embedded software that powers our robotic platforms.
Your work will directly influence the performance, reliability, and responsiveness of Humanoid’s robots.
What Makes This Role Exciting
- Design and develop embedded systems that control humanoid robots in real time safely
- Solve challenging problems in low-latency motion control, distributed embedded networks, and high-reliability robotic systems with various communication protocols
- Work in a fast-moving hardware environment where software directly interacts with physical machines
- Collaborate with a multidisciplinary robotics team spanning mechanical, electrical, controls, and AI
- See your code deployed in real robots operating in real-world environments.
We’re Looking For
- 5+ years of professional experience developing embedded software or firmware for robotics, embedded systems, or real-time hardware platforms
- Strong proficiency in C and C++, with experience using Python for testing or tooling
Experience with real-time operating systems (RTOS)
Experience working with communication protocols such as EtherNet, EtherCAT, CAN, SPI, UART, or I2C
Experience integrating sensors, actuators, and motor control systems
Familiarity with debugging tools such as oscilloscopes, logic analyzers, and in-circuit debuggers
What We Offer
- Comprehensive extended health benefits starting on your first day, including fully paid medical and dental, virtual care, employee and family assistance, and worldwide emergency medical support.
- Meaningful time off to rest and recharge: 23 days of annual leave (accrued), 15 days of paid sick leave, and paid company holidays.
- Paid end-of-year shutdown: annual company-wide holiday closure spanning Christmas through New Year’s Day.
- Competitive equity: stock options with meaningful upside as we scale.
- Free daily catered lunch, snacks, and drinks in‑office.
- Collaboration with top‑tier engineers, researchers, and product experts in AI and robotics.
- Freedom to influence the product and own key initiatives.
- For this role in Vancouver, the expected base salary range is $140,000 – $180,000 CAD per year; your placement in that range depends on how your experience maps to our internal leveling.
jobapplier