Embedded Engineer - Motor Control Firmware
Microsoft
Shanghai, VA, United States
about 2 months ago
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Role details
Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Experience level
Expert
Experience required
8 years minimum
Working hours
Regular working hours
Languages
English
Job source
Tech stack
Application Programming Interfaces (APIs)
Computing Platforms
ARM Architecture
Automation of Tests
Computer Programming
Computer Engineering
Datasheets
Software Debugging
Embedded Software
EtherCAT
Firmware
Hardware-In-The-Loop Simulation
+4 more
Python (Programming Language)
MISRA C (C Programming Language)
Real Time Systems
Bare Metal
Job description
- Design and develop real-time firmware in C for the STM32-class MCU on the Motor Controller PCB - bare metal, no OS
- Implement and optimize the control algorithms defined by the Motion Control Engineer: FOC commutation and current/velocity/position loops, with guaranteed loop timing
- Own calibration routines (encoder offset, current sensing), protections, and fault handling (over-current, over-temperature, encoder loss)
- Implement the EtherCAT/CAN slave stack and the joint-level communication API exposed to the robot’s compute platform
- Own bootloader, flashing, and fleet firmware-update flow across all joints
- Work with high-speed peripherals: ADCs, DMA, timers/PWM, interrupts
- Bring up new board revisions with the electrical engineer; debug with logic analyzers, oscilloscopes, and HIL setups
- Take full ownership of your code - from bring-up to deployment on the walking robot
Requirements
- A bare-metal firmware engineer who thinks in microseconds and interrupt priorities
- Obsessive about determinism, correctness, and clean fault behavior
- At home on the bench with a logic analyzer and an oscilloscope, * B.Sc. in Electrical Engineering, Computer Engineering, or a related field
- 8+ years of embedded firmware development in bare-metal, hard real-time systems
- Strong proficiency in C and STM32 (or equivalent ARM Cortex-M) programming
- Hands-on experience with motor control firmware (FOC, current/velocity/position loops, encoder interfaces) and/or industrial protocols (EtherCAT, CAN)
- Excellent debugging skills in both code and hardware environments
- Comfortable with schematics, datasheets, and bench instrumentation
Advantages:
- Deep EtherCAT knowledge, including slave stack integration and real-time tuning
- Experience with servo drives, drone ESCs, or robot joint controllers
- Exposure to Python for test automation
- Familiarity with MISRA C or structured safety-oriented code practices
- Comfortable communicating technical topics in English with international teams
Apply for this position
This job is hosted externally. Click below to view the full posting and apply.
Apply on mobileye.comGood distractions
Talks and stories from around this role — technically off-topic, practically not.
Moments
Explore playlistsVideos
See allRelated articles
See all
DC
Daniel Cranney
over 1 year ago
LM
Luis Minvielle
Is Software Engineering Hard?
about 2 years ago
LM
Luis Minvielle
Fully Remote Software Engineer Jobs
about 2 years ago
LM
Luis Minvielle
Where To Find Software Engineering Jobs
over 2 years ago
LM
Luis Minvielle
Where to Find Entry-Level Software Engineering Jobs
over 2 years ago
KD
Krissy Davis
What is Software Engineering?
almost 3 years ago