Engineering
Automating a process designed not to be
Consular filing has no API, no sandbox and no versioning. Portals change on a Tuesday with no notice. This is a write-up of the systems we built to make that reliable anyway.
Scale
What the systems handle
- Portal integrations
- Not published yet
- Requirement edges
- Not published yet
- Training outcomes
- Not published yet
- On-time delivery
- Not published yet
None with an API
Each source-dated
Rejection model
Trailing 90 days
Architecture
Six systems that matter
Document intelligence
MRZ extraction, face-geometry checks against 40+ national photo specs, and a classifier that rejects a bad scan while the traveller is still on the upload screen rather than three days later.
Filing orchestration
Every destination is a state machine with its own retry semantics, session handling and business-hours windows. 60+ of them run concurrently against portals with no API and no changelog.
Portal drift detection
Government sites change without warning. Synthetic filings run hourly against every lane and page a human within minutes of a form field moving.
Rejection risk scoring
A model trained on historical outcomes is intended to flag the specific field most likely to sink an application before it is submitted. It is not in production yet.
Requirements graph
Passport nationality × destination × purpose × residency, resolved to a definitive answer in under 200ms. Roughly 40,000 edges, each with a source and a last-verified date.
Guarantee accounting
The on-time promise is enforced in code: a filing that crosses its committed delivery time triggers the refund automatically, with no ticket and no request from the traveller.
Principles
What we've learned the hard way
Treat every portal as hostile infrastructure
Never let a model make an irreversible call
Make the guarantee mechanical
We're hiring engineers
Backend, ML and infrastructure roles working on exactly the systems described above.