Yeah, there was a huge spike in demand for software engineers in the mid-2010s or so, and a massive explosion during COVID, so a lot of less qualified people were handed jobs as long as they could write very basic Python/JavaScript. But after the drop in tech demand after COVID, companies realized they overhired, so they did a ton of layoffs, mostly shucking those low-skilled employees (at least in the first round or two).
Maybe it’s different in my area, but we have a ton of applicants whose only dev experience is a bootcamp program, and they apply for a full-time position when many aren’t even qualified for a part-time intern position. They would utterly fail to answer most of our questions, and not make any progress on our (relatively simple) programming challenges. We have a mix of theory (i.e. OO principles, ACID, etc) and practical questions (e.g. concurrency vs parallelism in JavaScript or Python, duck typing, etc). CS grads with little practical experience would fly through the theory, but fail on the practical questions. Bootcamp “grads” would fail miserably at theory, and maybe get half of the practical questions, but then fail on the challenge. Dedicated hobbyists and passionate CS/bootcamp grads would do okay at theory (esp. if we change terminology) and fly through the practical questions and coding challenge.
It’s pretty easy to weed a lot of those out in our first round, but the sheer volume of terrible applicants makes hiring super time-consuming. I mostly do second round interviews now (my boss, the director, has the thankless first round job), but I’ve done my fair share of first round interviews as well. I was involved in interviews almost 10 years ago, and I remember there being a lot fewer bad applicants then (i.e. of 5 applicants, 2 were hirable; now it’s like 1 in 10, on a good week).
To be fair, I don’t work for a tech company, so we’re not really anyone’s first pick. My company manufacturers things, and our software wing is pretty new and IMO really interesting (we do a lot of complex modeling), but it’s not a place most would think to apply for, which is probably why we attract more desperate people. Then again, my last company was similar and much less visible (had something like 30-40 employees, current company has hundreds locally and thousands globally), yet we got better applicants. The main difference here is time, the CS programs at local universities have a ton more enrollment (some are actually turning away people now), whereas when I went it wasn’t very popular, and I don’t recall bootcamps really being a thing.
As for India, they have a lot of great talent and their IT/programming programs are super competitive (i.e. something like 5% of applicants get in, and only 40-60% of grads get jobs). However, the common thread I’ve seen is that Indian developers are very reliant on requirements, and they’ll build pretty much exactly what you specify (i.e. if something seems off, they won’t raise concerns). A lot of this is cultural, and I’ve heard horror stories from my Indian coworkers about managers telling them to do ridiculous things because of what a client said instead of pushing back. For example, my coworker spent well over a week re-implementing a standard Android behavior because the client specified something slightly outside what was possible through standard APIs, but probably would’ve preferred the 5 min solution. An American dev would just ask the customer and probably end up doing the 5-minute solution. Maybe these are isolated incidents, but I’ve seen similar behavior in different projects. If you know this upfront, you can get a good result with regular checkins and small adjustments as you go, but a lot of people don’t understand that.
As it stands, since we can’t hire good devs here in the US, we’ve been forced to hire outside firms to fill our ranks. We now have a team in Europe and another in India because we can’t find the proper talent here, and not for lack of trying. And I don’t think our expectations are out of whack, I just think the good devs already have good jobs and the less qualified devs are the ones getting laid off. We have hired a few good devs in the last few years (not rockstars, just solid devs), so it’s not like everyone who lost their jobs aren’t qualified, there just seems to be a lot of unqualified people.
Things are quite different since I last was doing hiring, which was pre-COVID.
Yeah, my experience leading a remoted team in India also showed the importance of cultural awareness and good requirements: I ultimately got into the habit of, after the big meeting with the boss were all the work was given to the various teams, get my guys individually on the phone (so that they feared not “losing face”) and carefully coach out of them any questions or doubts since otherwise they wouldn’t voice them and just end up implementing something they misunderstood or which wasn’t explained correctly and indeed they also needed very detailed requirements which was a problem because the senior guys on the other side who ended up having to write said requirements could pretty much have done the job themselves in that time.
This was a big Investment Bank and some top level manager in NY decided to create a division in India to outsource work to, but it definitely didn’t get the cream of the crop over there and the career structuring there was so shit that the few good techies we got would quickly end up as (bad) managers - their pay scales followed the stupid idea that “nobody can be paid more than management” so good mid level techies had to become junior managers to earn more, and they invariably were crap as managers.
Your experience echoes my own with our team. That said, I think we got a pretty good set of devs on our team, and I think a big part of that is my boss being Indian and worked at the org we hired, so he understands the culture there and how to get a better deal. The net result is that the teams we hired are pretty reasonable and work alongside mine (we actually hired two teams and had them “compete,” and we kept the better one).
Yeah, there was a huge spike in demand for software engineers in the mid-2010s or so, and a massive explosion during COVID, so a lot of less qualified people were handed jobs as long as they could write very basic Python/JavaScript. But after the drop in tech demand after COVID, companies realized they overhired, so they did a ton of layoffs, mostly shucking those low-skilled employees (at least in the first round or two).
Maybe it’s different in my area, but we have a ton of applicants whose only dev experience is a bootcamp program, and they apply for a full-time position when many aren’t even qualified for a part-time intern position. They would utterly fail to answer most of our questions, and not make any progress on our (relatively simple) programming challenges. We have a mix of theory (i.e. OO principles, ACID, etc) and practical questions (e.g. concurrency vs parallelism in JavaScript or Python, duck typing, etc). CS grads with little practical experience would fly through the theory, but fail on the practical questions. Bootcamp “grads” would fail miserably at theory, and maybe get half of the practical questions, but then fail on the challenge. Dedicated hobbyists and passionate CS/bootcamp grads would do okay at theory (esp. if we change terminology) and fly through the practical questions and coding challenge.
It’s pretty easy to weed a lot of those out in our first round, but the sheer volume of terrible applicants makes hiring super time-consuming. I mostly do second round interviews now (my boss, the director, has the thankless first round job), but I’ve done my fair share of first round interviews as well. I was involved in interviews almost 10 years ago, and I remember there being a lot fewer bad applicants then (i.e. of 5 applicants, 2 were hirable; now it’s like 1 in 10, on a good week).
To be fair, I don’t work for a tech company, so we’re not really anyone’s first pick. My company manufacturers things, and our software wing is pretty new and IMO really interesting (we do a lot of complex modeling), but it’s not a place most would think to apply for, which is probably why we attract more desperate people. Then again, my last company was similar and much less visible (had something like 30-40 employees, current company has hundreds locally and thousands globally), yet we got better applicants. The main difference here is time, the CS programs at local universities have a ton more enrollment (some are actually turning away people now), whereas when I went it wasn’t very popular, and I don’t recall bootcamps really being a thing.
As for India, they have a lot of great talent and their IT/programming programs are super competitive (i.e. something like 5% of applicants get in, and only 40-60% of grads get jobs). However, the common thread I’ve seen is that Indian developers are very reliant on requirements, and they’ll build pretty much exactly what you specify (i.e. if something seems off, they won’t raise concerns). A lot of this is cultural, and I’ve heard horror stories from my Indian coworkers about managers telling them to do ridiculous things because of what a client said instead of pushing back. For example, my coworker spent well over a week re-implementing a standard Android behavior because the client specified something slightly outside what was possible through standard APIs, but probably would’ve preferred the 5 min solution. An American dev would just ask the customer and probably end up doing the 5-minute solution. Maybe these are isolated incidents, but I’ve seen similar behavior in different projects. If you know this upfront, you can get a good result with regular checkins and small adjustments as you go, but a lot of people don’t understand that.
As it stands, since we can’t hire good devs here in the US, we’ve been forced to hire outside firms to fill our ranks. We now have a team in Europe and another in India because we can’t find the proper talent here, and not for lack of trying. And I don’t think our expectations are out of whack, I just think the good devs already have good jobs and the less qualified devs are the ones getting laid off. We have hired a few good devs in the last few years (not rockstars, just solid devs), so it’s not like everyone who lost their jobs aren’t qualified, there just seems to be a lot of unqualified people.
Thanks for that very complete view of things.
Things are quite different since I last was doing hiring, which was pre-COVID.
Yeah, my experience leading a remoted team in India also showed the importance of cultural awareness and good requirements: I ultimately got into the habit of, after the big meeting with the boss were all the work was given to the various teams, get my guys individually on the phone (so that they feared not “losing face”) and carefully coach out of them any questions or doubts since otherwise they wouldn’t voice them and just end up implementing something they misunderstood or which wasn’t explained correctly and indeed they also needed very detailed requirements which was a problem because the senior guys on the other side who ended up having to write said requirements could pretty much have done the job themselves in that time.
This was a big Investment Bank and some top level manager in NY decided to create a division in India to outsource work to, but it definitely didn’t get the cream of the crop over there and the career structuring there was so shit that the few good techies we got would quickly end up as (bad) managers - their pay scales followed the stupid idea that “nobody can be paid more than management” so good mid level techies had to become junior managers to earn more, and they invariably were crap as managers.
Your experience echoes my own with our team. That said, I think we got a pretty good set of devs on our team, and I think a big part of that is my boss being Indian and worked at the org we hired, so he understands the culture there and how to get a better deal. The net result is that the teams we hired are pretty reasonable and work alongside mine (we actually hired two teams and had them “compete,” and we kept the better one).