What's up everyone, thanks for taking the time to read this.
Over the next year and a half, I’m aiming to take my skills as both a developer and an interviewee to the next level. I’m currently a senior majoring in computer science and statistics, and I'll be graduating this semester to pursue a one-year master's in CS. My goal is to work at a FAANG or FAANG-adjacent company, gain new skills, and make connections in a major city (a bit cliché, I know).
Background: I’ve spent approximately 1.5 years interning at a Fortune 500 company, working on Cloud/SWE projects, and this summer, I'm a Machine Learning Engineering intern at a mid-sized company.
I'm trying to figure out how to most optimally put in my time for success this interview season. Outside of work and lifting, I try to spend. ~10 hours per week on LeetCode, ~7 hours on system design and ~7 on building projects.
I'm mostly looking for tips someone at my stage may not realize in software. For example, there are really ~15 patterns that once you have the hang of coding interviews become a lot easier than doing 50 array and sliding window questions.
Here are my main challenges:
Securing Interviews: Last summer, I managed to get quite a few interviews but none from FAANG or similar companies. I also applied to data science and engineering roles, which increased my interview count but weren’t exactly what I’m aiming for. I’m keen on MLE, cloud engineering, or backend roles. Although I had referrals to a handful of tech companies, most were not software engineers. What strategies have worked to get interviews for you, or what would prompt you to give an intern an interview?
Understanding Concepts/Designs: What resources (books, lectures, etc) have been invaluable for your interview prep, becoming a better developer, or learning fundamentals?
There's a pretty long post, thanks for any advice you can offer.
For a student my biggest tip is company and team matters more than what you do in the internship. Most internships are too short to do any real quality work. optimize for company prestige, not role.
For MLE its more optimal to find a SWE internship and then transition later on when u get full time offer. Most MLE roles expect a solid SWE foundation so not having ML experience wont hurt you. Just make sure to have 1-2 projects and you should be good
If youre happy with the interviews youre getting then work on leetcode. If youre not happy then projects, tho my caveat is that in this market getting big tech is extremely hard
Dont spend time with system design for internships. All that matters is DSA and cracking OAs
To become very good at interview prep, do mock interviews on interviewing.io. I practiced a lot here during my junior year of college and became very good at interviews. I also worked at interviewing.io as an employee as well.
Apart from FAANG, you should consider getting internships at well-funded startups that are solving an actual problem (very important you keep the well-funded, solving actual problem in mind). Getting interviews at these start-ups is fairly easy.
You can email the founders at firstname@company.com and you will get a lot more autonomy and responsibility at these companies compared to big tech. I interned both at big companies and startups but I learned the most at my startup internship
~10 hours per week on LeetCode, ~7 hours on system design and ~7 on building projects.
This is a ton of prep! One thing I'd question is if you feel like doing all 3 is hurting your ability to go deep on one.
For example, if you don't have any interviews for the next 2-3 months, I recommend going hard on project-building. If you spend 15-20 hours/week on building well-scoped projects, you can have 4-5 published apps (or Github repos). The likelihood of one of them succeeding is much higher, and this would unlock tons of interviews.
For understanding various concepts, it's always helpful to go through concepts with others. Find a friend to discuss/implement some ideas together, or join a Taro book club discussion.
You're also in the perfect spot to go through this course: Ace Your Tech Interview And Get A Job As A Software Engineer