Advice on Getting a Software Internship

Sambhav
4 min readSep 29, 2018

--

There’s a lot I wish I knew about getting a software internship last year, as a first year, when I first went on an internship search. This year, however, the process went much more smoothly. What worked for me might not work for you, but here’s some advice.

  1. The internship search is a sales funnel. There are typically three phases: resume, coding challenge, and one or more in-person interviews. You should figure out the area you are weakest at and focus on improving in it. A lot of people are good coders but haven’t done much other than coursework, so their resumes get tossed out. Others have great connections and past internships at brand name places but are not great with algorithmic questions. The important thing to realize is that being rejected doesn’t mean you’re a bad programmer, by any means. It just means you’re bad at whatever they’re trying to measure. Typically, code challenges measure algorithmic coding, resume filters try to find people who sound impressive (different companies find different people impressive), and in-person coding interviews are a combination of problem solving, soft skills, and culture fit.
  2. Good companies are not necessarily harder to work at than bad companies. When you apply to college there’s sort of the assumption that if you can get into MIT, you’ll definitely get into Podunk College. The equivalent is not true at tech companies. I’ve gotten rejected from numerous low-prestige/low-pay/boring companies at the resume screen, but gotten interviews from much more desirable places. What this means is that you shouldn’t avoid applying to companies you hear are competitive because you think you won’t get in. Your odds may surprise you.
  3. It’s a numbers game. Because it’s hard to predict which companies want you, you should just apply everywhere and fast. Applying should only take two minutes and you shouldn’t write cover letters (exception: there’s a company you are super in love with). Use the time you save to work on your resume instead. How agressive you are in your search is, in general, a larger factor than how good of a programmer you are.
  4. Do a lot of interviews. One benefit of applying everywhere is that, if your resume is good, you will get a lot of interviews. You might think that you don’t like a company that much, but you should probably still do their interview. One, there’s a chance they’ll change your mind. Two, doing many interviews makes interviewing less scary and you’ll do much better on future interviews if you’re less scared. After you interview enough, interviewing will start to seem wonderfully normal, like doing homework or eating breakfast.
  5. Some things are out of your control. Sometimes you just have bad chemistry or a bad problem or a bad interviewer or a bad day, or they want you to be older or know React. Don’t feel bad about it. On a related note, it’s not a good idea to obsess/focus a lot on one particular company; your goal should be to get a good/excellent internship, not to get the *best* internship because, frankly, you (and I) have no idea what the *best* internship is.
  6. Apply early. You feel better after having an internship, so get it done with ASAP. It’s much better to apply in the Fall.
  7. Try to apply for an internships all at once. It’s very annoying to be in different stages with different companies and to be worried about deadlines. You won’t be able to coordinate perfectly, but try your best.
  8. Referrals make a big difference. The best way to get a referral from someone you might not know super well personally is to somehow work with them on a project. People will refer people they first-hand observe are really good even if they haven’t known them for very long.

In terms of how I applied, I spent a few weeks looking for companies that I might like on Glassdoor and found the applications to companies I already knew I would like to work at. I didn’t write cover letters and skipped most applications that required more than filling out my personal information and attaching my resume. I then waited for first rounds/coding challenges and did them. I struggled more with passing resume screens than coding interviews, so I’ve put a lot more effort into improving my resume than “practicing for interviews”; I find that most good coders can do fairly well on technical interviews without specific practice, but doing Leetcode/Codesignal isn’t a bad idea.

This year, I ended up interviewing at a lot of places, getting rejected from way more places, and ended up with offers from four different companies.
I accepted an internship at Convoy, a fast growing trucking startup in Seattle. I’m really looking forward to summer and feel all the work paid off.

At the end of the day, it’s great to get a great internship, but if you don’t there’s always going to be more opportunities. Good luck!

--

--