As a Lead Embedded Software Engineer in our Subsea Production Systems team, you will design, develop, and support the embedded software and configurations that power Baker Hughes subsea control technologies. You'll work with C/C++, Python, real‑time Linux, and industrial communication protocols to deliver reliable, high‑performance systems for challenging offshore environments. Depending on experience, you may also guide technical decisions, mentor engineers, and lead software activities across global projects.
Experience: 10-15 years
As a Lead Embedded Software Engineer, you will be responsible for:
- Participating in or leading design and code reviews, producing high‑quality technical deliverables and ensuring adherence to engineering best practices.
- Developing, testing, and maintaining embedded C/C++ software for Windows and real‑time Linux platforms, applying object‑oriented design principles and code‑quality tools such as LINT or LDRA.
- Creating, validating, and troubleshooting XML‑based configurations for Subsea Electronic Modules, supporting both project execution and production environments.
- Developing and enhancing Python-based support tools to modernize workflows, integrate new features, and replace legacy engineering utilities.
- Implementing and supporting distributed communication systems using industrial protocols such as Modbus RTU/TCP, CAN, Ethernet UDP/TCP, and related technologies.
- Diagnosing and resolving system‑level issues, applying structured troubleshooting to identify root causes across software, configuration, and communication layers.
- Collaborating with cross-functional engineering teams, ensuring seamless integration of software components within the subsea control system architecture.
- (Lead level) Providing technical direction, mentoring engineers, and driving continuous improvement in design quality, documentation, and engineering processes.
To be successful in this role you will:
- Have a bachelor's degree in software engineering, Computer Science, Electrical/Electronic Engineering, or related discipline.
- Have experience with embedded software development in C/C++, along with familiarity with Python and Java SE.
- Have an understanding of object‑oriented design, real‑time systems, and distributed communication protocols.
- Be able to analyze issues, troubleshoot systematically, and contribute to high‑reliability system development.
(Lead)
- Have hands-on experience developing embedded or industrial control system software.
- Have experience with system‑level debugging, communications protocol analysis, and performance optimization.
- Be able to support junior engineers and influence design decisions.