Should You Prioritise Depth or Breadth In Your Early Career?
TL;DR
Is it dangerous to touch a lot of different technologies without mastering any of them? The answer, like any question worth answering, is that it depends. It depends mainly on what stage of your career you're at. If you're in the early years of your career it's valuable to go wide, provided it helps you identify what you really like to do. If you've been jumping around trying different things for 10 years, it's dangerous. It seems too easy to emerge on the other side being very average at a bunch of things.
How do you counteract this danger?
- Remain aware of the things you like and don't like, the parts of work that energise you or drain you, and the things that you can't help but create a bunch of ideas around. This requires a lot of reflection and introspection.
- Try to understand why you dislike certain things. There's likely a bunch of similar things out there that you can avoid without having to actually expose yourself to them. You can save a lot of time this way.
- Try to do as much of the stuff you like as possible, and as little of the stuff you don't like. There's always going to be some bad stuff. Don't approach it negatively, because there's a lot to learn from it and you may even end up liking it.
- Don't settle for things you accidentally encounter at work. You need to be proactive and have agency about these things. You need to build outside of work and look for opportunities to play with new tools and ideas. Not only will this make you better at what you do, but it's also the place you're more likely to stumble across things you actually like, since the process of tinkering and experimenting with things is driven by curiosity.
Touching Many Parts of The Stack
I started 2021 at a company rolling out education solutions in underprivileged areas of South Africa. They were doing important work, but they weren't doing technical work. For somebody that wanted to grow into a great engineer, that wasn't a good environment to be in [1]
During the first half of the year I moved into an engineering role at EXPLORE-AI, where we specialise in delivering data science solutions for global water utilities. We're in a period of rapid growth, having grown from less than 20 employees at the end of 2019, to 170+ right now [2].
Growth like that comes with growing pains, and we're thinking about how to build tools and systems to support that growth. I'm part of a small, cross-functional team - one architect, one data scientist, one data engineer, and two software engineers - building a central platform that will allow teams within EXPLORE to form quickly and deliver tangible results to our clients. We're building a data mesh - a novel paradigm that doesn't yet have established patterns and best practices - to replace the industry-standard, monolithic data lakes that we've used up until now.
Working on something like this has been challenging because of the uncertainty that accompanies it, but tremendously exciting as it forces you to adopt a first-principles approach to designing novel solutions for the problems we're tackling.
Am I out of my depth? Probably. Am I uncomfortable? Absolutely. Am I learning? More than I ever could've imagined.
Breadth vs Depth
One of the things that comes with being part of a small team covering a lot of ground is that you touch many different moving parts. I've built Rest APIs with Django, web frontends with React, data pipelines with Snowflake, and a Command Line Interface application with Python – all within the past few months. It's tremendous from a learning perspective, but I've found myself wondering whether I'm developing skills deeply enough or if I'm just scratching the surface in a number of places, which doesn't add up to much.
Being exposed to a variety of problems and technologies is valuable because you very quickly come to realise what you enjoy and what you don't. I wish I'd spent more time figuring out what I actually like to do during school and university. I would've approached things very differently had I taken the time to understand what's out there and how it fits into the world, to identify what I enjoy and what I'm good at.
I strongly believe that figuring out what you like is the fastest route to doing great work. You can't beat somebody that's obsessed with what they do, and it's difficult to be obsessed without liking what you do.
Great Work Is Good Work Done Repeatedly
I've come to think of great work as good work done repeatedly. Consistent effort done over a long period of time is more attainable than some form of magic that few understand and even fewer can produce.
I think about careers over a 40-year timeframe. This stems from Cedric Chin's 'What's Your Time Horizon?' in which he explains convincingly that careers can be thought of as a 40 year period with a beginning, middle and end game.
Given 40 years, spending 2-3 years touching different parts of the stack is ideal. It helps you figure out what you enjoy and what you don't. If it takes you another 10 to get really good at your chosen domain, you're left with 25 years to develop mastery. The Internet is now big enough that if you're amongst the best at what you do, regardless of how specialised your chosen niche may be, you'll be inundated with opportunity.
This is why it's beneficial to be exposed to a wide variety of tasks and technologies - it gives you a more complete picture of the engineering skill tree and where your unique strengths and abilities best fit into it. From there, you're well positioned to become very good at one or two things and sufficiently good at the rest.
Summary
- If you're in the early years of your career, experiencing many parts of the stack is valuable to learn what you really like to do.
- Thinking about careers over a 40-year time horizon with is a good way to adjust your perspective to align with the compounding nature of learning and careers.
- Caution against being averagely good at many things. The best engineers appear to be very good at one or two things and sufficiently good at the rest.
- Be deliberate about what you're learning. See points 1 -4 at the top for more on how to do this.
[1] That's not an indictment of the company at all. They're exceptional people that are exceptionally good at what they do and are single-handedly responsible for changing the lives of thousands of children. It just didn't align with my ambitions.
[2] These aren't exact figures, but they're accurate and consistent with the conversations I've had. These numbers account for growth across the whole organisation.