I have been hiring folks, and something that sticks out in the process is that there are three major aspects of experience in software development: the amount of time you have been doing something, how deeply you have gone in one skill, and how many different things you have worked with in your career.

I think there is a sweet spot that is unobtainable: too little time in a skill and you do not know it well, too little depth and what you know is not useful, and not enough breadth holds you back from being able to do a lot of things. There just is not enough time in the day to get lots of time, depth, and breadth.

Until the last several years, I had a lot of breadth without depth or time, which was a side effect of being dropped into a lot of projects to clean up issues and then moving on. Now I am a specialist, with a pile of time and depth in one particular tech stack to the detriment of other skills, and I feel like I need to branch out a little more.


Keep your engineering skills up to date by signing up for TechRepublic’s free Software Engineer newsletter, delivered each Tuesday.