Case files, not a project dump.
Each one is a problem, its constraints, the decisions I made, and what I’d change. Production work is described without names or internal numbers.
- 01
Turning long, ugly PDFs into structured data
An asynchronous extraction service for a maritime software platform. Long technical documents go in; structured blocks, markdown and search-ready chunks come out. The customer's file is read once and never stored.
TypeScriptPythonSQS · S3 · EC2PostgreSQL - 02
An agent that cannot leak another tenant's data
Natural-language search over a graph of candidates for a specialist staffing platform. One tool-calling loop, and between the model and the database sits a deterministic gate.
TypeScriptLangGraphNeo4jFastify - 03
Forecasts that admit how wrong they can be
A fuel-consumption model for one vessel class, served through a small web console. The work that mattered most was the audit that came after the first version.
PythonFastAPIscikit-learnConformal prediction - 04
A retrieval agent that's allowed to say no
A seven-node LangGraph agent over arXiv cs.AI papers. Before every answer it decides whether to retrieve, call a tool, ask a clarifying question, refuse, or just talk.
PythonLangGraphFastAPIChroma - 05
Prompt logs as a data-warehouse problem
An analytics platform for LLM prompt telemetry: about 4.6 million raw execution events normalised, feature-engineered, warehoused and mined.
PythonPostgreSQLFastAPIR
- GuardianPulse ↗Real-time safety and anomaly detection. Strict-TypeScript pnpm monorepo, Postgres and Prisma, a Redis buffer, Socket.IO.
- senthium-ai ↗Presence-aware workstation security: face recognition, rule-based automation, telemetry.
- deus_ex_machina ↗Goal-driven multi-agent orchestration on LangGraph with vector-memory retrieval.
- quantum-image-shield ↗Image encryption with quantum-generated keys and classical permutation, with statistical analysis of the result.