As I get the hang of interviewing software engineers, I’m learning a lot from my colleagues who have been doing it much longer than me. One of the things that’s most surprising to me is that they don’t look for exact skill set matches for the interview. As we all know, software interview questions aren’t the best indicator for what day-to-day working with a person is like. To answer perfectly, the questions we ask demand a really broad set of technical expertise. Most candidates that we see (at least at more junior levels) simply won’t have that broad expertise yet. Here’s the cool thing though - we’re not looking for a perfect answer! Instead, we’re reviewing the candidate’s problem-solving approach, and checking the tools they have at their disposal to solve the problem. We do this a lot of the time by looking for a depth of knowledge in some area of technical focus, complemented by a breadth of knowledge to passably solve related problems.
This reminded me of an idea from pop-psychology: the T-shaped person (not to be confused with people practising Flag Semaphore, btw). The idea describes someone who has deep expertise on at least one topic they can uniquely contribute to the team. For example, they might be really good at performance instrumentation or visual design or data analysis. That’s in addition to the person having a range of knowledge on other topics relevant to the team so they can be an effective collaborator.
Although informal, the term ‘T-shaped person’ neatly encompasses two things: how software engineering teams are approaching their hiring processes, and the growing shift towards more holistically optimised workplaces (a fancy way of referring to workplaces designed not only for efficient work, but also for nurturing and encouraging the humans responsible for that work). Having T-shaped people around isn’t always about yoga. It does two big things. First, it promotes a focus on specialization, and specialization really helps organizations of people do great things. Each person can focus on their unique area in tandem with other team-mates focussing on theirs, and the whole becomes greater than the sum of its parts. Just like in sports teams—Together, Everyone Achieves More. This is true both within your company’s software engineering department, and within your company as a whole. Second, the T-shaped person concept is distinguished from specialization alone by a separate, important emphasis on breadth. Great teamwork results when all members also prioritise knowing enough about everyone else’s areas to collaborate effectively.
So, how do I become a T-shaped person?
To grow as a T-shaped person there are several things you can think about doing:
Deepen your focus areas of deep expertise
Whatever your specialized area is, get better at it. All the greats, in whatever field, will say that the learning never stops. Satya Nadella talked recently about ‘learn-it-all’ individuals ultimately doing better than ‘know-it-all’ people, in parallel with the growth mindset being emphasised in tech companies right now. Stay curious, stay hungry and go deeper into your chosen topics.
Go wide; expand your knowledge base into areas that are particularly valuable within your team.
Strive to have a better understanding of at least the basics of what other people on your team specialise in. This is the route to great collaboration. Makinde Adeagbo wrote a powerful piece here about the need to be able to handle change within tech, tech being the cutting-edge industry that it is. It’s not only possible but likely that the best apps / language / tool at the moment may not even exist five years from now. This requires you to be adaptable, with the mental agility to change direction and handle uncertainty.
Push at your boundaries, test your limits
This one has wider benefits than just for work. Read and absorb everything that interests you, no matter what the topic. Are you in finance and interested in soccer? Go nuts with fantasy football and leagues. Get your Thursday practise in. It’s been proven many times over that using your mind and body in different ways from normal work improves mental and physical functionality overall. So while it might not be intuitive, focussing on post-work soccer might just clear your mind enough to help you complete that complicated debugging.
Take your side project seriously
A lot of people talk about having hobbies as if they’re just ways to pass time outside of work or sleep. Change this! Set yourself real goals outside of work. If you’re a developer who loves dancing, figure out how to take part in dance competitions, and sign up. I’m not kidding. I have engineer co-workers who are semi-professional hip-hop and salsa dancers. A friend of mine wrote a novel by the side of his work. I work with a lawyer who’s also a professional actor. I could go on, but my basic point is this: stretching yourself past your comfort zone, outside of your area of expertise, forces you to reach new heights and ensures you’re utilising that vital mental plasticity. It’ll all help you get better at your real job and find your flow, honest. Plus you’ll probably enjoy life a little more.
Bear in mind, having and displaying a T-shaped skill set is not the be-all and end-all of how to succeed in a software engineering interview. It’s just one, slightly simplistic way to describe a solid set of attributes that will serve you well. As an interviewer, I see that people who have these attributes (or are working on developing them), are more able to deal with situations that occur in a real-life workplace. My conclusion is that they’re good characteristics to have!
And here’s the cool bit: a lot of becoming a T-shaped person is within everyone’s reach! It’s just habit formation. You need to make a habit of being curious, of reading and imbibing all the experiences you can.