About

Hi there! I’m Joe, a software developer who can’t seem to focus on just one thing for very long. This site is basically my attempt to wrangle all my tech projects, random ideas, and occasional disasters into something that looks vaguely organized.

I started this site mostly to keep track of what I’ve learned (and what I’ve messed up). Looking back at old projects is equal parts embarrassing and fascinating - like finding your old high school homework assignments, but with more command line errors. I figure if I’m going to make mistakes, I might as well document them properly so I don’t repeat them… at least not in exactly the same way.

Just to be clear: this isn’t one of those polished “look how amazing I am” portfolios. It’s more like “look at this weird thing I tried” or “here’s how I fixed that thing I broke.” I’m sharing the messy bits because that’s where the actual learning happens. Plus, maybe someone else can learn from my mistakes and save themselves a few hours of frustrated Googling.

Background

I’m pushing 40 these days, but I still get unreasonably excited about new tech like I did when I was a kid. I grew up in East London, where my grandad first got me interested in computers. He showed me some BASIC programming when I was way too young to understand what I was doing, but I was hooked anyway. Turned out that typing mysterious commands and making the computer do things was pretty addictive.

I studied Computer Science at Westminster Uni, then went back later for an MSc in Software Engineering. University was great for theory, but I’ve learned at least as much from late-night coding sessions and weekend projects that spiraled completely out of control.

My day job mostly involves Java enterprise stuff (which pays the bills), but my own projects are all over the place. I think there’s something valuable about bouncing between structured work environments and my chaotic home projects - each approach has its place.

Interests

My friend Alan has this running joke about my “hobby graveyard” - the place where all my enthusiastic new interests go to die after about three weeks. He’s not wrong. I get so excited about new things that I often abandon perfectly good projects halfway through. But hey, at least I’m never bored!

Software Development

This is my main thing, the one that’s stuck around. I love the whole process - designing systems on the back of napkins, arguing about architecture patterns, writing tests that actually catch bugs before they escape into the wild, and seeing something I built actually solve a real problem.

At work, I’m mostly in Java-land, but my personal stuff is more scattered:

  • Backend: Java (Spring Boot when I’m feeling corporate), Python (when I need something quick and dirty), Node.js (when JavaScript is the least bad option)
  • Frontend: React (though I grumble about it), Vue.js (when I’m feeling fancy), or plain JavaScript (when I’m feeling masochistic)
  • Mobile: Flutter (still learning this one), React Native (for quick prototypes)
  • Infrastructure: Docker (containerize all the things!), Kubernetes (when I’m feeling particularly self-punishing), and whatever CI/CD setup I haven’t broken this week
  • Databases: PostgreSQL (for grown-up projects), MongoDB (for when I’m not sure what my data looks like yet), Redis (for when things need to go FAST)

I particularly enjoy connecting different systems together and watching them not immediately explode. There’s something deeply satisfying about building a resilient system that can recover from failures gracefully.

Electronics

This rabbit hole started with a Raspberry Pi I bought “just to try out.” Several hundred pounds of components later, my desk looks like a small electronics shop exploded on it. Current obsessions include:

  • Microcontrollers: ESP32 (my go-to for anything wireless), Arduino (for simple stuff), STM32 (when I feel like wrestling with datasheets)
  • Making custom PCBs with KiCad (though my soldering skills remain… developing)
  • Home automation gadgets that my partner tolerates with remarkable patience
  • Low-power sensors that I’ve scattered around the house to collect data I rarely look at
  • Various half-finished gadgets that seemed like a good idea at the time

There’s something uniquely satisfying about building something that exists in the real world, not just on a screen. Even if that something occasionally shorts out and fills the room with magic smoke.

Photography

Photography has been with me forever. It’s my go-to when coding has fried my brain or when I just need to get outside and look at something that isn’t a screen. I did A-level photography back in the day (yes, with actual film and darkrooms - I’m that old), which gave me a decent foundation.

I’m mostly into street photography - capturing random moments and trying not to get punched in the process. I use a Ricoh GR3, which is tiny enough to fit in my pocket and doesn’t scream “PHOTOGRAPHER HERE!” when I’m trying to be inconspicuous. Turns out people act more naturally when they’re not staring down the barrel of a giant DSLR.

Taking photos forces me to slow down and actually notice things. It’s practically meditation for someone with my attention span - a nice counterbalance to the frantic pace of tech work.

3D Printing

My newest obsession! Like everyone else, I started with an Ender 3 that I spent more time upgrading than actually printing with. Eventually upgraded to a Prusa that’s more reliable but somehow just as capable of producing elaborate plastic failures.

Being able to go from “I need a thing” to “I designed and made the thing” in a few hours has been a game-changer. I’ve printed everything from custom enclosures for my electronics projects to replacement parts for household items.

The iterative design process in 3D printing feels so familiar - it’s debugging, but with physical objects. Make a thing, test it, adjust tolerances by 0.2mm, print again, repeat until it finally works… or until you get distracted by something else.

Purpose of This Site

This site is intentionally all over the place, just like my interests. You’ll find:

  • Project write-ups, including the messy parts where everything went wrong
  • Tutorials for things I’ve finally figured out after hours of frustration
  • Random explorations of tech I’m currently obsessed with
  • Occasional rambling about how these seemingly different fields connect
  • Links to resources that have saved my bacon on various projects

I believe in documenting things properly - partly for others, but mostly for future-me who will absolutely forget how I solved that tricky problem six months from now. If my write-ups help someone else avoid the same pitfalls, that’s a nice bonus.

If any of this resonates with you or you’re working on something similar, drop me a line. I’m always up for chatting about projects, even if it’s just to commiserate about that bug that makes no logical sense.