Software Engineer
We are seeking a highly skilled engineer to lead and manage a global software build process supporting the development of low-level embedded software. This role is integral to the research, design, development, and testing of foundational software layersโsuch as OS integration, I/O drivers, boot code, and moreโthat interface directly with a broad range of electronic control units (ECUs/ECMs) used by our client.
This position is responsible for building and documenting software releases and, at times, contributing directly to low-level software development. The engineer will play a key role in maintaining and evolving the CI/CD pipeline, supporting robust version control and configuration management practices, and ensuring integration with embedded hardware platforms.
Key Responsibilities:
- Build, test, and release production-grade software builds for embedded systems.
- Design, implement, and maintain CI/CD pipelines and supporting automation tools/scripts.
- Evaluate and integrate new scripting languages, tools, and build processes.
- Manage software versioning and lifecycle via configuration management systems.
- Collaborate with developers and tech leads to design and implement pipeline and software solutions.
- Occasionally develop embedded low-layer software (I/O drivers, bootloaders, OS integration, etc.).
- Analyze requirements, perform design decomposition, and support system integration.
- Communicate technical concepts clearly with team members, customers, suppliers, and stakeholders.
- Support debugging, unit testing, regression testing, and documentation.
- Engage with physical hardware and related test activities, which require onsite presence.
Technical Skills Required:
- Strong experience with Jenkins or equivalent CI/CD platforms.
- Proficiency with Git version control systems (ClearCase experience is a plus).
- Bash shell scripting experience preferred.
- In-depth experience with real-time embedded device driver development.
- Skilled in debugging using tools such as oscilloscopes and logic analyzers.
- Familiarity with SPI, I2C, and other peripheral interfaces.
- Experience with embedded system diagnostics, OS configuration, and board bring-up.
- Hands-on experience with RTOS, ANSI C, Python, and modern embedded development practices.
- Understanding of control software design patterns and real-time systems.
- Familiarity with Agile software development methodologies.
Soft Skills Required:
- Strong verbal and written communication abilities.
- Excellent problem-solving and analytical thinking.
- Effective interpersonal and customer service skills.
- Ability to interpret schematics and component datasheets.
- Capable of independently troubleshooting and resolving complex system issues.
Education & Experience Requirements:
- Bachelorโs degree in Computer Engineering, Electrical Engineering, or a related field required.
- 5โ7 years of relevant industry experience.
- Masterโs degree or higher with relevant internships or project experience may be considered toward minimum requirements.