Over the course of 3 months, I interviewed with Snap, Google, Amazon, Paypal, and my new home: Nerdwallet. Here are things I wish I knew (and things I'm glad I did) before the process began.
You don't really need people on the inside. It helps, but you can do without them. I've never worked for any of these companies and don't have any contacts in them but I applied regardless.
You don't need a 4.0
Of all the companies I interviewed with only Google checked my transcripts, and they did so very early on. I have good grades but at this point, it'll have nothing to do with my job. I love Academia and even considered getting my Ph.D. But if it's not for you, don't stress it.
Interviews > School
At this point in my career, It made perfect sense to prioritize my interviews over school. This included taking little hits in grades, and skipping classes for interviews and flights. Try to schedule your interviews around them but you'll most likely have to choose at some point in time. Choose wisely.
BTW, check out Google's Inbox. It helped with scheduling interviews, postponing emails, and keeping track of my travels.
Be prepared - Months before you start applying
I'm not talking about coding challenges. They are important but treat them as warm-ups, not the full workout. Get prepared by starting and finishing a personal project. What helped me the most was Antreminder - my summer project that emails users when a class's status has changed. The project is small but it taught me how to approach new problems on my own. Taking full charge made me think beyond programming. For example, I initially designed Antreminder as various microservices in Java but hosting was an issue since I preferred not to spend my personal funds on multiple instances or a high-memory instance for my free-to-use side project.
I could browse Stack Overflow for ways to find and schedule emails, but the answers wouldn't take my design or budget into account. And the answer could be right, but it most likely won't be the best.
My internships also helped a ton, but as the popular saying goes - You need experience in order to get experience. Landing an internship is much easier when you have completed some small side projects.
Be prepared 2.0 - As soon as you start applying
Now you can look into coding challenges but not just Hackerrank. Check out TopCoder and Project Euler. These help when you haven't interviewed in a while, and need to quickly freshen up before your first few interviews. Challenge yourself! I often see people spending too much time on the easy questions. Treat these sites as warm-ups to the warm-up. Once you know what company you'll be interviewing for, head over to Geeks for Geeks and tackle more specific questions. Don't waste time looking for the exact questions the company might ask, spend time studying their past (leaked) questions, which will indeed be different from what you'll receive but is a good way for you to gauge the difficulty.
Be prepared 3.0 - Hours before your interview
I hope you kept all the solutions to your practice questions from the step above. This is where you review them and make sure you can do them without looking at the solution. I didn't do any of the above before my first interview and that's how I messed up horribly during Snap's coding challenge. After that, I made sure I followed all three steps and ended up making it to the last round for the other companies.
Be prepared for disappointments
No amount of programming can prepare you for a rejection or in my case, a cancelled position. I got great feedback throughout the process from my recruiter at Paypal, and we started talking about salaries, my outstanding offers, and all that good stuff. I didn't actually receive an offer, but it was coming. I provided my expected pay range, and I was waiting to hear the good news from my recruiter who was going to cross check with the business team to confirm that they could afford my services. When she called me back, I was really excited only to find out that they had canceled the position. BAM! I never expected it, but it happens.
- It gets better. The process gets easier after you've completed a few of them.
- Use a language that bootstraps your performance.
Subscribe to CSTHINGS
Get the latest posts delivered right to your inbox