Principal Software Engineer, Native and Web Applications
Summary
As a Principal Software Engineer, Native and Web Applications, you join the Pirate Team—the highest engineering team at the company. Reporting directly to the CEO and acting as a collective, council CTO, the Pirate Team is the best of the best: a small band of the most senior engineers who set the technical direction, take on the problems no one else can, and hold the bar for how the entire company builds. This is not a role for people who want to be told what to do; it is for the engineers others look to when the answer isn't obvious.
In this role you own the software that people use to command our robots and the software that runs the infrastructure behind them. On the native side, you design and write cross-platform desktop applications for macOS, Windows, and linux that control robots and support the full arc of robot development, from bring-up on the bench to operation in the field. On the web side, you build distributed cloud applications with heavy back-end components that must run anywhere we need them to—managed cloud, customer VPCs, or baremetal in a hangar. You are a deep systems programmer: you know how the machine actually works, you debug the hard problems others give up on, and you treat testing as a first-class part of shipping.
Duties
- Architect, design, and write cross-platform native desktop applications for macOS, Windows, and linux that operate and monitor our mobile robotics platforms—UAVs, UGVs, USVs
- Build the tooling and applications engineers rely on across the robot development lifecycle: bring-up, calibration, telemetry, logging, tuning, diagnostics, and field operation
- Design and implement distributed cloud applications with substantial back-end components—services, data pipelines, APIs, and real-time interfaces to fleets of robots
- Ensure our web applications are deployable across heterogeneous environments—managed cloud, private clouds, on-prem, and baremetal—without forking the codebase
- Own performance, correctness, and reliability at the depth where it matters: memory, concurrency, latency, protocol handling, and the seams between native and cloud
- Debug the hardest problems across the stack—cross-platform behavior differences, concurrency and timing bugs, protocol and networking failures, resource leaks—and drive them to root cause
- Establish and enforce engineering standards for the applications team: architecture, code review, testing strategy, and release engineering
- Define the interfaces between native applications, cloud back ends, and the embedded software running on the robots, in partnership with the embedded and systems teams
- Build and maintain the test infrastructure that keeps a cross-platform, multi-environment product honest—unit, integration, and end-to-end coverage across OSes and deployment targets
- Act as a member of the Pirate Team's council CTO: shape company-wide technical direction, weigh in on the hardest architectural calls across teams, and raise the level of every engineer around you through design review, pairing, and example
Required Skills
- Deep, demonstrated mastery of software engineering as a senior individual contributor—you have designed and shipped substantial applications and can be trusted with the hardest technical decisions
- Strong proficiency building cross-platform native desktop applications across macOS, Windows, and linux, with a real understanding of what differs between them
- Command of a systems-level language (C++, Rust, or equivalent) and the discipline that comes with it: memory, concurrency, and performance are things you reason about precisely
- Proven experience designing and operating distributed cloud applications with heavy back-end components—services, storage, messaging, and real-time data flows
- Experience deploying software across diverse target environments, including baremetal and air-gapped or on-prem settings, not just managed cloud
- Exceptional debugging ability—you are the person who finds the bug that has stumped the team, and you have the tools and instincts to do it (profilers, debuggers, tracing, packet capture)
- A rigorous approach to testing—you build test strategy and infrastructure into the product rather than bolting it on afterward
- Clear technical communication and the judgment to know when to go deep and when to ship
Nice to Have
- Prior experience building operator, ground-control, or robot-development applications for UAV, UGV, or USV platforms
- Familiarity with robotics middleware and protocols (ROS/ROS2, MAVLink, DDS, gRPC, WebRTC)
- Experience with real-time telemetry, streaming, and control-loop interfaces between applications and physical hardware
- Experience packaging and distributing signed, updatable native applications across macOS, Windows, and linux
- Familiarity with infrastructure-as-code and self-hostable deployment (containers, Kubernetes, or bare-metal provisioning) for shipping the same product into very different environments
- Background in aerospace, defense, or other mission-critical software domains