What do you do when you fall off the Stoic bandwagon? With its focus on things which are completely in our control, failing at Stoicism leaves nowhere to hide - every failure is completely on your own head.

Stoicism is a somewhat familiar idea to most people. It's usually characterized as a from of emotional dishonesty, where you put on a brave face, or further to the extreme, deny yourself the ability to feel. My parents were very much of the former school of thought, which may be why Stoicism sits fairly comfortably with me.

I started This Coding Life as a way to think about living a better life. Without knowing it, I was building a loose philosophy. But around a year ago I started reading about Stoicism and it clicked with me, moreso than my own writing ever had.

Sometimes it's not possible to fix everything at once, or to fully fix things at all. This is especially true of human behavior. In Changing Fearlessly I talked about focusing on a single change at a time. Even with a single change though, sometim...

To approach change fearlessly, you need the right support. In programming that primarily comes from automated tests and a great source control system. The first lets you know if you've broken something, the second lets you step back in time to fix...

Four years ago, my Dad died unexpectedly. That kicked off a challening few years for my family and I. Both our sons were born; my Mum died; we moved interstate a couple of times; bought and sold a few houses; my wife and I both changed jobs; we ha...

I've been cycling to work for the past few months. As it gets deeper into Autumn and the temperature dips closer to zero Celsius , making the right clothing choices right is becoming more important. The hardest part isn't keeping warm: it's making...

I often do technical things for no particular reason. For example, a couple of nights ago I jailbroke my iPhone and ever since I've been doing things like installing SSH and a web server. That's right, my iPhone can now serve web pages.

After my last blog post a couple of friends and I were discussing the "best" solution to the FizzBuzz problem. My solution is the one I consider to be the most elegant, because it satisfies the 4 C's of elegance. The first 3 C's are obvious.

In software development, refactoring is the process of improving how code is structured, usually because the original implementation was sub-optimal or the circumstances in which the code is being used have changed. The aim is elegance: that subje...

As a professional developer I know a fair amount about creating good software. But as a relatively new dad (and at 30, a relatively new grown-up) I'm still leaning an aweful lot about creating a good life.

This Coding Life will contain a series of articles focused on taking the principles and strategies I use in my career and applying them to my every day life. My experience so far is that applying professional rigour to my personal life helps make it more elegant, useful and enjoyable. Hopefully, that will continue...