Embedded Software Engineer
The Aftermarket Software Engineer is responsible for supporting, maintaining, enhancing, and troubleshooting software and embedded systems throughout the product lifecycle. This role works closely with cross-functional teams to analyze field issues, develop software solutions, support product sustainment activities, and ensure long-term product reliability, performance, and serviceability.
Key Responsibilities
- Analyze customer, service, and business requirements and translate them into software design proposals and technical solutions.
- Design, develop, modify, and maintain embedded software and application software for existing products.
- Support product sustainment activities, including software updates, bug fixes, cybersecurity improvements, and feature enhancements.
- Develop proof-of-concept software solutions and early-stage prototypes.
- Investigate software-related field issues and perform root cause analysis.
- Create software verification and validation plans and document test results.
- Perform software debugging, code reviews, and performance analysis.
- Collaborate with Electronics, Mechanical, Systems, Manufacturing, Quality, and Service teams to implement robust solutions.
- Support software release management, version control, and change management processes.
- Ensure compliance with cybersecurity, functional safety, and software quality standards where applicable.
- Create and maintain software architecture, design documentation, test reports, and engineering change records.
- Support software lifecycle management activities from development through maintenance and end-of-life.
Preferred Qualifications
- Experience developing embedded software in C/C++.
- Experience with RTOS-based systems and microcontroller platforms.
- Experience with communication protocols such as CAN, LIN, Ethernet, UART, SPI, and I2C.
- Knowledge of software architecture and design patterns.
- Experience with cloud-connected products, IoT devices, or mobile applications.
- Understanding of cybersecurity concepts and secure software development practices.
- Experience with software testing, unit testing, integration testing, and automated testing frameworks.
- Experience supporting products throughout their complete lifecycle, including sustainment and obsolescence management.
- Familiarity with Agile development methodologies.
- Bachelor's degree in Computer Engineering, Software Engineering, Computer Science, Electrical Engineering, or related field.
- 5+ years of experience in software development, embedded systems, or software product support.
- Experience with software debugging and troubleshooting tools.
- Strong understanding of software development methodologies and lifecycle management.
- Experience working in cross-functional engineering teams.
- Strong analytical and problem-solving skills.
Technical Skills
- Proficiency in C, C++, and/or Python.
- Experience with Git and version control systems.
- Experience with software debugging and analysis tools.
- Knowledge of CI/CD pipelines and automated build systems.
- Experience with software simulation and test environments.
- Familiarity with Jira, Azure DevOps, or equivalent development management tools.
- Understanding of embedded Linux is a plus.
Full-time availability with flexibility to support cross-regional collaboration. Open to travel to the United States as required to support project and team objectives.