Door Ventures · April 2023 — present
The day job
Due-diligence questionnaire management for asset managers and fund investors. Both sides of the transaction work in the same platform: one side sends the questionnaires, the other answers them, and every answer carries its own provenance and review state.
I am the top committer across the platform — the front end, the API, the design system and the previous UI — and second on the database. Around 3,100 commits, merge commits excluded.
What a normal week contains
Product front end
React 19 on Next.js 15 in TypeScript. I rebuilt the review page — the busiest screen in the product — on a streamed questionnaire, with optimistic saving, answer provenance and compare-to-previous.
- React 19
- Next.js 15
- TypeScript
- TanStack Query
- styled-components
Design and UX decisions
I own the design system, the colour and status vocabulary, the interaction patterns and the WCAG 2.1 AA standard we hold the product to. It usually starts with working out what we are actually trying to solve.
- Figma
- design tokens
- WCAG 2.1 AA
- DoorFrame
API and database
FastAPI and SQLAlchemy over PostgreSQL. Endpoints, schema, migrations, and the query work behind them — including moving admin lists to page, sort and export server-side rather than in the browser.
- Python
- FastAPI
- SQLAlchemy
- PostgreSQL
Services and infrastructure
Lambda services and Step Functions — SES event ingest and bounce handling, notification dispatch and digest jobs, the document parser, and the state machines behind request processing and offline completion.
- AWS Lambda
- Step Functions
- SES
- Terraform
- Docker
Testing
I wrote our original Cypress suite, then rewrote end-to-end testing onto Playwright for the new platform: 746 tests, none failing and none skipped, with fixture ownership, parallel safety and reliable runs against deployed environments.
- Playwright
- Cypress
- React Testing Library
- Jest
Performance and security
Server-side paging and export, lazy pickers, and a query cache keyed by user rather than bearer token. Role-based access control, with internal roles visible to admins and editable only by Super Admin.
- RBAC
- caching
- server-side paging
- PostHog
AI integration
I led AI into the platform, automating report generation from client questionnaires and bridging OpenAI and AWS Bedrock. I also keep the conventions that stop generated code drifting from the rest of the codebase.
- AWS Bedrock
- OpenAI
- Claude Code
Legacy and mentoring
I still maintain classic Door, the original Java and Gradle platform that predates all of this, and I mentor the junior engineers on the team across both the front end and the back end.
- Java
- Gradle
- code review
- mentoring
Where the work actually went
RepositoryCommits
- door (classic)The original Java platform975—
- nextdoor-uiThe product front end779#1
- doorframeThe design system413#1
- nextdoor-apiThe FastAPI gateway375#1
- door-uiThe previous platform UI195#1
- nextdoor-databaseSchema and migrations159#2
- guidetodoorThe marketing site119sole author
- nextdoor-servicesLambda services95#4
git shortlog across eight repositories, merge commits excluded. Rank is my position among all contributors to that repository.
The part you can see
The platform itself sits behind a login. The company’s marketing site does not — I rewrote it from the ground up, and every commit in that repository is mine.
