Recruiting is painful, and there are too many resources out there. My goal is to provide a step-by-step resource to tech recruiting in as few words as possible. There are few steps to the interview process, but they essentially boil down to resume screening, online assessments, and interviewing. We'll go over each step in order.
This guide assumes that you're in a conventional computer science program at a university, or are otherwise educating yourself on the basics of computer science, applying for intern- or entry-level software engineering positions. It is not a zero-to-hero course on computer science; rather, it is a guide on how computer science students can navigate the recruiting process as slickly as possible.
This guide does not seek to add value in novelty, but rather in brevity. Without further ado:
Resume writing is hard because there isn't true structure to the process. To make screening easier (read: more obfuscated) companies often resort to automated resume screeners. With that in mind, here's how to pass the resume screening phase:
- Write a first draft resume. This should include your education, past experience, projects, and skills, preferably in that order.
- In your header, link to your email, LinkedIn, GitHub, and website, if you have them. I don't recommend including a phone number or address since it takes up space and reveals more information than necessary.
- In the education section, include your GPA, graduation date, and relevant courses.
- In the past experience section, include any internships, research, clubs, or volunteer work you've done. If you have no relevant experience, just add anything until you hit a page, or focus more on your projects section.
- In the projects section, write about the basic tech stack and goals of your projects. School projects are perfectly acceptable to include. For project ideas, check out some lists here.
- Optimize your resume using Resume Worded. This is the same tool that recruiters use to filter out resumes, and it often gives out half-decent advice too. Maximize your score here, then ask other humans for reviews if you feel like it.
- Now, immediately start applying to companies. For companies you really want to work at, try to get referrals from upperclassmen if you can, but don't sweat it if you can't. In general, cover letters are a waste of time, so submit just the resume. Instead of spending time scouring the web for apply links, refer to community-compiled lists. The one by pittcsc is usually the most popular and comprehensive.
After you've sent out a few applications, you may start to receive online assessments. Some companies send them out immediately, others will review your resume before sending one out. In any case, I recommend doing all of your OAs, since even if you don't want to work at a particular company, it's great practice. With that in mind, here's how to prepare and tackle the OA phase:
- Do the Neetcode 150. If you focus for a few weeks, it's very doable to get a good chunk out of the 150 done. Watch the Neetcode YouTube videos for detailed explanations of problems you don't understand. Outside of these problems, extra practice isn't necessary (but of course, more can't hurt).
- Finish your OAs!
After finishing OAs, with some luck you'll land some interviews - congratulations! The hard part is over; all you need to do is seal the deal.
- If you haven't finished the Neetcode 150, do that now.
- A few of the interviews may be on behavioural or situational problems; if you don't have a strong recollection of the contents on your resume, review any code you may have written now.
- If you can practice with friends, especially upperclassmen, do this once or twice. Otherwise, your first few interviews will end up being practice for later, better interviews.
- Get a good nights sleep before the big day :)
Well, then you'll hopefully get an offer! The process is simple, and hopefully the few focused resources I've pointed you towards help you focus your plan and begin as soon as possible. Good luck!