As an Embedded Controls Software Engineer, you will be a critical contributor to the design, development, and validation of advanced embedded control software for next-generation automotive systems. This specialized role focuses on the Body Control Module (BCM), directly impacting vehicle safety, user experience, and electrification readiness.
You will leverage your expertise in controls theory, real-time systems, and embedded architecture to architect, develop, and optimize complex, safety-critical software throughout the entire product lifecycle.
The Body Control Software Team is dedicated to creating Body Control Application Software components, developing and enhancing existing software components that integrate with current architectures, as well as next-generation vehicle systems.
Join our diverse global team located in Dearborn, Palo Alto, Ottawa, Mexico, Germany, and India to design and develop embedded software in areas related to cloud-based computing, ad-hoc computing, and embedded platforms.
Primary Skills Required1. MATLAB
Candidate should demonstrate hands-on experience using MATLAB/Simulink (including Stateflow) to model, design, and simulate embedded control algorithms for BCM features.
Example: Building a Simulink state machine to model a vehicle lighting or door control feature, running Model-in-the-Loop (MIL) simulations to validate logic, and using Model Advisor checks to ensure modeling standards compliance prior to code generation.
2. Coding
Candidate should be able to write clean, efficient, and standards-compliant code for embedded automotive applications, including scripting for automation.
Example: Developing a Python automation script to parse test logs and automatically generate pass/fail reports, reducing manual validation time during regression testing cycles.
3. C++
Candidate should demonstrate proficiency writing and debugging C/C++ code for real-time, resource-constrained embedded targets, including implementing AUTOSAR software components.
Example: Implementing a C++ AUTOSAR Software Component (SWC) for a BCM feature (e.g., power window control), integrating it through DaVinci Developer, and validating memory and timing constraints on target hardware.
4. Embedded Software
Candidate should demonstrate the full lifecycle of embedded software development, from requirements through implementation and on-target validation, for safety-critical automotive systems.
Example: Taking a system-level requirement for a new BCM feature, translating it into a functional specification, implementing the control logic, and validating it through SIL/HIL testing using Vector CANoe prior to production release.
5. Embedded Systems
Candidate should understand hardware/software interaction, real-time constraints, and communication protocols (CAN/LIN) governing embedded automotive systems.
Example: Diagnosing a field issue where a BCM module intermittently fails to respond over CAN, performing root cause analysis using CANoe traces and the MULTI debugger, and implementing a fix that accounts for timing and interrupt behavior on the target ECU.
Required Skills
- MATLAB
- Simulink
- Stateflow
- C/C++
- Python
- Embedded Software Development
- Embedded Systems
- AUTOSAR
- CAN/LIN Communication Protocols
- Vector CANoe
- DaVinci Developer
- MULTI Debugger
Experience Required
Engineer 3
- Practical experience in two programming languages, or advanced practical experience in one programming language
- 6+ years of IT experience
- 4+ years of software development experience
Education Required
Additional Information
Hybrid Position: 4 days per week onsite
Software Design
Design, develop, and implement embedded control systems for Body Control Modules (BCM). Perform high-level analysis and design planning for new features supporting scalable production and next-generation Software-Defined Vehicle (SDV) architectures. Requires a strong understanding of software modeling and embedded design principles.
Requirements Engineering
Partner with cross-functional stakeholders to capture system-level requirements and translate them into detailed functional and technical specifications for control algorithms and software modules, ensuring alignment with vehicle performance and safety objectives.
Algorithm Development & Implementation
Design, develop, and optimize control algorithms. Implement AUTOSAR-compliant software components using C/C++, MATLAB (Simulink/Stateflow), and Python. Utilize DaVinci Developer for AUTOSAR configuration and integration.
Verification, Validation & Testing
Lead test strategy development and execution, including:
- Model-in-the-Loop (MIL)
- Software-in-the-Loop (SIL)
- Hardware-in-the-Loop (HIL)
- Unit testing
- Integration testing (e.g., Google Test)
Perform on-target validation using Vector CANoe and the MULTI debugger. Conduct root cause analysis and implement robust corrective actions.
Compliance & Quality Assurance
Ensure adherence to:
- ISO 26262 (Functional Safety)
- ASPICE
- AUTOSAR Standards
Enforce quality practices including static code analysis and Model Advisor reviews to maintain software reliability and quality.
Process Optimization & Automation
Identify development bottlenecks and implement Python-based automation scripts and reusable model templates to streamline workflows, improve efficiency, and reduce development cycle time.
EEO Employer
Apex Systems is an equal opportunity employer. We do not discriminate or allow discrimination on the basis of race, color, religion, creed, sex (including pregnancy, childbirth, breastfeeding, or related medical conditions), age, sexual orientation, gender identity, national origin, ancestry, citizenship, genetic information, registered domestic partner status, marital status, disability, status as a crime victim, protected veteran status, political affiliation, union membership, or any other characteristic protected by law. Apex will consider qualified applicants with criminal histories in a manner consistent with the requirements of applicable law. If you have visited our website in search of information on employment opportunities or to apply for a position, and you require an accommodation in using our website for a search or application, please contact our Employee Services Department at [email protected] or 844-463-6178.