Portfolio
EDI mapping, API ingestion and multi-system integration — engineered to survive high-volume, edge-case, failure-heavy production traffic without dropping a document or duplicating an order.
In
210/s
Out
40/s
Depth
14k
Per-partner transforms plus live item and ship-to lookups. This stage runs five times slower than the one feeding it, so everything behind it starves.
Cache code lookups, precompile templates, shard mappers by partner, then scale the worker pool — in that order, because the cache is the cheapest win.
Ingest 220/s vs. map 40/s — the queue grows about 180 documents a minute until something upstream slows down.
Per doc
0.3s
API calls
4%
Cost index
13%
Documents grouped into one envelope per partner window. One handshake, one acknowledgement, one slot in the partner's rate limit — the right call when the SLA is in minutes.
Raw 850 · positional segments, tilde delimiters
This is what the partner sends — envelope, control numbers, positional segments. Useful to machines, unreadable to the ERP. The parser walks it element by element, including the escaped delimiters, and rejects anything malformed here.
850, 855, 856, 810 and 860; ORDERS, ORDRSP, DESADV, INVOIC. Element and qualifier level, loops and control segments included — not a black-box translator.
Envelope-aware tokenizers over flat, positional and delimited files. Escaped delimiters, embedded newlines and ragged loops become typed records.
OAuth2 client-credentials, cursor pagination and rate-limit headers respected. Backfills run through the same path as live traffic.
HMAC signature checks, timestamp windows and fan-out to consumers, so one partner event can drive several systems at once.
A dedup key per document means at-least-once delivery never turns into duplicate orders. Replays and retries are safe by construction.
ERP, WMS, TMS and 3PL portals behind one canonical contract. One source of truth per document, no side spreadsheets.
Per-stage latency, queue depth, acknowledgement rate and dead-letter volume on one board, with alert thresholds per partner SLA.
Validate first, quarantine second, and hand a human a reason code they can act on. Negative acknowledgements route back to the sender.
map.workers above 10k for 12m — paged. Threshold is per partner SLA, not one global number.
Syntax — missing segment, bad delimiter
Reject at parse, return a 997 with the failing element id.
Semantic — unknown SKU, PO not found
Quarantine with a reason code a buyer can actually action.
Transport — timeout, TLS, partner down
Retry with exponential backoff and jitter, capped, then alert.
Duplicate — same key, second arrival
Acknowledge and drop. The first write already won.
Poison — fails after N attempts
Move to the dead-letter queue, one click to replay after the fix.
AI is a force multiplier on the slow, repetitive parts of integration work — the drafting, the triage, the test data. The judgement about what a trading partner's data means still sits with me.
Auto-draft mappings
Point a model at a new partner's 856 sample and it proposes the field map. I verify element by element before anything ships — it removes the blank page, not the review.
Failure triage
Cluster dead-letter dumps into root causes, rank them by volume and draft the fix, so the queue clears from the biggest reason down instead of the loudest complaint.
Edge-case generation
Synthesize malformed and awkward envelopes — split loops, stray qualifiers, midnight cutover dates — so the regression suite covers the corners production actually hits.
Plain-language runbooks
Ask why a partner's acknowledgements stopped at 03:00 and get the trace summary plus the next command to run, instead of digging through five log sources.
Measure the stage before touching it — a bottleneck fixed by guesswork comes back as an outage.
Treat every dead-letter item as a missing test case, so the same failure only happens once.
Keep one SLA board per partner; averages hide the account that is about to escalate.
Write mappings as reviewable code, so the next engineer can read the intent and not just the output.