Hi! I'm John and I

Latest from the blog

A Bit About Me

My Journey Into Code

My path into coding wasn't something I'd exactly planned. When I was about 12, a school program had me spending some time at the local newspaper. After an incident with their camera made it pretty clear that photography wasn't my calling, I ended up in a small room with their web developer and his iMac G3.

It was fascinating to see him creating images, animations, and connections with just lines of text. That definitely sparked my curiosity. My mum was really supportive and even printed out HTML tags for me to study. From that point, my interest just grew – HTML led to CSS, then JavaScript, and soon enough I was exploring things like PHP, Python, and Java. That early exposure got me hooked on building things with code, an interest that's stuck with me. After I finished my Computer Science degree at Aberystwyth University, I started my career as a software developer in Norway.

Since then, I've had a pretty varied career. I've been through the rollercoaster of startup life, spent time focused on building automated test tools, pitched in on healthcare software projects, and worked on core banking systems. Each of those experiences taught me a great deal and really deepened my respect for the whole craft of software development.

Code Quality

I aim to craft code that is maintainable, adaptable, and a pleasure to read. Working code is the baseline; true quality shines through in its clarity and structure. This comes from embracing best practices and constantly refining what 'quality' means.

Thoughtful Architecture

Software architecture is a formidable challenge. Neglecting it leads to rigid, legacy-bound systems burdened by technical debt. I dedicate significant thought to designing sustainable solutions that can evolve and adapt.

The Power of Automated Testing

I'm a staunch advocate for automated testing. It's the cornerstone of creating software that is not just functional but verifiably correct. My experiences on projects with and without robust testing have solidified its indispensable role in my development philosophy.