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
342 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 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 moreProduction-proven patterns for DRF projects — serializers, JWT authentication, permissions, filtering, pagination, versioning, error handling, and testing.
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.