This afternoon during an interview, a potential new hire at LMAX asked what LMAX could offer in the way of career progression. Since I’ve been thinking a fair bit about what comes next in my career now that I’m moving back to Australia I thought I had a pretty good answer and that it might be worth sharing here2.
In most industries career progression is signified by ever fancier sounding job titles, but for a software developer, the fancier the title sounds the less likely you are to actually do any development. Essentially, career progression often amounts to career migration – into “architecture”1 or managements. If you really love developing software though you need to look at it a different way. If I spend the rest of my career as a “Senior Software Engineer” I’ll be pretty happy, so long as I can keep honing my skills and becoming more valuable to the companies I work for. Ideally I’d like the pay I take home to grow in line with that value.
Given that world view, the best way I’ve found to progress my career as a software engineer is to work in a place where I’m surrounded by people smarter than I and where I regularly feel stupid. Feeling stupid is a pre-requisite to really learning – it means you’ve just found an area where you have a large gap in your knowledge. If you also work with people smarter than yourself that becomes an opportunity to learn from them.
What’s particularly amazing about this process – and this is something that working at LMAX has really taught me – is that if you spend enough time being excited by the learning opportunities that feeling stupid highlights, you find yourself suddenly providing the knowledge to teach other people who are feeling stupid. So now you get the satisfaction of feeling stupid and learning something new, plus the opportunity to demonstrate how much you’ve learnt by sharing that knowledge with others.
If that’s not an awesome way to spend your career, I don’t know what is3.