I've gotten rejected from companies (unicorns, F500s) (in this rough market) because I didn't have experience with their specific tech stack.
I know because one company gave feedback saying that I didn't have experience with a framework that the team uses (though I had experience with adjacent but not similar stuff) and also I was able to get someone to put in a referral, but that person responded back saying HM wanted someone who had experience with the team's language
I'm curious if this is the norm? I've always heard that all that companies want is business impact. They have in-house/custom tooling so it doesnt matter what you used before
Should I also be building projects in other languages just for the sake of showing experience? I'd rather just put in more time at my job and have more impact at work
Because unless a project has sufficient depth which takes months of time, it has little value and time spent at work is 100x ROI compared to a side project
Requiring candidates to have knowledge with a specific tech is more common with startups which need engineers to become productive very quickly, or with old-school companies that are, frankly, less innovative.
It's not the case as much for FAANG companies, especially for entry-level positions. The idea with these companies is that they want good engineers, language-agnostic, and they'll provide support to get up to speed on their tech stack.
Here's a great perspective about switching tech stacks: How to switch tech stack to land a job?
Should I also be building projects in other languages just for the sake of showing experience?
I agree with your assessment that you shouldn't build projects with specific tech just for the sake of it. I'd do it if (1) you genuinely want to explore a new language/framework, which could be fun, or (2) you want to contrast how one language works with another.
Keep in mind depth is much more important than breadth early on: https://www.jointaro.com/question/QG8K97uU9YjuoDUc9pCE/breadth-vs-depth-as-a-junior-engineer/
Thanks Rahul, this helps a lot!
Rahul is correct, and it's important to realize that this will be more common given the current market. For junior engineers like yourself, there is a massive onboarding cost if you don't know the stack as your fundamental learning ability is still developing. This is in contrast to a senior or staff engineer who also doesn't know the stack because they have probably learned how to learn and companies trust them to pick things up quickly.
The brutal reality is that for every open junior position, there are 1,000+ engineers applying to it and probably 25-50 of them are very qualified. Tech companies have their pick of the litter in these scenarios, so they know they can take that bit of extra time to find a junior who happens to know their stack instead of taking a huge risk and paying the large onboarding cost for a junior who doesn't know the stack.
My advice is to follow what you have already correctly and wisely deduced: Focus on doing incredible work at your job and becoming a true master of whatever stack you're currently using. When it is time to leave, you can confidently apply to every job related to that stack. This will be much higher ROI than doing a bunch of fake side projects to get shallow exposure to a million different tech stacks. I have seen so many engineers try to fake their way past an interview, and any good interviewer can expose their low-quality "learning" in the first 15 minutes.
For advice on how to dig deeper, check out my code quality course if you haven't already: [Course] Level Up Your Code Quality As A Software Engineer
Thanks so much for the response Alex.
As an example, most companies use Apache airflow framework for their data engineering orchestration. My team uses a light weight version of an orchestration platform (we dont need something as heavyduty as airflow).
Would recruiters pass over my resume because I'm not using their tech stack of airflow? Or would something like this case where it's "close enough" be (generally) okay?
Essentially, what's close enough in terms of recruiting? I dont want to niche myself to a less commonly used tech stack
Of course I understand that tech stacks exist on a spectrum of similarity (a c++ developer is more similar to a Java developer than a python developer)
It really depends on the recruiter. Some recruiters are going to be pickier (or just lower quality) and do a harsh string match. Better (and nicer) recruiters will have deeper knowledge about the tech space (maybe they sat down with their hiring manager for 2+ hours to discuss high-level technical domain knowledge), so they will understand that C++ developers can generally switch to Java for example.
If the situation gets really bad with some technology where it's required for like 50% of good jobs in your space and you don't have it, do a legit side project. So instead of doing 20 different side projects across 20 different stacks, do 10 side projects just playing around with this 1 technology. Better yet, make 1 side project with that technology and make it better 20 times with high-quality updates. That's what I did to master many, many Android concepts.