About
Hi, I'm Alex and I'm a full-stack web developer.
I'm also a teacher, author and freelance consultant, but really, everything centers around creating software for the web.
I've been programming for a long time. My introduction to computers started when I was young with a Sinclair ZX81 that my Dad built, but it was the rise of the internet in the 90's that really caught my imagination. I learnt some HTML, a little CSS, made a website, and then it snowballed from there.
My main focus now is teaching Go. I started using Go in 2013, and immediately felt at home with the language. I began making blog posts to document what I was learning, and a few years later this led to me writing and self-publishing the books Let's Go and Let's Go Further. They get some great feedback and I'm happy to have played a small part in helping lots of people learn and adopt Go.
At the same time I also work as a freelance consultant (if you're interested in working together you can find out more here), and before that I worked for the UK government as the technical lead for www.police.uk and data.police.uk. I'm currently developing Autostrada (a codebase generator for Go projects) and I've also built a couple of geographic data businesses and continue to maintain those.
I was born and raised in the UK, but moved to Austria about 5 years ago with my girlfriend. I have a few hobbies. In the winter I love snowboarding, and in the summer I enjoy hiking, rock climbing, and generally exploring the mountains around where I live. I also do a lot of cycling on a 1970's road bike that I've lovingly restored.
About this site
The website that you're reading right now is powered by a custom Go application. The HTML and CSS is a custom theme which took me embarrassingly long to design 🙃. Everything is hand-written, and no frameworks are used.
It runs on a Digital Ocean server, which also hosts the Let's Go and Let's Go Further websites. Caddy is used to automatically manage TLS certificates and act as as a reverse proxy to the sites. I use Ansible to manage the server and make deployments.