Talent at any company can be divided in to following categories: a. People who make code* frameworks b. People who extend code frameworks c. People who maintain code frameworks * you can replace code with almost any other employable skill "Talent shortage" usually refers to people who fall in a). Every company claims to want to hire only a) but most companies need b) or c). Very early stage startups ideally need a),…
But if that's the case the problem is different than it is portrayed to HR and that's the problem. What you need is someone for a) is someone who is both a software engineer (i.e. thinks hard about design) and is a coder/developer. The amount of experience doesn't really matter though experience is an important guide. What really matters is attitude. How does the programmer approach design questions? Is the individua…
Attitude is exactly what companies look for when they hire people with less experience. Even for more advanced programmers in a sense it is essential because you never stop learning. This is why there is some bias towards younger people as they are supposed to be more willing to learn.
But, as with any behavior, attitude becomes less necessary if a clearly defined system for mentoring/acquiring the necessary mental models is in place. Someone who graduates from a top school and ends up working at a company where a) types mentor new hires has to try significantly less than someone who graduates from a less well known school and has to figure out some way to learn from a) types.
Btw, the way a lot of the best companies bypass the HR problem is they hire based on employee recommendations. This is another contributing factor to 'talent shortage'. There is a hiring channel at any company that is much better at recognizing potential - existing employees. The high effectiveness and limited reach of this channel adds to perceived 'talent shortage'.