Software is an engineering discipline. Here are articles I've written about engineering practices in use in software.
Buying Tech Books in South Africa
I buy software engineering books. However, since I live in South Africa, it can sometimes be a bit tricky to find these niche technical books. This article lists some of the places that I've had the most luck in recent years.
Make the computer do it!
As software developers, we have all of the skills that we need to make the boring parts of our work the computer's problem! In this article, I explore how I think about if something is worth automating, and some of the approaches I use to save time in my software development process.
I was saved by Test Driven Development
This is a short story about how I gained a new appreciation for Test Driven Development.
Software Engineering is Engineering
I believe that software is an engineering discipline. In this article, I make that argument by summarising the work of a few other authors who have written on this topic, and offer my perspective on why this terminology matters.
Literate Programming
Literate Programming is a way of writing software by embedding code blocks into normal written documents (like this article itself). In this article, I explain what Literate Programming is in an abstract sense, and then introduce my preferred Literate Programming environment: Emacs Org-Mode.
The Fundamentals of Version Control
In this article, I aim to explain what version control is, and the core concepts that you're likely to encounter in any version control system.
Backups are a form of Risk Management
I did data backups badly for a long time, and it ended up biting me. In this article, I share my experience of doing it wrong, and some things you should consider when setting up your own backups.
Development in the Open
From now on, I'm going to start having my default position being making personal repositories public, open source repositories. They might not all be good, or finished.