Tips for landing SWE Internships / New College Grad jobs (US)

kulks
6 min readApr 23, 2022

Here’s what has worked for me. YMMV.

Resume

  • A single page resume. No one reads more than that.
  • Reviewed by as many relevant people (seniors, recruiters, engineers, hiring managers) as possible. This would help you understand what these people look for and how you can show your existing work effectively. How do you do this -> Cold message these people on LinkedIn, reach out to your connections at companies, anonymous forums (teamblind.com, cs communities on reddit, discord), university career center (not as helpful but worth a shot).
  • Be honest. Don’t lie about stuff you didn’t build.
  • (my template recommendation)

Technical projects

  • It doesn't have to be something great. You should be able to talk about what you did, why you did that, and what did you learn from it.
  • Course projects are fine too. If there’s a chance to pick a more challenging project within your coursework, do it!
  • If the same course if offered by a MOOC or a top university (e.g. MIT OCW), and has better projects, ask your course professor for permission to do one of those projects instead.
  • Group projects are an experience. Try to go through one. Good time to learn version control.
  • Put them on GitHub with a nice README.md. Good time to learn to how to write a one-pager.
  • My advice: Try to incorporate technologies in your projects that you’d like to work on in your main job.
  • In my limited experience, relevancy of the work you’ve done matters — especially for companies that don’t have general hiring pipelines.
  • How do you explain a project in an interview — “I made a weekend project in which I wrote a chat messaging app. I had heard about new thing called gRPC in my Networks class. I read it uses some different HTTP version which does X, Y, Z better. So I used it for sending messages. I also wanted to try out a new programming language. I picked Go coz I read it’s efficient for writing multi-threaded things which I ended up using to manage different chat sessions. I then put it all in a ‘Dockerfile’ so it can run on any machine. Finally, I got some free credits for a cloud provider as a student so I deployed my app there and you can now reach it from anywhere. ” Even if you do some of these things, you’re already ahead of many who don’t know what those things are. At least for landing a first job, you don’t need to know how everything works in-depth. You just need to know enough.

Landing Internship(s)

  • Not a prerequisite for a new grad job but helps immensely.
  • Getting acquainted with a domain within your field by building a hands-on project within a span of 12 weeks is a tremendous opportunity. You get to expand your professional network and earn $$$.
  • Generally has fewer interviews than for new grad. Can convert to a new grad role within the same team/org. Interviews for internships help make you connections with companies/recruiters/managers and can help you prepare for new grad interviews.
  • If you get multiple internship offers for the same term like Summer. Don't reject the rest. Instead, ask your department if you can do a co-op during Fall/Spring semesters. Then pick one company for Summer and ask others to move their offers to Fall/Spring.
  • My advice: If this is something that you want, be relentless in your pursuit. Ruthlessly de-prioritize any other opportunities that won’t lead to an internship. e.g. On-campus jobs that are not technical may give you short term financial benefits but that same time spent in landing an internship will reap more long term benefits. (obviously, everyone’s financial situation varies but hope you get the gist).

Job hunting

  • One solution is to brute force your way to an interview. Job boards, referrals, company events — do any or all of it to help you land that first interview. If there’s a position that you think is out of your league, apply anyway. Worst case you get rejected — big deal!
  • Replying ‘Interested’ in a LinkedIn comment probably doesn’t work :) Instead, cold message relevant people (recruiters, hiring managers, engineers) on LinkedIn and in 2–4 sentences, explain how you have done something relevant (see Projects above) and can provide value to the team.
  • Learn how to set alerts on LinkedIn for jobs from companies you like. e.g. Email/Notify for ‘software new grad 2022’ jobs in ‘San Francisco Bay Area’ from companies ‘X, Y, Z’. This way, when a new job opens up, you can be the first to apply.
  • Tailoring resumes per company is time consuming. It has worked for some and hasn’t for others.
  • One thing you can do is work backwards from job postings. e.g. Identify the current common technology requirements from the jobs that you’re interested in. Do a weekend project that covers some of those technologies and apply to those postings with your updated resume.

Interview Prep

  • This part sucks.
  • Currently, whiteboard styled DS&A interviews are a necessary evil. Don’t waste time complaining (like I did above) about how tough the process is.
  • Make a list of questions you want to ask at the end of your interview — https://jvns.ca/blog/2013/12/30/questions-im-asking-in-interviews/. Asking well-researched questions is underrated and can help you score some points.
  • My advice:
  • DS&A — leetcode, leetcode, and leetcode. Practice at leetcode for free. When you start crossing the initial online assessments, get the leetcode premium and prep hard for company tagged questions to prepare for technical screens and onsites. You might be able to get premium questions from places on the internet but otherwise it’s ~$120 a year to get a $120K job.
  • System design — Only some onsites have it. Expectations are not super high (except LinkedIn :/). grokking, Alex Yu book, engineering blogs from famous tech companies are all good resources. You can practice mock interviews with your friends.
  • Behavioral — again, don’t lie. Hopefully the projects and internships have given you some fun anecdotes that you can apply to the ‘values’ that the company is looking for.

Interviewing

  • Once you’ve done prep for a few weeks, don’t wait, start interviewing.
  • Here’s the big secret — you’re gonna fail many interviews. Get used to rejection.
  • Go through a few interview processes. Reflect on which stage you’re failing — resume, initial screens, behavioral, system design, onsites, etc. Improve on that part. Repeat.
  • Only a handful of companies will give feedback, self-reflection is key.
  • You only need 1 company to say ‘Yes’. That’s it. Remember that.
  • Imp: Ok to have a dream company but don’t pin all your hopes on it and ignore applying at other places. I’ve seen people do that and it doesn’t work.
  • Try to overlap companies’ interview timelines. But, every company moves at a different speed. Some are infamously slow (Big G :|). You can try giving their interviews first. Hopefully you got some experience with this during your internship interview processes.

Offer Negotiation

Other resources

Lastly, there’s a lot of luck involved in the whole interview process. When it’s not on your side, remember that. When it’s on your side, you can still remember that. Good luck✌️

--

--