Thursday, 26 June 2014

How I've Been Learning Python

How do you learn a new programming language quickly and efficiently? Often it’s not just the language; familiarity with frameworks, tooling, community, and culture is also crucial if you want to be effective. This post skims over how I’ve addressed those concerns whilst learning Python over the past months.

Python's official logo

Thursday, 29 May 2014

A Strategy for Building a Software Team

Software development is hard. Putting together a team of people who can do a good job of it is no easier. Having spent time with a few companies, though, I have seen certain approaches that appear to correlate with high-performing teams.

This post is my team-building strategy based on those ideas I've seen work... and a few of my own.

How do you build a winning team?
(with permission from

Monday, 26 May 2014

Come and Join the Innovative DDD Community

Domain Driven Design went out of programming fashion a long time ago, but in my experience many of its principles and practices can provide significant benefits to most software projects. That’s why DDD still has a passionate community who are continually evolving the way development and the business can work ever more synergistically.

In this post I am going to skim over some DDD innovations to show how being part of the DDD community can enhance you as a developer and compel you as an innovator.

Since the inception of DDD there have been stunning developments on both the social and technical sides of DDD. Alberto Brandolini has conjured up Event Storming - an efficient collaboration technique enabling technical and non-technical people to rapidly explore domains.

On the technical side, respected figures like Greg Young and Udi Dahan have been showing us ways to make DDD applications scale to huge loads, using event-centric techniques like distributed pub/sub and Event Sourcing.

DDD Connects Business and Technical

Sunday, 13 April 2014

How Much QA Tax Do You Pay?

Your QA team is there to protect quality. Without them you would release buggy software and lose your loyal, cash-supplying customers. Or so the theory goes. But what if your QA team were actually costing you money?

In my experience, some teams may be paying unnecessary QA taxes: distractions to developers, time-consuming release processes, and missed opportunity for really raising the quality threshold.

So let's have a look at a few of the QA taxes you might be able to avoid so you can purchase a shiny new Ferrari instead.

Saturday, 29 March 2014

Bad Estimates and Broken Confidence

We missed our deadline, we jeopardised the business’s strategy, and all confidence in our abilities from the rest of the company was lost. How would you recover a situation like that?

Whilst the tech job market is good in London, the team I was working on during that project were absolutely committed to turning things around. And justifiably so. As we started to make progress it was very rewarding.

To get things on track, all we had to do was stop committing project delivery suicide.

Saturday, 15 February 2014

A Short Technology Retrospective

I've been using some new technologies in the past 7 months whilst working on a major re-write of an old legacy search application. Some of these technology choices have had a big impact and I'm excited to share brief details of them with you (catch me on twitter if you want more detail).

Everything from the web framework to the search engine to infrastructure tools will be discussed. But first let's start with the most fundamental pieces. We built our application using Scala which runs on the JVM.

Saturday, 18 January 2014

Making Your Linux Desktop Spellbinding

A desktop environment styled to my intricate needs makes all those hours I spend at a computer feel like I'm an excited child again. Vibrant colours, futuristic effects and everything positioned to my liking makes me both super-happy and super-productive.

I value a compelling desktop environment as highly as a comfy chair or a chirpy colleague.

Arch Linux gives you incredible choice and flexibility because it's a bare-minimum style of distro where you only add what you want. Because of this the defaults are  usually quite basic in looks. As you can see below, Xfce, my choice of DE when using Arch (you can pick others like gnome, KDE, etc), has quite a basic look that lacks the eye candy of other distros such as Ubuntu that style up Xfce by default.