Full-Stack Python Developer & Open-Source Enthusiast
A highly experienced web developer with 15+ years of expertise across the full development lifecycle — from backend APIs to polished frontends. Passionate about clean code, great UX, and building things that last.
Technologies I work with day to day
Things I've built and shipped
Client-side password generator with configurable length, character sets, ambiguous-character exclusion, entropy display, and a visual strength meter. Nothing leaves your browser.
Try itFormat, validate, and minify JSON in the browser. Syntax-highlighted output with configurable indentation, clear error reporting, and character and line stats.
Try itLive regex testing with color-coded match highlighting, capture group breakdown, flag toggles (g, i, m, s, u), and a built-in regex cheat sheet. All in the browser.
Try itEncode plain text or binary data to Base64, or decode Base64 back to text. Supports URL-safe mode and file input — entirely client-side.
Try itDecode and inspect JSON Web Tokens in the browser. Parses header, payload, and signature with human-readable timestamps, expiry badge states, and URL hash sharing.
Try itGenerate cryptographically secure SECRET_KEY values for Django settings. Configurable length and character set, with ready-to-use code snippets and session history.
Practical articles on Django, Python, and web development
LLM mental models, token arithmetic, prompt engineering, structured output, tool use, embeddings, RAG, streaming, and production patterns — all in Python.
Read more342 US occupations scored for AI exposure by an LLM pipeline. Software developers hit 8–9/10 — here's what that means and how to build it yourself.
Read moreLive prices over WebSocket, Celery Beat refresh, price alerts, and a full DRF API — all on the free CoinGecko tier with no API key required.
Read morepgvector + OpenAI embeddings + Claude API — build a grounded chat endpoint over your Wagtail pages with streaming and auto-indexing on publish.
Read moreStreamField vs placeholders, Wagtail admin vs frontend editing, plugin systems, multi-site, search, and when to pick each one.
Read moreSensors → MQTT → Python PID controller → actuators → Django time-series → live Channels dashboard. Self-hosted greenhouse automation, full code included.
Read moreBuild a streaming Claude chatbot in two days — Django model, SSE endpoint, session history, floating widget, rate limiting, and production checklist.
Read moreRaspberry Pi robot → Django REST API → Celery + Claude Vision → WebSocket alerts. Full code for a precision farming crop disease detection pipeline.
Read moreInstall, configure, index models, add autocomplete, boost fields, filter results, and do zero-downtime reindexing in production.
Read moreStop blocking Django workers on slow LLM calls. 202 Accepted → Celery task → poll pattern with priority queues and SSE streaming.
Read moreMy background and experience
I'm a full-stack Python developer with a decade of experience delivering web applications across a wide range of industries. My focus is on building reliable, maintainable systems — from REST APIs and CMS integrations to interactive frontends.
I'm comfortable across the entire development lifecycle: architecture, coding, testing, deployment and client communication. I care about clean code and great user experiences.
Django and Wagtail CMS projects, REST API integrations, Elasticsearch implementations, and frontend development for clients across the UK.
Built Plone and Django-based web platforms, Zope integrations, AngularJS frontends and REST APIs across multiple client accounts.
Started with Python 2, jQuery, HTML/CSS and Django 1.x. Learned the ropes building content-managed sites and internal tools.
I'm available for freelance and contract work. If you have a project in mind or just want to say hello, drop me a line.