Andrew’s career so far..
1999-2002 University of Canterbury, Christchurch, NZ (BSc Hons 1st Class)
2003-2004 Allied Telesyn Research, Software Engineer (NZ)
2004-2005 Allied Telesyn Research, Senior Software Engineer (NZ and Japan) – Embedded C development of routers and switchers.
2005-2008 NDS, Senior Software Engineer (London) – Embedded C developement of software for set-top boxes, also quite a bit of python for tooling.
2008-2011 Contracting (London) – Mainly C# focused development, largely working on the web, lots of SQL work.
2011-present Co-Chief Software Geek at Guerilla Software – Developing projects using python/node.js/java/C#/mongodb/redis/php
Andrew started a software consultancy with a friend and they’ve been running full time for 6 months and are now expanding. They have a couple of their own projects in development (including one which is currently in an accelerator) as well as taking on software development and builds for other people to fund their fun projects.
What is your job title?
Co-Chief Software Geek (Developer)
What is your role about?
It depends on the week, but always at least 50% pure development. I also have to spend quite a bit of time talking to clients and partners. Our customers span quite a few different domains (healthcare, traditional media, social media) and we have our own projects as well. It can be a challenge switching context between the various technologies and vocabularies its a lot of fun.
What are the best/most positive parts of the job/industry?
Writing software is great fun, creating things is great fun, problem solving as a living is great fun and always learning new things keeps it fresh. Also I’ve always found developers to be cool people, generally less mired in politics than other industries.
What are the negative parts to the job/industry?
There will always be pressure to churn stuff out fast and under time extreme pressure. I’ve worked 100 hour weeks for months on the go before, which really burns you out. Also it’s hard to communicate the process of software to non-technical people so it can be hard to make people appreciate the need to spend significant amounts of time (and therefore money) without them seeing a direct concrete benefit. Additionally for all I love my fellow coders it’s definitely an industry dominated by a single perspective (e.g. largely male) and that monoculture can be a bit oblivious of alternative viewpoints.
What is the standard career path/qualifications?
It depends on what company you end-up in. A corporate environment will likely have a very structure career path moving from junior to principle, with a parallel management track. Eventually they might stick you in an architect position where you’ll no longer write code (and IMO fade towards irrelevance while other people get things done).
If you’re lucky enough to work somewhere like GitHub or Valve they pretty much do away with structure and trust that they’re hiring smart people who are going to get things done.
What are the prospects?
The prospects are huge, it’s definitely a developer’s market at the moment, the industry is in desperate need of talent. If you can code then there will be no shortage of opportunities.
In your experience are you aware of any differences your role has between industries/sectors?
For me the biggest differences are “big company” vs “small company” and “developer in a place where the technology is the company (e.g. google)” vs “developer in a place where software is on the periphery (e.g. insurance)”.
I’ve come to love working in small companies quite a bit more than big companies as they tend to be a lot more flexible in there approach to work and it’s easier to grow. There are a lot of nice things about big companies as well, but I’ve never seen one that wasn’t at least a little bit totally crazy in certain ways.
In terms of working in a place where software is key rather than periphery, I think that’s important to me personally. Otherwise there is a good chance that you’ll be cranking away on something like Sharepoint or SAP and missing out on all the cool great tech that is out there.
Reflection and The Future
What was it like coming into the industry?
A company hired half my honours class so it felt more like an extension of uni than anything else. It was fun (it still is fun).
Do you have any thoughts on the future of your role/industry?
I think we’re slowly learning how to write code better, which is a good thing. Testing is no longer something that is thought to be separate from development, but rather an integral part of the development process. Software is only becoming more ubiquitous, so it’s still a great time to enter the industry.
What advice would you give someone entering your industry?
I wouldn’t worry about focusing on any specific technology. You should enjoy yourself, put in deliberate practice and you will be fine. If you’re ever not enjoying yourself you should look at why, and maybe take a jump into a different domain or technology to keep it fresh.
More than anything you just have to write a lot of code in order to get better. I wish that I had more confidence to start my own projects when I was younger. It wasn’t until I’d already been a programmer for quite a few years that I started writing significant amounts of code outside of my day job. There is something to be said for trying to get a job in something like Haskell, as there is a much better chance of working with good people.
Have you come across anything or anyone that has helped you move forward in the industry?
I was lucky enough to read “The Pragmatic Programmer” in my first year as a developer. It made me realise that you have to take personal responsibility for your career and development. Reading programming books and blogs is a good way to stay in touch with the wider world of software even if your colleagues aren’t quite the software geek you might be.
More recently going to software meetups had a huge motivating effect on me. Talking to other people in the industry doing cool things inspires me and keeps me wanting to do better. It’s good to go to a few conferences a year if you can. Not so much for the learning that happens at them (you can do that yourself), but to remind yourself that there are people doing really cool things out there and getting the chance to talk to other passionate developers.