Web Development
Full stack development for 24 years. PHP, MySQL, JavaScript, SCSS. I build fast, secure, maintainable web applications and sometimes prettier things.
Full stack development for 24 years. PHP, MySQL, JavaScript, SCSS. I build fast, secure, maintainable web applications and sometimes prettier things.
Interactive installations, Arduino, audio installs, projection mapping and lighting for live performances. Turning abandoned spaces into immersive art experiences.
Agentic workflows, LLM integration, custom Stable Diffusion pipelines, and OpenClaw automation. I put it to work inside the tools and workflows people already use.
Specializing in architectural photography, infrared, time-lapse, and experimental techniques. Author of the Crumbling Castles book series.
I’m a web developer who wandered into the dark.
Web + Coding The day job is the web: PHP, MySQL and JavaScript, built to be fast, secure and maintainable, and sometimes prettier than that. Lately that work has crossed into other realms: TouchDesigner, Python, computer vision, and C++ for Arduino. It’s an interesting time to be a coder.
Exploring Coding for 26 years, exploring abandoned places since 2003. That’s taken me inside hundreds of places, more than 140 of them hospitals: asylums, sanatoria and related large-scale institutions. The rest are bunkers, mines, tunnels, factories and theaters. I photograph all of it, and some of those photographs became two books in the Crumbling Castles series: Taunton & Northampton and Worcester & Danvers.
Seafoam Palace The same places became the stage for Falling Sideways, our series of sound and light installations in abandoned resonating chambers, from a Berlin tunnel to the Wieliczka salt mine. I build the apparatus and the website: projection mapping cued to DMX lighting, an audio-reactive ferrofluid display, inflatable lensball screens, glowing rebar cast from EL wire and silicone.
AI I use AI in my work. It’s been opening doors in my head faster than I can walk through them. I review what it produces and question what doesn’t make sense. I don’t love what it’s doing to the environment and society, but here it is. Using it doesn’t mean I’m comfortable with all of it; I’m trying to be deliberate about where it belongs in my work.