tl;dr – Code, a lot. Send cold emails to founders. Do your research on companies. Network. Practice interviews. Don’t give up
So I’ve officially started my summer internship at Aidin (they kick ass), and a bunch of people have been asking me for tips on getting an internship at a startup as a freshman.
One year before your summer internship
You’re still living at home, and you’ve got a lot of free time on your hands. You need to make sure this time is spent productively. Don’t get me wrong – make sure to have an absolute blast before starting college, but when you’re not out with friends, code.
There’s no easy way to go from being a mediocre developer to a good developer. You’ve really got to code as much as you can. This period of time is great because you’ve got a lot of time for unstructured learning. Find a problem you have, and codea solution. Web development is really hot right now, as it big data – if you get decent in either of these fields, you’ll land yourself a great internship. Learning Rails is also a great idea, as it’s used by a tonne of startups. Try to build up your github with some cool side projects.
My situation was slightly unique. I’d gone to an international school back in Perth, Australia and we didn’t follow the same timetable as every other school in the country. As a result, everyone was still in school after I graduated, so I went out and approached a bunch of web development firms to see if I could get an internship. I got lucky, and got hired by The Frontier Group where they taught me Rails, Agile development, and how to make amazing coffee.
I ignored looking for internships during my first semester, but I did go to the career fair. The one callback I got from the career fair was from Andreessen Horowitz, who wanted to add me to their talent pool. The technical interview was remarkably easy, and I can’t stress how much they’ve helped me out during this entire process. They introduce me to any startup in their portfolio that I’m interested in (and they invest in some amazing startups). They also really helped me out when I was having issues getting work authorization (oh the woes of an international student). If you see a16z at your career fair, be sure to speak to them – as long as you know your basics, you’ll be fine.
If you’re an international student, you need to go to your Office of International Education and ask about either a OPT or a CPT work authorization permit. It’s vital that you don’t put this off – I did and almost couldn’t work over the summer, even after I’d signed paperwork with Aidin.
During my winter break, I worked out exactly what I wanted from my internship. I knew I wanted to be interning at a startup, as that scene really interested me. I also bought Cracking the Coding Interview, which was a great read, even if I didn’t understand much of it (I hadn’t taken my data structures and algorithms class at that point). I also really wanted to be in NY or SF.
Second semester rolled around, and I got to work. I found startups that I thought were neat, or where I thought I’d learn a lot. AngelList is amazing for this, and you can filter by location. Once I found a startup I thought was neat, I used Crunchbase and the startup’s website to find more information about them. Be sure to take a look at the startup’s jobs page. Even if they don’t have any intern positions explicitly listed, take a look at the software engineer roles to see what kind of skill set you’ll want to emphasize on your resume. The Hacker News Who’s Hiring threads (example) were also great.
Next, I found a co-founder’s email. 9 times out of 10 it was firstname.lastname@example.org. Rapportive was super useful in checking if I had the right email. If I couldn’t find the email, I tried a bunch of different combinations in a Google Search and eventually something matched. If I couldn’t find the co-founder’s email, I looked for a jobs@startup email, which was usually easier to find.
Now the first email you send is pretty important. Make sure it reflects your personality, and that’s it not too formal (it is a startup after all). Be sure to tell the founder what you like about their startup and what attracted you to them in the first place. Make sure you highlight your strengths, and don’t forget to include your github link and your resume. Once you’ve got one of these emails perfected, you can pretty much copy and paste it for other emails, and change a few of the details.
Here was my basic template:
I’m Chintan, a freshman at Georgia Institute of Technology, and I’m looking to be company’s next kick ass engineering intern.
I love that you guys are something you like about the company
I have a fair bit of experience in web development (I interned at a RoR firm back in Australia and I’ve been working in PHP for a few years), but I’d really love to expand my experiences and learn more about data mining and distributed data systems. I’ve got a fair bit of experience in Agile environments and with using Git in a large team (git-flow anyone?).
I’m currently in the process of founding a startup which is based on an app to predict outfits, and I’d love experience in a startup environment. My previous internship was in a small (but awesome) RoR shop, and it was nothing short of amazing. It was very startup-esque and everyone was extremely down to earth and willing to teach.
I’m currently taking my college’s course on data structures and algorithms (which I’m having to teach myself – terrible professor), and it’s extremely engaging. Even though I’m a freshman, I have no doubt that I can teach myself the necessary skills required to hustle with the juniors and seniors.
I’m attaching my resume to this email, and you can find me on github at github.com/chintanparikh. If you’re interested in having me, shoot me an email at email@example.com
This intro email is basically your “cover letter”, so give the startup a reason to want you.
After this, you wait. Some startups will reject you right off, saying they don’t hire freshman. Other’s simply won’t respond. However, if you’ve got a decent github, you should get some phone screens. There was a period where I’d wake up in the morning, go to class, and shoot off emails to ~50 different startups that I thought were cool. Do this for a week, and you’ll have plenty of phone interviews.
As cliché as this sounds, networking is important. It’s a remarkably fast way to meet important startup founders, and get introductions to great places to intern. Get involved in the startup community at your school. Early on in my second semester, I met Aswin. He was awesome, and was seriously involved in the startup community at Georgia Tech. He was in the process of founding an organization which would try and bring the startup community to Georgia Tech, and I got involved. I met a tonne of amazing people, got to go to some amazing startup conferences, and I met a bunch of amazing founders of successful startups. A personal connection or an introduction by someone the founder knows personally is definitely better than a cold email.
I also learnt a lot about how startups operate, co-organized a hackathon and helped a bunch of fellow students launch their startups.
Oh, and I’m now co-running the place (Startup Exchange), so if you’re at Georgia Tech, we’d love for you to get involved. I’d suggest applying to Startup Semester. It’s our free “incubator”, where we’ll turn you into a lean, mean startup machine.
My first phone screen was terrifying. I had no idea what to expect, no idea what kind of questions I’d be asked. One of the first emails I’d sent was to a pretty big YC company, and they wanted to interview me. I got excited, and set up the phone screen for the next week. Do not do this. I absolutely bombed my first phone screen. I was nervous, and even when I knew the answers, I couldn’t communicate them effectively.
I’d recommend scheduling the first 5 or so phone screens with startups that you don’t particularly care about. This will get you into the habit of interviewing over the phone and build up the confidence you need to think on the spot.
If you’ve done things right, you’re going to need a good calendar to keep track of phone screens. There was a period of about three weeks where I was interviewing every single day for a different startups. Use Google calendar, it’s a life saver.
What you’re actually asks varies wildly. I had some deeply technical questions – “Explain the difference between Symbols and Strings in Ruby”, and “Why aren’t symbols garbage collected?”, some of the usual questions “Describe a time when you and a teammate disagreed. How did you get over it?”, and even questions like “We have a Where’s Waldo page in front of us, and I know where Waldo is, but you don’t. How do I convince you that I know where Waldo is without revealing his location”, and “Explain something to me”.
Also, if you haven’t taken a Data Structures and Algorithm’s class, make sure you let your interviewer know that ahead of time. Data Structure questions come up a lot in interviews, but employers know they’re interviewing freshman, so they’ll tailor the questions to you (or might just reject you).
Be sure to brush up on the company’s tech stack, and everything you have in your resume. If you’ve got Rails in your resume, and the startup uses Rails, you can be damn sure they’ll ask you a question on Rails.
Lastly, be sure to do some research on the company – if they’re a bigger startup, you might be able to find interview questions on Glassdoor and the like (props to Shehmeer for the tip)
Once they’re done, make sure you have questions of your own to ask. I was always really interested in the culture of the startup, so I asked about their core values and such. It’s also useful to know what kind of problems you’ll be working on. Lastly, after being asked the “Explain something to me” question, I realized how useful it was in working out how someone thinks. If I was interviewing with an engineer, I made sure to ask that to see how well he/she could teach.
After your phone screen, you should get a response in a few days. If you don’t, be sure to email back and ask for a status update. Some startups will offer you the position right after the phone screen, whereas others will ask for further phone screens, or request that you come in.
This is the fun part. You get flown around the country, with private drivers and fancy hotel rooms. Don’t go too crazy the night before your interview, and make sure you brush up on things you might need to know. Data Structure questions came up a lot, but the in person interview varies pretty wildly between different startups. Some will ask you to build a small application, or pair program with an engineer (these are awesome). Others will sit you down at a desk for 6 hours with different engineers coming in and out asking you questions (these aren’t so awesome).
If you already have offers from other startups in the area you’re flying too, it’s not a bad idea to try and meet the team over dinner. I did that with Aidin, and realized that I’d really enjoy working with the team over summer.
Like the phone screens, try to schedule the startups you don’t really want before the one’s you do want.
By this point, you’ve probably got a bunch of offers and you need to work out exactly where you want to intern. As clichéd as they are, pros-cons lists work rather well here. Make sure you know what you want from the internship, and what’s most important to you. I really wanted to be in NY or SF, doing something Rails related, and big data was a plus as well.
Don’t be afraid to hop on another phone call with an engineer to ask them any questions about what you’ll be doing.
Money should be important, but not the most important thing, especially as a freshman.You’re going for experience, not the money. That being said, make sure you can actually live comfortably wherever you’re going. If you’re going to somewhere like NY or SF, keep in mind how high the cost of living is there, and don’t forget to account for tax.
Once you’ve decided where you want to be this summer, send them an email to get the paperwork started. Politely decline your other offers (keep in mind you might want to work for them next year!), and thank them for their time. Nothing sucks more than a stock rejection, so try and actually put some effort into it.
If you have any questions about the process, feel free to shoot me an email.
Also, if you’re looking for some neat startups, these startups really stood out to me. They’ve got an amazing team, and are definitely places that I’d suggest working at over the summer.
- Plaid – While I absolutely bombed my phone screen (I think it was my second phone interview), William made me feel extremely comfortable, and it’s clear that they’re remarkably smart. They also won the TechCrunch Disrupt Hackathon
- Aidin – It’d be hard to find a cooler team to work with over the summer. These guys are super smart, and are disrupting an industry that is stuck in the stone ages. They’re also saving lives, and that really appealed to me.
- Enigma – These guys were awesome. I got an offer from them, and I know that I wouldn’t have regretted it for a second had I accepted. They’re big on big data, and are an amazing group of people. Oh, and they won TechCrunch Disrupt’s Startup Battlefield
- Khan Academy – EdTech startups kick ass. These guys kick ass. And they have an absolutely amazing team behind them. I really enjoyed their interviews and it really felt like me and the interviewer were working through a problem together, instead of an interview.