I am often asked for career advice. One of the things
software engineers always want to know is if they
should learn some new tool or language. In fact, I
cannot think of a performance review I have read for a
software developer that didn’t include something about
growing their skills around a particular technology.
That is the nature of our work: it is constantly
changing. You have to keep learning, or you will
But for your career, is it better to go wide and learn
a lot of different things, or is it better to go deep and
learn a few things really well?
Making the case for going deep. Recently, I was
talking to another engineering leader about hiring and
staffing. I asked which technologies he wanted
people to know, and he responded
that it didn’t matter—a good software
engineer can work on anything.
This has been the thinking at many
large software companies in the past,
and there are definitely merits to
it—especially when you are hiring inexperienced candidates straight out
of school. As I have worked longer in
the industry, however, I have started
changing my thinking.
I would argue that it is important
to go deep in at least one area, and it
is almost always better to hire people
who have a solid depth of experience
in the tools and technology they are
Why do you need to have deep
Really good software engineers for
a particular language or technology
will exhibit qualities such as these:
˲ They are productive. They produce an amount of work that is above
average, and they are able to get things
done. This means they know how to
use the tools of their trade well and
aren’t slowed down by not understanding something. They use their
brainpower for harder problems, not
learning how to do the basics.
˲They make smart trade-offs.
They are able to understand the risks
of their decisions. They have failed
before and so can avoid mistakes.
If there is a library or prebuilt code
somewhere, they are probably aware
of it—they may even have contributed
to it or used it in past projects.
˲ They help others. Teammates go
to them with questions because they
have done this before and know how
to do it right. This expertise makes
them natural leaders or mentors.
˲ They hit their deadlines. Their estimates are almost always accurate. They
know how long something should take
them because they have experience
working on similar projects.
˲They are still growing personally and professionally. Since they
are comfortable with the technology
stack, they can use their time on learning skills in other areas such as lead-
Article development led by
We all wear many hats, but make sure
you have one that fits well.
BY KATE MATSUDAIRA