Software Engineer
Posted Updated
Signal processing produces enormous volumes of metadata, digital products, and recorded data on platforms with constrained storage, constrained bandwidth, and an intermittent link to anywhere else. This role builds the systems that move, store, index, and serve that data under those constraints.
You will design the data layer and the networked services that connect collection systems to the operators and downstream consumers who need what they produce.
What you will do
Data pipelines and storage
- Design and implement ingest pipelines for high-volume signal metadata and product
- Define storage schemas and retention strategies appropriate to platform storage limits
- Build indexing and query capability that stays responsive as data volume grows
- Implement data reduction, prioritization, and summarization for bandwidth-limited dissemination
Services and interfaces
- Build networked services and APIs connecting collection subsystems, operator interfaces, and external consumers
- Implement messaging and publish/subscribe patterns suited to intermittent connectivity
- Own interface definitions and keep them versioned and documented
Performance under constraint
- Profile and optimize database, service, and network performance against realistic shipboard conditions
- Design for graceful degradation when links drop or storage fills rather than for the happy path
- Instrument the data layer so that problems are diagnosable after the fact
Standards and integration
- Contribute to data model definitions and adherence to applicable interface standards
- Work with the security engineering team to ensure delivered services meet hardening requirements