If you can build a specialized skill set you can make things much easier. When I got out of school with no experience, no internships and a degree from a second tier state school, I still had good luck on the job hunt.
What worked for me was that I had been studying Kubernetes and was probably the cheapest guy on the market with that skillset :)
I actually disagree with this (if you’re aiming to work at a company between Unicorn and FANG size), I think there’s 2 parts to getting hired as a new grad or getting an internship as a student.
The first part is the University Hiring recruiters determining whether out of the 1000+ resumes they have read you are likely to have the basic skills required to learn to be a FANG engineer. In this part they don’t actually care much about what you did at your internships or what technologies you’re interested in all they care about is whether you know how to code in a language, know how to manage time and be managed by a superior, and know how to learn to do your job independently. If you pass this, great now you’re off to the races that was the hardest part due to the volume.
Then there’s a second part in every FANG university pipeline where University Recruiting and different hiring managers bounce around your application to find an intern for their team. In this part your demonstrated interests, prior work, and skills are important you’re way more likely to get a deep learning internship if you have deep learning on your resume at this part.
I posit that most university hiring advice focuses on the second part whereas the first part is the most difficult to pass. Think about it is the person with 4 hackathon awards and 3 deep learning side projects more likely to grow into a FANG software engineer than someone who has 2 internships?
Do your side projects involve reporting your progress to your team? Writing design docs and getting feedback from your team? Thinking about maintaining the code base and providing documentation to your coworkers? Those software engineering skills are learned not taught and you learn them on the job even though to other software engineers we would value the candidate with hackathons and side projects more than the one with 2 internships in terms of ability to grow.
I’m probably going to write a blog post or something about this cause I feel quite strongly about this after my experience following everyone’s advice.
I'm just explaining what worked for me- I'm in Raleigh NC, so there were no FANGs here a year and half ago when I was in the market. But I did secure offers at the two biggest tech companies in the area, IBM and Cisco.
I had no open source contributions, no hack-a-thons, and no side projects with users. No experience or internships whatsoever, I had work experience in the service industry that I didn't put on my resume. GPA barely above a 3
All I had were side projects on github, listed prominently on my resume, that showcased skills. My side projects were all toy projects- things like a tiny Go API with a dockerfile and Kubernetes YAMLs, an arduino project that creates a CSV based on inputs from a GPS sensor, etc.
When my interviews went well, it was because I had demonstrable expertise in Kubernetes
What worked for me was that I had been studying Kubernetes and was probably the cheapest guy on the market with that skillset :)