
Senior Software Engineer
BorgWarner Inc.2 hours ago
Shanghai, ChinaSenior
Responsibilities
- Develop and optimize FOC algorithms for PMSM and BLDC motors, including current, speed, and position loops.
- Implement SVPWM, MTPA, field weakening, and dead-time compensation.
- Develop EtherCAT and CANopen protocol-stack drivers, including CiA 402 support.
- Integrate absolute and magnetic encoders using BiSS, SSI, EnDat, and SPI.
- Optimize real-time performance on ARM Cortex-M/R and TI C2000 platforms.
- Collaborate with hardware engineers on board bring-up and hardware-software system debugging.
- Provide technical guidance and troubleshooting support for manufacturing and production processes.
- Follow safety, EHS, and workplace injury-reporting responsibilities.
Requirements
- Bachelor’s degree or higher in Computer Science, Automation, Electronic Engineering, Mechatronics, or a related field.
- At least 5 years of embedded software development experience, including at least 2 years focused on motor drives, servo control, or robotic joints.
- Proficiency in C and C++; familiarity with assembly optimization and low-level register operations is required, while Python and Shell scripting are a plus.
- Experience with ARM Cortex-M/Cortex-R platforms such as STM32, TC series, and TMS320; multi-core heterogeneous development is preferred.
- Deep understanding of FOC, SVPWM, MTPA, and field-weakening control; sensorless FOC experience is a plus.
- Proficiency with EtherCAT, SOEM/IGH, CANopen, and CiA 402; master/slave development experience is preferred.
- Ability to use oscilloscopes, logic analyzers, and CAN analyzers for hardware-software co-debugging.
- Familiarity with MATLAB/Simulink model-in-loop workflows and offline motor-model simulation.
- Strong problem-solving, analytical, communication, teamwork, and interpersonal skills.