Sobre este puesto de Staff Software Integration Engineer en Merlinlabs
About You:
You are a hands-on systems software engineer who takes ownership of complex software and hardware integration efforts, from architecture through deployment and operation. You write disciplined, maintainable code and troubleshoot methodically across real-time applications, Linux hosts, networks, and physical equipment. You work independently, collaborate across engineering disciplines, and help other engineers build on what you deliver.
As part of Merlin’s Virtual Test Environments (VTE) team, you will own software connecting aircraft avionics, hardware-in-the-loop test environments, simulation models, and flight-test data systems. Your work will enable engineers to exercise aircraft systems before flight, observe their behavior, and capture and replay data to investigate issues.
Responsibilities:
-
Own the architecture, development, and sustainment of real-time I/O software and telemetry infrastructure supporting aircraft integration benches and simulation environments.
-
Develop modern C++ software on embedded Linux targets to interface with avionics hardware, manage periodic execution and watchdogs, and integrate generated aircraft simulation models.
-
Develop and maintain hardware abstraction layers using UEI PowerDNA equipment, vendor SDKs, low-level I/O APIs, and device drivers.
-
Integrate ARINC 429, CAN, serial, and discrete I/O using aircraft interface control documents; validate message encoding, signal mapping, update rates, and error handling.
-
Develop and maintain asynchronous Rust services that ingest multiple telemetry sources, synchronize and order samples, and stream data to flight-test displays and recording systems.
-
Implement robust binary protocols and network interfaces using UDP, TCP, and messaging technologies such as ZeroMQ, accounting for packet loss, ordering, buffering, and client liveness.
-
Build capabilities for timestamp alignment, session recording, data retrieval, and simulation replay that make integration issues reproducible.
-
Maintain cross-compilation, packaging, and deployment workflows for ARM Linux targets and Linux hosts, including Yocto SDKs, CMake, Debian packages, systemd, Docker, and Docker Compose.
-
Establish automated verification through unit tests, hardware integration tests, parser fuzzing, and Python-based smoke tests and tooling.
-
Partner with avionics, aircraft software, flight dynamics, and flight test engineers to reproduce aircraft integration conditions in the lab and resolve issues across software and hardware boundaries.
Qualifications:
-
Strong proficiency in modern C++, including resource management, concurrency, error handling, and maintainable systems software design.
-
Experience developing timing-sensitive software on Linux, including fixed-period execution, watchdogs, thread synchronization, and reliable startup and shutdown.
-
Deep familiarity with Linux host and embedded systems, including services, permissions, networking, software builds, deployment, and system-level diagnostics.
-
Experience integrating avionics or comparable hardware interfaces, including ARINC 429, and the ability to interpret and implement interface control documents.
-
Experience developing binary serializers and parsers, with attention to byte order, framing, validation, malformed inputs, and protocol compatibility.
-
Strong understanding of UDP/TCP networking and asynchronous data pipelines, including buffering, packet loss, ordering, backpressure, and connection management.
-
Experience with embedded Linux cross-compilation and deployment using vendor SDKs and build systems such as CMake.
-
Proficiency in Python for engineering tools, test automation, and data-processing workflows.
-
Experience developing Rust services, or substantial experience with asynchronous systems programming and the ability to become productive in Rust.
-
Experience with automated testing, continuous integration, Git-based version control and code review, and Jira or comparable issue tracking.
-
Demonstrated ability to own an end-to-end system, lead technical decisions, and troubleshoot directly with physical hardware.
-
Ability to work regularly onsite in our Boston lab to integrate and troubleshoot equipment.
Nice to Have:
-
Direct experience with UEI PowerDNA/PDNA SDKs or comparable data acquisition and avionics interface platforms from vendors such as NI or Ballard.
-
Experience with async Rust using Tokio, channels, serde, and axum.
-
Familiarity with ARINC 429 labels, SDI/SSM fields, CAN messaging, MIL-STD-1553, and RS-232/RS-422 serial communications.
-
Experience with IRIG time, NTP, clock alignment, and timestamp-ordered merging of asynchronous data sources.
-
Experience with Curtiss-Wright IADS or similar flight-test telemetry, ground-station, or engineering data-display systems.
-
Experience with Yocto SDKs, ARM targets, Debian packaging, systemd services, and Linux device-driver development or troubleshooting.
-
Familiarity with flight dynamics and integrating generated six-degree-of-freedom aircraft models into real-time execution environments.
-
Experience with GoogleTest, pytest, parser fuzzing, and CI/CD pipelines such as GitHub Actions, including self-hosted runners.
-
Experience with Docker-based deployment on lab or edge systems, S3 data storage, and automated simulation replay workflows.
-
Experience with REST APIs, JSON schema validation, Cap’n Proto, SQL, or diagnostic interfaces using GL Studio, React, or HTML5.
-
Aviation experience through professional work, flight simulation, or a pilot’s license.