Baker Hughes is a world leader in non-destructive testing (NDT), offering a broad portfolio of industrial inspection solutions. They are seeking a Staff Engineer in Embedded Development to design and integrate software across device, middleware, and application layers, focusing on high-performance and reliable product development.
Responsibilities:
- Developing Embedded Software: Designing and implementing embedded software in C++ for Linux-based systems, including drivers, hardware interfaces, and system services
- Developing Application-Level Software: Building application and middleware components using C# and related frameworks to support device control, user interaction, and system orchestration
- Owning System Integration: Designing and implementing interfaces between embedded components and application layers, including APIs, services, and communication pathways
- Building Data & Video Pipelines: Developing and optimizing pipelines for data acquisition, image/video processing, and streaming across system components
- Leading Hardware/Software Debugging: Diagnosing complex system issues across hardware, firmware, and application layers, including timing, performance, and integration defects
- Contributing to Architecture: Defining software architecture, module boundaries, and interface contracts to enable scalable and maintainable systems
- Collaborating Across Disciplines: Working closely with FPGA, electrical, imaging, and UI teams to deliver tightly integrated features
Requirements:
- Have 4+ years of experience in embedded and/or system-level software development
- Have strong proficiency in C/C++ for embedded systems and C# for application or middleware development
- Have experience with embedded Linux and Windows systems on ARM or Intel CPUs, device drivers, and cross-compilation toolchains
- Have experience designing and implementing interfaces between embedded systems and higher-level applications
- Have hands-on experience interfacing with hardware components and debugging across hardware/software boundaries
- Have experience working with real-time or high-throughput data systems (e.g., video, imaging, or sensor pipelines)
- Have experience with source control systems (Git) and defect tracking / ALM tools (Azure DevOps, Jira, etc.)
- Have Bachelor's or Master's degree in Computer Engineering, Electrical Engineering, Computer Science, or a related STEM discipline
- Have experience with imaging systems, video pipelines, or computer vision applications
- Have experience with Windows application development frameworks (WPF or similar)
- Have knowledge of communication protocols such as PCIe, USB, Ethernet, I2C, SPI, CAN, WiFi, Bluetooth
- Have experience optimizing performance across embedded and application layers
- Have familiarity with cybersecurity practices for embedded devices and system hardening
- Have experience leveraging AI/ML tools to improve development productivity or system capabilities