Back to projects
sdpe
Stage 3+4 blend

SDPE — SAR processing pipeline orchestration

Lumir LumirX multi-stage SAR pipeline · NestJS with 5 subsystems + DAG

Architecture · data flow
Architecture · data flow
Forward requestResponse · write-backExternal system

From the console an operator composes and runs a DAG; Pipeline Workflow orchestrates the L0→L3 stages over pgmq events. A CSC 1–9 interface chain (Python algorithms, e.g. csc03 range compression) runs the per-stage processing, and the product catalog lands in PostgreSQL. A new satellite or algorithm is added by planning → DAG mapping → a processing profile (near-zero code change). Amber = forward flow.

Screens · artifacts
Recorded with Playwright e2e — auto-tour through five console screens in Plan mode (mock data). Satellite-modal bypass → Deployed rules → Data Catalog → Jobs → DAG Console.GIF
Problem

There was no system letting an operator configure, run, trace, and recover the L0–L3 LumirX raw-SAR pipeline, and adding new satellites or algorithms needed to cost as little code change as possible. From my side, I was dropped into the pipeline domain blank-slate.

System

On top of an inherited NestJS 5-subsystem monorepo, I designed and built the DAG planning UI (no Figma — the UI code plus Playwright e2e *is* the planning document). Built the GitLab CI/CD from zero, did the detailed design for interfaces/csc-8, fed the 80–100-page ICD/SAD docx directly into AI, ran a tight loop of small 'does this break the rule?' reviews, and wired up an auto-redeploy hook that fires when ops-console work completes.

Impact

Despite entering blank-slate, I produced detailed design and implementation on top of my senior's base. The architecture has settled into a shape where adding Sentinel support or a Snappy-based DAG step takes near-zero time.

My contribution

Designed and built the DAG-pipeline planning UI; built the GitLab CI/CD from zero; produced the detailed design for interfaces/csc-8 (csc-7/9 to follow).

Inherited scope

Apps folder structure + natives/csc03 · csc04 + pgmq + ICD/SAD (base design finished by my senior).

Honesty note (for interviews)

pgmq and the tech-stack decisions came from the inherited base design. I read the ICD/SAD myself and extracted the detailed design from them. My senior only dropped hints — but the base design was solid enough that the work went smoothly, which I should acknowledge too.

Interview Q&A prep

Q.How do you separate what you did from what you inherited?+
A.Inherited: apps structure · natives/csc03 · csc04 · pgmq · ICD · SAD. Mine: DAG UI planning · GitLab CI/CD · interfaces/csc-8 detail.
Q.How did you learn the domain knowledge?+
A.AI-first, in parallel with DAG UI design. Whatever I didn't know I asked AI to diagram or visualize; I fed the ICD/SAD docx in directly and ran repeated 'small-violation' reviews.
Q.How is extensibility guaranteed?+
A.A 3-step structure: planning → DAG mapping → processing profile. A new satellite or algorithm costs almost no code change.
Keywords
NestJS · 5 subsystemsDAG pipelinepgmqGitLab CI/CDICD/SAD consistency mechanismNext.js auto-redeploy