Selected work / 08

EchoAtlas

A human-in-the-loop synthetic aperture radar workbench for discovering provider-reported imagery, reviewing acquisition pairs, and inspecting deterministic change candidates without turning a heuristic into a claim about the world.

My role
Product architect and lead builder
Scope
Product strategy, system architecture, interaction design, full-stack implementation, evidence boundaries, verification, and release direction
Stage
Public portfolio demonstration
Core technologies
Python · FastAPI · Rasterio + NumPy · React + TypeScript
EchoAtlas Analyze workspace with public Umbra-derived before and after imagery, machine-generated candidate outlines, and an analyst review queue

Case study

Turning SAR availability into reviewable evidence.

The problem

Open SAR imagery may be technically available, but availability alone does not make it decision-ready. A useful comparison depends on acquisition geometry, timing, polarization, resolution, overlap, processing choices, and data quality. Even when those conditions are documented, an image difference is not automatically evidence of damage, cause, identity, intent, or operational status.

What I built

I defined and approved the product scope, civilian-use boundary, demonstration story, interaction direction, architecture, and release decisions. I directed and reviewed agent-assisted implementation across deterministic geospatial processing, FastAPI services, the React workbench, accessibility, testing, packaging, and delivery. EchoAtlas now connects provider metadata discovery, immutable pair review, a checksum-verified local raster pipeline, versioned evidence bundles, and machine-generated review candidates while keeping human judgment and interpretation limits explicit. Scientific validity remains undetermined.

Key decisions

  1. 01Review before compute

    Pair review exposes dates, geometry, overlap, polarization, resolution, licenses, warnings, and a content-hashed manifest before deterministic preparation can begin.

  2. 02Make the bundle the boundary

    Python owns deterministic acquisition and raster processing, React owns the analyst experience, and a strict versioned analysis bundle carries identities, parameters, artifacts, candidates, provenance, and limitations between them.

  3. 03Separate evidence from interpretation

    The system produces machine-generated review candidates. Supported, Rejected, and Needs context are reversible analyst assessments, not confirmation of physical change or operational truth.

Build retrospective

The useful product emerged from keeping each boundary honest.

The hard work was not drawing boxes over satellite images. It was separating provider availability, engineering comparability, deterministic processing, machine evidence, and human interpretation so each layer could say exactly what it knew and fail safely when it did not.

  1. 01

    Map and list parity clarified the product model

    What broke
    A globe is useful for navigation but can hide source details, exclude non-pointer workflows, and visually imply coverage the providers never reported.
    Course correction
    Keep map and accessible list selection synchronized while making provider status, warnings, metadata, attribution, and every selection control available without the map.
    What held
    The non-map path became a clearer evidence surface, not merely an accessibility fallback.
  2. 02

    A safe failure protected the evidence

    What broke
    A broad demo could silently substitute synthetic or unrelated imagery when the selected pair did not match a prepared analysis bundle.
    Course correction
    Require exact acquisition identities and a validated bundle contract. Unknown or mismatched pairs fail visibly instead of receiving convenient replacement data.
    What held
    The demonstration is deliberately narrow, but every displayed analysis remains tied to the pair the user reviewed.
  3. 03

    Deployment should not pretend to be the pipeline

    What broke
    A bounded serverless demonstration cannot honestly provide the local system’s raster acquisition, alignment, durable jobs, or arbitrary on-demand processing.
    Course correction
    Keep heavy deterministic processing local. The public path serves bounded metadata discovery, engineering comparability, and the exact prepared Bingham Canyon demonstration.
    What held
    The product is publicly reviewable while arbitrary cloud processing and operational monitoring remains unimplemented.
  4. 04

    Software verification is not scientific validation

    What broke
    Reproducible candidate output and green workflow tests can be mistaken for proof that the regions represent real physical change.
    Course correction
    Label every region as a machine-generated review candidate, retain interpretation warnings, and keep AI summaries and accuracy claims gated behind qualified independent SAR adjudication.
    What held
    The system demonstrates engineering and review quality without claiming precision, recall, calibration, scientific validity, or generalization.

Technical view

Architecture

Navigation, evidence, processing, and interpretation stay separate14 components · 14 connections

The public interface can discover metadata, compare a pair, and open one approved prepared demonstration. Deterministic raster processing remains local, and a versioned evidence bundle connects it to human review.

Human review surfacesNavigate, compare, inspect, assess
Public application boundaryValidated metadata and pair contracts
Deterministic local processingPinned inputs and reproducible artifacts
Evidence and deliveryPortable records and bounded hosting
  1. React · MapLibre
    Explore

    AOI, provider search, footprints

  2. Semantic HTML
    Accessible results

    Map and list selection parity

  3. React dialog
    Pair review

    Comparability before compute

  4. React workbench
    Analyze

    Candidates, evidence, assessments

  5. FastAPI · Pydantic
    Workflow API

    Strict runtime validation

  6. Umbra · Sentinel-1
    Provider adapters

    Normalized partial-result search

  7. JSON · GeoJSON
    Immutable selection

    Pair identity + content hash

  8. Python · AWS CRT
    Pinned acquisition

    Allowlisted, checksum verified

  9. Rasterio · NumPy
    Local raster pipeline

    Crop, align, normalize

  10. SciPy · Python
    Candidate generation

    Deterministic review prompts

  11. STAC · public catalogs
    Provider metadata

    Availability, footprints, licenses

  12. Schema 1.0.0
    Versioned analysis bundle

    Images, lineage, warnings, hashes

  13. Append-only events
    Owner assessments

    Correctable browser-local history

  14. Vite · FastAPI · Vercel
    Public EchoAtlas deployment

    Bounded prepared demonstration

surfaceservicedataaiintegrationcontrolruntime
Read system connections
  • ExploreWorkflow API
  • Accessible resultsWorkflow API
  • Workflow APIProvider adapters
  • Provider adaptersProvider metadata
  • ExplorePair review
  • Pair reviewImmutable selection
  • Immutable selectionPinned acquisition
  • Pinned acquisitionLocal raster pipeline
  • Local raster pipelineCandidate generation
  • Candidate generationVersioned analysis bundle
  • Versioned analysis bundleAnalyze
  • AnalyzeOwner assessments
  • Workflow APIPublic EchoAtlas deployment
  • Versioned analysis bundlePublic EchoAtlas deploymentapproved demo only

Built so far

  • Normalizes bounded Umbra and Sentinel-1 provider metadata into an Explore workflow with attributed map navigation, equivalent non-map results, explicit provider failures, pair selection, and engineering comparability review.
  • The approved Bingham Canyon demonstration uses two pinned public Umbra acquisitions, checksum-verified local preparation, two 361 by 512 real-derived display images, and a versioned bundle containing provenance, warnings, hashes, and 26 machine-generated candidates.
  • Keeps machine evidence separate from human judgment through explicit, correctable Supported, Rejected, and Needs context assessments plus persistent interpretation warnings.
  • The public Vercel demonstration exposes the Explore-first interface, lightweight metadata and comparability APIs, and one exact prepared real-derived workflow. It does not process arbitrary remote imagery or provide operational monitoring.

Where it stands

  • EchoAtlas surfaces machine-generated review candidates. They are not confirmed physical change, damage, cause, identity, intent, safety status, or operational truth.
  • Scientific validity remains undetermined. Qualified independent SAR adjudication is incomplete, so no accuracy, precision, recall, calibration, confidence, or generalization claim is supported.
  • The public application supports bounded metadata discovery, engineering comparability, and one prepared Bingham Canyon demonstration. Raster acquisition and processing remain local, and arbitrary remote pairs are not analyzed on demand.
  • Global map navigation does not imply global imagery coverage, current provider availability, paid tasking, or a scientifically suitable pair.
  • AI summaries, multi-user authentication, durable assessment storage, operational monitoring, automatic alerts, incident feeds, and a public SLA are not implemented.

Continue exploring

Next case study

View all selected work

Applied AI / Product systems

Job Search OS

Protected single-user production app

Open case study