I build tools that turn messy input into something a machine can actually use: documents into structured Markdown, manual business processes into automated workflows, loose requirements into typed and tested code.
Most of my work sits at the seam between traditional software engineering and AI. A deterministic path handles the common case quickly and cheaply, and a model enters the loop only where deterministic logic runs out. I write Python and Java for backend and systems work and TypeScript for the web layer, and I care more about error handling, structure, and behaviour under failure than about how a demo looks on the happy path.
Currently going deep on production Python backends, retrieval systems, and agent architectures.
Converts documents and images into clean Markdown. A rule-based parser handles common formats entirely client-side, so typical files never leave the browser, and a multimodal vision model picks up the scans and screenshots that rules cannot read.
TypeScript · Multimodal vision · Client-side parsing
An interactive web app pairing an AI-assisted Markdown converter with a live editor and 3D coordinate-transformation visualisers. Rebuilt around a proper service layer, server-side key handling, and typed boundaries between the UI and the model.
React · TypeScript · Express · Gemini API
A curated set of n8n workflows for AI integration, lead generation, social automation, and business operations. Exported JSON plus the setup notes needed to actually deploy them rather than just read them.
n8n · Workflow automation · API integration
A dependency-free Java validation library covering RFC-compliant email checking, international phone numbers, and name-field rules. Built to be extended, because every real form eventually needs a rule the library did not ship with.
Java · Library design · Zero dependencies
A file-organisation tool built defensively. The interesting part is not the sorting but the failure handling: permission errors, name collisions, and interrupted runs are all meant to leave your files exactly where they started.
Python · Filesystem · Defensive error handling
More projects
- TICTACTOE_UPDATED_OOP_VERSION — Java Tic-Tac-Toe built on SOLID principles, with an unbeatable Minimax opponent and Human, AI, and AI-vs-AI modes.
- AutoCLRBin — Python utility that clears the Windows Recycle Bin through the Win32 Shell API, silently and without dialogs.
- StudentManagementSystem_OOP — Java CRUD system with role-based access, automatic grading, and serialization-backed persistence.
- LibraryManagementSystem — Java library system with issue and return flows, search, and binary-file persistence across sessions.
- QRCODEGENERATOR — Python CLI that turns URLs or text into QR images with timestamped output.
- dev-portfolio — My personal portfolio site.
Languages
AI and automation
Web and data
Open to collaboration on AI tooling and automation. Reach me on LinkedIn.


