Settlor
Settlor is a title insurance and escrow company that runs on software it builds itself: an internal operations platform that covers title, closing, escrow accounting and e-recording, white-label portals for lenders and agents, and a public API.
My title is Web Developer, and the work covers the whole stack: Flask and FastAPI services, PostgreSQL, Vue screens and Docker images. I've done more every year, and 2026 is my biggest year by far.
- Backend
- Frontend
- Infra
- Testing
Platform runtime and security modernization
- The problem
-
The upgrade covers about 23 repositories, each moving to Python 3.14 on new Debian base images.
The platform is upgrading from Debian bullseye to Debian trixie.
- What I did
-
I led the upgrade across those repositories. That meant:
- Moving to Python 3.14 on new Debian base images, and to Node 24.
- Getting the codebase ready for SQLAlchemy 2.0.
- Pinning dependencies to exact versions.
- Gating image builds on vulnerability scans.
- Rebuilding the HTML-to-PDF binary for the new OS, with visual regression checks.
- Building a separate regression-check suite just for the upgrade.
- Stack
- Scale
-
About 650 commits across about 23 repositories.
If you want to know whether I really keep things current, this is the work I'd point to.
Remote print service
- The problem
-
Print jobs come from the cloud app, and the printers are at office sites.
It runs on site so the clients can control which printers are connected.
- What I did
-
I wrote a Windows service that gets installed at office sites. It receives print jobs from the cloud app and drives the local printers over IPP. It has:
- A job queue with retry.
- Recovery when a worker thread dies.
- A web admin page.
- A signed installer, built with PyInstaller and Inno Setup.
- Stack
- Scale
-
About 240 commits on the service, plus about 120 on the cloud side.
Vue component library and the Vue upgrade
- The problem
-
The frontend is moving from an older Vue and webpack setup to the current Vue with Vite, Pinia and TypeScript, and there's an in-house Vue design system.
To keep up with modern software and safety, and to be able to use modern patterns with consistency.
- What I did
-
I'm the largest single contributor to both halves of this: the in-house Vue design system, and moving screens off the older Vue.
One I'd call out is StlrTable, the table component.
- Stack
- Scale
-
About 400 of about 1,300 commits to the design system.
Public API
- The problem
-
The platform has a public API, built on FastAPI with Pydantic behind an API gateway.
The schema move was to use the latest version of Pydantic.
- What I did
-
- Built FastAPI endpoints and their schemas.
- Led the move to schemas written natively for the latest version of Pydantic.
- Rolled out type checking with
ty, first as an advisory check and then as a blocking one, and wrote a design decision record for it.
- Stack
- Scale
-
About 310 commits.
AI and developer tooling
- The problem
-
The platform is adding AI features that run as background agent jobs, along with new developer tooling for the team.
- What I'm building
-
This is all in progress. It includes:
- A foundation for AI features: background agent jobs with live progress, a log of every turn, tracking of which model ran and what it cost, audits of what agents write, and eval fixtures that include prompt-injection tests.
- The team's Claude Code plugin marketplace, with skills for guardrails, tickets, QA readiness and release notes.
- Playwright end-to-end and visual test suites.
- Stack
Other work
A few more parts of the platform I've worked on:
- Real-time notifications over WebSockets for long-running jobs.
- The configurable workflow engine and work queues.
- Escrow accounting, payments and 1099 reporting.
- The operations KPI dashboard, built on Postgres materialized views.