November 2024 to Present · Remote
US consumer lending: loan origination, underwriting, fraud and abuse, identity and income verification, bank linking. I work spec-first: the spec, the technical design and the ADR come before the code.
- Specified and built a manual bank-entry fallback to the bank-aggregation provider across the origination and decisioning services: hexagonal Kotlin and Spring Boot, PostgreSQL with Flyway, explicit aggregates and invariants, and transactional outbox events. Filed the ERD and the ADR.
- Modernised the fraud-label taxonomy in the underwriting platform (Clojure), made labelling a first-class underwriting command, and wrote the matching Open Policy Agent authorization policies.
- Shipped the identity-verification flow with a manual document-request fallback, and real-time feedback on uploaded paystubs, bank statements, tax returns and W2s through a document-intelligence integration.
- Built the end-to-end test platform from nothing (Playwright, scheduled GitHub Actions runs, failure notifications, test-health reporting) and moved suites off Cypress. Published a shared metrics package adopted by five consumers.
- Migrated the income-verification journey to Next.js end to end, built the prequalification journey (React Hook Form + Zod) with PII masking, ran a security-hardening pass (CSP, SRI, dependency and cipher upgrades) and moved staging onto new Kubernetes infrastructure.
- Authored the team's shared agent skills and maintain the engineering knowledge base that agents and people read.
- TypeScript
- React
- Next.js
- Kotlin
- Spring Boot
- PostgreSQL
- Flyway
- Clojure
- OPA/Rego
- Laravel/PHP
- GraphQL
- Terraform
- Kubernetes
- Playwright
- GitHub Actions
- Datadog