4 ms·
Thanks for your reply, I'm always interested in hearing about how other developers are choosing to tackle this tough career question about depth v.s. breadth.
by rubicon33 5y ago
Thanks for your reply, I'm always interested in hearing about how other developers are choosing to tackle this tough career question about depth v.s. breadth.
Scala is an absolutely awesome language, one that I love. I've had some of the best times building distributed systems with Scala + Akka and frankly would have loved to lean into that ecosystem and become a master of it.
Unfortunately, the market for that specialty is relatively small when compared to the broader software engineering market. I worried about specializing in a language that was niche. Compare it to, for example, the need for React, React Native, or even simply Java.
I have chosen to be very flexible in my career and learn many languages, across many domains. This, I think, is the source of some of my feelings of burnout in my 30s. It's just a never ending grind. When I do find a domain that I really love, like firmware, or Scala... I'm forced with the difficult decision of depth v.s. breadth and breadth always seems like the "safe" route, especially if you're willing to jump between frontend or backend and whatever is the flavor of the week as far as frameworks go.
I've heard horror stories of engineers who dug into their tech stack and never really kept pace with the industry, only to find themselves disposable, and inflexible, in their 40s and 50s. Whether or not those anecdotes are worth worrying about is certainly up for debate. I tend to be a worrier so, it's no surprise I've chosen the safe route.
- jmfldn 5y agoI think over-specialisation is potentially dangerous so it's worth bearing in mind. Ideally I think a balance is necessary, have one or two areas you focus on and keep your other, perhaps less developed, skills sharp. This is why I'm keeping a closer eye on things like Terraform and aws these days and generally sharpening my infra skills. Perhaps the best way of summing up my approach is to aspire to know everything about something and something about everything. The former gives you the satisfaction of deep knowledge, and the latter means you can pick up new tech more easily. Generally our industry is about knowing just enough in many areas, and knowing which questions to ask / what to search for. As for specific languages, as long as you're aware of a couple of paradigms, eg OO and FP, I figure it's not that hard to switch. Once you've mastered one or two languages you can generally be productive in another relatively quickly. We don't necessarily hire Scala devs for example, just engineers we think we can train up. I'm lucky in that the Scala job market is hot in London but I'm fully prepared for that to change one day. I'd probably target Kotlin or Java jobs if that happened but also open to anything interesting job-wise that will have me. I have my tech preferences but if I need to switch, and someone will allow me to learn on the job, then fine!