I’m writing this blog to share some real life, practical steps you can take to perfect the art of software engineering and land your dream job. No pie-in-the-sky theories, no fluff, just some simple, straightforward guidelines. I’m a firm believer in practicing what you preach, so the suggestions I make in this blog are all things I have personally done to improve my skill set, and as a result, get every job I’ve wanted.

I’ve had a relatively short career so far (just over 8 years), and 2 years ago I landed my favourite job yet! Does that mean it’ll take you 6 years to land yours? No, not necessarily, but that’s a bit of a tricky one. If you’re new to the field and the job listing you’re interested in states: “6 years’ experience required”, then perhaps yes, but I truly believe that by following my advice, you’ll likely convince them to hire you with fewer years under your belt. Trust me, at 28, I’ve been the youngest amongst those sharing my title at every company I’ve worked for. Proving your proficiency in a skill is far more valuable to an employer than simply stating the number of years you’ve spent doing it.

Ever heard the saying: “practice makes perfect”? There are a lot of bad theories out there, but this is one that I’m sure you’d agree holds a pretty valid point. If you want to perfect anything, you need to practice it, and in the world of software engineering, I see no better way to practice your art than with open source development. Not only is writing open source software a great way to learn and acquire new skills, it is a brilliant way to gain real world experience in something your current job may not be offering you; experience that you can legitimately claim on your résumé. There’s no hiding behind the cosy veneer of closed source software here, these are real solutions with real users, but this time your code is as much the product as the application.

So why should you listen to me? Well, if asked to name the world’s most successful open source project, most people would immediately answer: Linux. The Ubuntu operating system is arguably the most popular Linux distribution on the planet, and for over 2 years now, this has been my job. Don’t get me wrong though, I didn’t make a very glamorous entrance to the open source world by any means. I’ve made a lot of mistakes over the last few years. My personal projects range in popularity from a couple hits a day to a couple hits a month, not to mention one or two utter failures that received zero interest at all! However, it’s through these mistakes that I’ve learnt a lot about the do’s and don’ts of free and open source software development, and is precisely why I’m writing this blog. I want to show you the system I use to design, develop, and deliver open source software, steer you away from the mistakes I’ve made along the way, and help you build an impressive résumé of projects that’ll get that job you’ve always wanted!

So, without further ado, let’s get started…