Job DescriptionWho will you be working with?As an Embedded Software Engineer, you will collaborate with cross-functional engineering teams to design, develop, and maintain embedded software solutions for industrial electronics products. You will work throughout the product lifecycle, from requirements definition and architecture to implementation, testing, and deployment, ensuring reliable, high-quality software that meets performance, safety, and customer requirements.
How will you make a difference?As a member of the DOSE Software Team, you will collaborate with cross-functional engineering teams to design, develop, and maintain high-quality embedded software solutions that meet system, functional, performance, safety, and cybersecurity requirements. Reporting to the Software Manager, you will play a key role in delivering reliable software solutions on schedule while maintaining the highest standards of quality and customer satisfaction.
In this role, you will be responsible for the full software development lifecycle, including requirements analysis, architecture, design, implementation, integration, testing, and release of embedded software applications. You will contribute to technical reviews, including requirements, design, and code reviews, and develop unit and integration tests to ensure software quality and compliance. Additionally, you will support software verification and validation activities, troubleshoot complex technical issues, and work closely with system, hardware, quality, and product teams to deliver robust and scalable software solutions in accordance with DOSE processes, standards, and guidelines.
What do we want to know about you?- Bachelor's degree in Computer Engineering, Electrical Engineering, Software Engineering, Computer Science, or a related field, with 7 to 10 years of relevant industry experience.
- Strong verbal and written communication skills, with the ability to clearly articulate technical concepts to both technical and non-technical audiences.
- Self-motivated, results-oriented professional with a strong commitment to quality, continuous learning, and collaboration.
- Proven experience developing embedded software using C and C++.
- Experience with Python, Bash, or other scripting languages for automation, testing, and development workflows.
- Experience working with Linux, Unix-based systems, or real-time operating systems (RTOS) such as QNX and FreeRTOS.
- Proficiency in software architecture, component design, interface design, and software integration.
- Strong understanding of operating system concepts, networking protocols (TCP/IP, UDP, Ethernet), and hardware interfaces.
Preferred Qualifications- Experience developing device drivers and Board Support Packages (BSPs).
- Knowledge of Software Change Management (SCM), Software Development Lifecycle (SDLC) methodologies, and Continuous Integration/Continuous Delivery (CI/CD) practices.
- Experience working in an Agile Scrum development environment.
- Familiarity with safety-critical software development and industry standards, including CENELEC and rail transportation standards.
- Experience with software verification, validation, and debugging in embedded environments.
- Knowledge of secure software development practices and cybersecurity requirements for embedded systems.
What will your typical day look like?- Design, develop, and maintain high-quality embedded software solutions that meet system and subsystem requirements.
- Collaborate with systems, hardware, test, and product engineering teams to ensure software functionality aligns with product specifications and customer requirements.
- Perform root cause analysis of software defects and system issues, and implement effective corrective actions.
- Develop and maintain technical documentation, including requirements, architecture, design, implementation, and process documentation.
- Participate in software architecture, design, code, and peer reviews to ensure quality, maintainability, and compliance with development standards.
- Contribute to all phases of the software development lifecycle, from requirements definition through deployment and maintenance.
- Develop, automate, and maintain unit, integration, and regression test suites to improve software quality and reliability.
- Investigate, assess, and remediate cybersecurity vulnerabilities in accordance with secure development processes and product security requirements.
- Support software integration, verification, validation, and release activities in accordance with organizational standards and processes.
- Continuously identify opportunities to improve development tools, processes, automation, and engineering efficiency.
Relocation assistance may be provided if eligibility requirements are met.
#LI-AM1
QualificationsAdditional InformationOur job titles may span more than one career level. The salary rate for this role is currently $[redacted]00 The actual salary offered to a candidate may be influenced by a variety of factors, such as: training, transferable skills, work experience, education, business needs, market demands and work location. The base pay range is subject to change and may be modified in the future. More information on offered benefits, which include health, welfare, and retirement, are available at mywabtecbenefits.com. Other benefit offerings for this role may include annual bonus, if eligible.