I’m a full-stack web developer with two decades professional experience.
I’m a jack-of-all-trades. I’m a classically-trained programmer who fell for the web way-back-when. I’m as happy in backends and APIs as I am in modern javascript frameworks, swimming in framework and framework-less CSS, managing Linux servers and databases. I work with designers, animators, video producers and other content creators to deliver their visions in an optimised and accessible format.
It’s not all content and websites. Work has taken me to deeper software development, physical security like ANPR, booking systems, kiosks, printers, room management, dynamic door access and appliance and kiosk deployments.
Since, you asked, I’m a long-time proponent for progressive enhancement. Things should work everywhere without relying on many-megabyte payloads to display a blog post. I gravitate towards server-side (Django, FastAPI) and static (Hugo, 11ty) solutions, but when it’s required, frameworks like Vue are the tools I reach for because they degrade so well.
I work as a contractor. I work for individuals, agencies, small companies, big companies and I’ll work with you if you want me. You want me, I’m great. Ping me an email.
Outside of work, I’m a dad to two extraordinary girls. What little time they leave me with left of me gets thinly spread between woodworking (mostly making stuff for them), DIY, photography, some cycling, helping people on Ask Ubuntu, and most recently, editing this page.