Main illustration: Nadine Kolodziey
In the not too distant past, a career in engineering was relatively straightforward. You studied one or more particular languages, got a job that required very particular skills and you were all set.
That’s no longer true. The exponential rate of change in technology means it’s very hard to master anything before it’s considered outdated by a newer, shinier rival. A successful engineering career is now less about going deep on one particular skill, but being open to learning newer technologies more quickly and understanding how this might change what it means to be an expert.
In his most recent book, “The Inevitable”, founding executive editor of Wired, Kevin Kelly, claims this increasingly rapid pace of change is creating what he describes as “endless newbies”. The technologies that will dominate for the next 30 years have yet to be invented so we will all be “newbies” to them, regardless of age or experience.
Think about this in the context of your engineering career. Traditionally, engineers have been trained to have a T-shaped distribution of engineering skills, the horizontal bar being the breadth of your skills in different areas and the vertical being your depth in a particular field.
But the rise of endless newbies means the horizontal bar becomes wider and more important and the vertical becomes shorter.
The new T shape will mean less time and experience on any one technology
The vertical bar becomes shorter since technology is changing so quickly. You still need to have depth in an area but it’s less likely that you will be able to work with one technology for your entire career. The length of the vertical is related to time and experience. If technology and products are changing so quickly then you simply have less time to dig deep in one area before a newer competing one arrives on the scene.
The rate of change will also impact the breadth of the traditional T-shaped person. Since there will be more new technologies, it becomes more important to expand your base set of skills and knowledge of different products and services. You don’t know where the next new product or service will come from so you need to hedge your bets.
Learning new things quickly and not in the depth we are used to is easier said than done.
Gimme a T
I experienced this recently when I was working with the Amazon Web Services (AWS) storage service S3. I was trying to query data stored in S3 which previously meant extracting and transforming the data to be able to interrogate it. However, in the last year AWS launched a new service called Athena which means I can query data in S3 instantly.
Then while I was working with Athena someone mentioned that AWS had just launched an even newer service called Spectrum which meant you could run Redshift SQL queries directly in S3. I could now use Spectrum instead of Athena even though I had only discovered Athena a month or two before! Given that there were only a handful of people using Athena in Intercom I was technically one of the “experts” in that area.
These are “new” services but they are built on other skills, such as using SQL queries to query data or knowledge of products such as S3 and Redshift. Previously you could focus on a database technology like MySQL or Postgres and increase the vertical depth of your T. Nowadays, with products and services changing so rapidly, being an expert means swapping skills more quickly, adapting to new changes and being ok with letting go of some skills.
This changes many of the fundamentals underpinning what we consider to be a traditional engineering career. Namely, go to college, learn a skill, join a company work in that area, get better, get promoted, become an expert and grow your human capital. Does it make sense to go to college for four years to learn a technology that may be obsolete when you graduate? Think of technologies like Hadoop which only came to prominence in 2007 but is now being considered “outdated” compared to newer technologies in data science.
Learning new things quickly and not in the depth we are used to is easier said than done. As humans, we value our skills and knowledge and are loathe to unlearn them.
When I started working in DevOps roles my main scripting language was Bash. When you get used to Bash scripting you can do an awful lot with it. I kept starting to learn other scripting languages such as Python but defaulted to Bash in many cases because I was familiar with it. I look back now and see that I was too slow to let go of Bash and it would have helped my career to embrace something like Python more quickly. It’s just hard to let go of something that you feel good at or familiar with.
Engineers will become better engineers, not worse ones, thanks to the cross-pollination of skillsets
Tour the engineering world
The real challenge facing engineering isn’t automation and artificial intelligence making human jobs redundant. The real danger is a reluctance to understand that our concept of an expert is changing. Being an expert in something now means building up a broader base of skills so you can dive deep when needed in that new technology or product. If things are changing faster than ever, so too must your area of expertise.
For example, we are already writing machine learning algorithms that are designed to write code themselves. So we need to be ready to quickly move from just writing code to designing algorithms. Sure, this may mean learning some new mathematical skills to develop these new algorithms. But if anything, engineers will become better engineers, not worse ones, thanks to the cross-pollination of skillsets. A little machine learning, a little algorithm design, a little coding and some domain knowledge. This broader T of base skills will enable you to go vertical more easily when that new product arrives on the scene.
At Intercom we try and prepare people for this future by ensuring engineers do “tours” of different teams. Engineers spend a few weeks working on a different team or on a different part of the product. A person used to working on back-end operational issues may work on a team in front-end development. Alternatively, someone may work with the analytics team for a while learning about data visualization or machine learning.
The goal here is broaden the T so that people can adapt more quickly to the new technologies being created everyday. In this way they get a sense of new technologies in other areas and can either bring them back to their current role or look to spend more time on another team. There is a complementary goal of working with different people on different teams. In either case it enables people to be more adaptable with their own engineering careers.
Learn to unlearn
Predicting the future is difficult. We can spot the macro trends in technology but it’s impossible to predict the specific form they will take. Similarly, we cannot now fully understand the the technologies that will be required for our future engineering careers. What we do know is that rapid change is inevitable.
No matter what skills you have, or what languages you’re proficient in, some aspect of it will become obsolete in the near future. So ask yourself: what you can unlearn? It won’t be easy. You will be a newbie with a new skill, rather than the pillar of knowledge you used to be. But you’ll be much better equipped to deal with new technologies when they do emerge.