PROJECTS / ENGINEERING WORK
Systems I've designed, built, integrated, tested, and shipped.
Explore the products, platforms, AI systems, automation workflows, and internal tools behind the work — pick a system and inspect how it works.
10 PROJECTS
01 / AI PLATFORM
01 / 10
READMINDME
Knowledge-grounded AI platform.
PROBLEM
Generic AI assistants hallucinate because they don't know the application's knowledge base. For a study tool, a made-up verse breaks the product's promise.
SYSTEM
TYPE
AI / RAG
STACK
FastAPI · PostgreSQL · pgvector · OpenAI
A production-shaped RAG platform — retrieval, personalization, moderation, and operations — built solo.
View case study →PRIVATE / NDA
LegalTech Platform — six internal systems.
Full-Stack Developer · 6 Internal Systems · Active Production
Architecture and engineering patterns shown with sensitive details removed — no company name, links, or screenshots.
01
Dynamic Document Generation Pipeline
Legal forms are complex — static templates break the moment data changes. Built a form-driven pipeline where users complete a SurveyJS questionnaire embedded in the storefront, with answers auto-saving as they go. On submission the data triggers an n8n workflow that merges it into a Word template, converts to PDF, and delivers it by email. Paired with an internal admin app — built on the SurveyJS form builder — where staff manage forms, templates, and bundles without a developer, with all writes routed through a resource-style API rather than direct database access.
Zero manual document handling, and non-developers can ship new form types.
02
Anti-Piracy Document Fingerprinting
Self-help legal documents are trivially resold once they leave your system. Built a two-part fingerprinting subsystem: a Node/Express/TypeScript microservice that stamps formatted footers into .docx files over a REST API (bold, italic, color, font, alignment), and a companion service that injects per-purchase identity — user ID, email, timestamp — into the generated PDF's metadata via pdf-lib. Both are called from the document pipeline, so every delivered file is uniquely traceable to the buyer.
Every delivered document carries an invisible, per-buyer fingerprint.
03
Court-Record Lead Classification Engine
Daily public court-record exports arrive as zipped, caret-delimited flat files with separate lookup tables for party types, case types, and judges. Built a Node/Express/TypeScript backend that parses the feed, filters to active family-law matters filed within 180 days, detects trigger events in the docket — service returned, motion to withdraw — and classifies each unrepresented party into one of four lead profiles with priority tiers: newly filed, recently served, dropped by counsel, or simply unrepresented. Leads are enriched with human-readable labels and batch-upserted behind a CRUD API.
A raw daily court feed becomes a prioritized, deduplicated lead queue with no manual triage.
04
Multi-Party Dispute Scheduling System
Dispute negotiations require all three parties — creator, receiver, and mediator — to agree on a meeting time. Built a scheduling system where a creator proposes a date, the receiver accepts or declines, and on agreement all three parties are notified automatically. Designed for legal dispute workflows where neutral coordination matters.
Three-party consent model with automated notifications on agreement.
05
Containerized Scheduling Service
The scheduling workload outgrew a single process once reminders, confirmations, and calendar sync all needed to survive restarts. Split it into an Express API and a separate BullMQ worker over Redis, with Postgres for state and migrations applied automatically on container start. The whole stack — API, worker, database, cache, Traefik reverse proxy — ships as a documented compose deployment with a written production runbook.
Background jobs survive restarts; the full stack deploys from one documented runbook.
06
Mediator Rule Engine with Wear OS Integration
Mediators need to trigger timed actions during sessions — reminders, check-ins, delays — without interrupting the flow. Built a rule engine with three rule types: instant (fires immediately), delay (fires after a set timer), and cron (fires on a set schedule). Rules are configured in a frontend dashboard, mapped to named buttons, and surfaced on a Wear OS watch so the mediator can fire any rule with a single button press. Also includes a voice command system for natural-language scheduling.
Frontend rule configuration → one-tap execution from a watch during live sessions.
REPEATABLE SHAPES
Patterns behind the work.
Different domains, same engineering shapes — that's what makes the next system predictable to build.
AI / RAG
Ground the model before it speaks.
AUTOMATION
Events flow; nothing is handed off by hand.
INTEGRATION
External systems become one system.
QA
Shipping means proving it works.
DATA
Raw input becomes usable answers.
Want a system like these?
Tell me what you're trying to build, automate, fix, or improve — I'll map the system it needs.