Skip to content


web development

I work professionally as a web developer, mostly using PHP, Javascript and MySQL on Ubuntu. My work gives me the opportunity to combine my interests in backend coding, UX design, and Linux.

I've previously done freelance web design, and I currently maintain a number of personal websites that I design, build and host myself.

When it comes to technology, web development is my first love, and most of my personal projects are web apps of varying complexity.

unix system administration

I got into system administration when I started studying computer science and everyone in my course was talking about Linux all the time. Linux is what the cool kids use, they said. Try Linux.

I took this recommendation to heart. Maybe a little too much. I started running virtual machines on my Macs, and booted up every Linux distribution I could find. This included ArchLinux, which requires you to manually install the system (creating the file system etc); and Linux From Scratch, which is not actually a distribution, because you literally compile the entirety of Linux from scratch and therefore get to choose exactly what you install.

If you give me a system that's highly configurable, and which you can tinker with the inner workings of, I won't be able to think or talk about anything else for days. So you can probably imagine how this played out. At the time I was a diehard Apple user; I now run Linux on all my machines, as well as maintaining an Ubuntu server to host my websites and personal projects.

While what I know about system administration barely scratches the surface of what there is to know, I've had to learn a little bit about how things work under the hood because of the interesting ways Linux tends to break (especially when run on hardware intended for other operating systems). The fact that this is a selling point for me probably says...something about who I am.

ux design

My favorite part of web design is solving challenging problems for the user - making the experience of using an application as painless, intuitive, and accessible as possible through careful consideration of user experience.

I firmly believe that UX principles are relevant not just to software, but to everything we interact with. In my day to day life I am constantly observing my own (and others') reactions to the tools we have to use every day, and thinking about ways they could be made more usable.

natural language processing

The first extra-curricular programming I ever did was writing Twitter bots in Python. Writing bots taught me authentication, APIs and many other skills that continue to serve me well today, and I also made a lot of great friends in the botmaking community.

In the Twitter bot community, there's a big overlap between people interested in linguistics and people interested in programming. I've always been interested in languages myself. As a child, I studied Latin and Greek (because I wanted to translate the scientific names of animals!) and as an adult I've studied the basics of around 7 different languages just for fun, although I can't speak any of them fluently!

Due to my lifelong fascination with languages, I took a linguistics course as an elective in uni. This gave me an unexpected opportunity to utilise my budding programming skills. For my final assignment, I wrote an essay on feline linguistics, which involved collecting data about the vocalisations of my two cats; afterwards I used a Python script to analyse the resulting spreadsheets and present me with findings. (In case you were wondering - my conclusion was that cats do have a language of sorts!)

Given this background, it was only natural that I would make some Twitter bots that use natural language processing. The most significant of these are unconfusion bot, which attempts to understand questions you ask it about time and temperature, and give you helpful answers; and botlang, which was an ambitious attempt to create a community-driven conlang (both bots are now offline).

Through the Twitter bot community, I also became aware of the NaNoGenMo project. If you've heard of NaNoWriMo, it's like that but instead of a human writing a novel in a month, a human teaches a computer to write a novel in a month! This was an opportunity to combine my interests that I just couldn't resist, and the result is what I like to call a degenerative novel.