03/Selected work/Maritime · SAR/Shipped
Vessel Detection System
- Role
- Software Engineer
- Timeline
- 2022 – 2023
- Skills
- Geospatial UI
- Maritime domain awareness
- Analyst workflows
- Imagery tasking
Tech Stack
- Angular
- TypeScript
Overview
VDS is the analyst face of MDA's vessel detection stack. Not one satellite. C-band SAR from RADARSAT-2 sees metal hulls day and night, through weather. AIS and VMS say who claims to be there. Optical and space-based RF fill other holes. Fusion is the point: a radar return with no matching transponder is a dark vessel.
I built the Angular and TypeScript front-end. About 25 analysts used it to request imagery over an area and inspect what came back. I did not build the satellites. I built the screens people used to task them and to decide whether a detection was worth acting on.
Problem
AIS is a transponder. Anyone who wants to disappear turns it off. Optical is useless at night and under cloud. A single SAR image is a snapshot of scatterers, not a ship identity.
Analysts still have to task coverage, wait for a pass, and then tell a SAR blob from a ship that is already broadcasting. The failure mode is either missing the dark ones, or flooding the desk with unmatched noise.
Market Research
The demand is maritime domain awareness over exclusive economic zones: illegal fishing, smuggling, ships that do not want to be seen. Canada has used MDA's dark-vessel work with Fisheries and Oceans Canada since 2021, including Galapagos coverage and later Indo-Pacific monitoring. That is the job the sensors exist for.
The gap is not whether we can see the ocean. It is whether an analyst can task the right mix of sensors and trust a fused picture fast enough to matter.
Competitor Research
AIS-only maps are fine until the interesting ships go dark. Optical constellations are high-res and weather-limited. RF geolocation hears emitters, not hulls. Other SAR vendors are strong on revisit and resolution.
MDA's bet is the mix, on RADARSAT heritage: wide-swath C-band ship-detection modes, then AIS and VMS correlation, optical and RF as extra votes. One sensor is a cue. The array is the product.
Design Decisions
Tasking and inspect are different jobs. Requesting a pass is not the same as reading a detection. The UI had to hold both without turning the map into a dump of layers.
Show the sensor, not just a pin. Analysts need to know whether they are looking at SAR, AIS, optical, or RF before they decide a track is dark.
Unmatched is first-class. Correlation against AIS and VMS is the product. A detection that matches a broadcast is context. A detection that does not is the work.
Angular and TypeScript on the existing geospatial stack. This was an analyst tool inside MDA, not a new platform.
Solution
What shipped is the analyst loop: pick an area, request imagery, see detections against the transponder picture, open vessel detail. About 25 analysts ran that loop.
Task · AOI
Imagery tasking
Request satellite coverage over an area of interest so the next pass is aimed at the water that matters.
SAR · AIS · RF
Multi-sensor picture
C-band SAR, AIS, VMS, optical, and RF on one desk. A ship that silenced AIS can still be a radar return or an RF hit.
Detect · inspect
Vessel detail
Inspect a detection: where it is, which sensors saw it, and whether it correlates to a known track.
Reflection
The interesting problem was not drawing ships on a map. It was making a fused detection something an analyst could stand behind.
I learned more about operational geospatial software on VDS than from any map demo. The sensors are MDA's. The job was getting that array onto a screen a person could use under time pressure.
