WORK / ASSET & ERP PIPELINE
Asset & ERP Pipeline
A FastAPI integration layer connecting QuickBase to SAP, plus an asset pipeline serving media from S3 with EXIF geolocation, video-frame extraction, and credential-isolating proxy APIs.
ROLE
Backend engineer, Design Intelligence LLP
STACK
FastAPI · S3 · Wasabi · Python
TIMELINE
2025 — ongoing
STATUS
Shipped, in production
THE PROBLEM
The team needed QuickBase — a low-code operations platform — talking to SAP, and needed a media pipeline that could take raw assets from field work and serve them to a frontend with useful metadata attached, without exposing third-party credentials to the browser.
This is described at the architecture level only — client identity and schema details are under NDA.
CONSTRAINTS
- —No client-identifying details or schemas could be exposed, including in this write-up
- —Media pipeline had to handle both images and video, at volume, from field-collected sources
- —Frontend needed on-demand previews without every client request touching third-party APIs directly
- —QuickBase and SAP have very different data models — the integration has to reconcile that, not just move bytes
ARCHITECTURE
A FastAPI service sits between QuickBase and SAP. A separate asset pipeline pulls from S3 and Wasabi, extracts EXIF-based geolocation, converts video to frames for previews, and serves 3D/image previews on demand — all behind a proxy layer that keeps third-party credentials off the client.
- 01Integration service — FastAPI, reconciles QuickBase and SAP data models
- 02Asset pipeline — EXIF geolocation extraction, video-to-frame conversion
- 03Proxy layer — every third-party call routes through the backend; no keys ship to the browser
- 04Bulk operations — scripted, unattended Wasabi storage management
DECISIONS
1. A proxy layer instead of client-side API calls
The frontend originally would have called third-party services directly, which means shipping credentials to the browser. Routing every external call through a backend proxy keeps every secret server-side — the frontend only ever talks to our own API.
2. EXIF extraction, but with a validation pass
Location metadata from field-collected photos isn't reliable on its own — phones and cameras write EXIF data inconsistently, and it can be stripped or wrong. Extraction has to be paired with sanity-checking against plausible bounds rather than trusted blindly.
3. Bulk operations against Wasabi in Python, not manual per-file handling
The team was doing asset organization by hand before this. Scripting the bulk operations meant the same task went from a manual chore to something that runs unattended.
RESULTS
2
Enterprise systems integrated
Automated
Bulk asset operations
0
Client credentials exposed to frontend
WHAT I'D DO DIFFERENTLY
Nothing further to disclose at the architecture level beyond the above — this one stays intentionally high-level given the NDA.