Ask HN: Creating an internship program
I'm starting to think about setting up an internship program for next summer and I'd appreciate advice from anyone who has done this in the past.
There seem to be two aspects to setting up a program like this:
1. Making it productive for both the company and the interns 2. Finding the right students
For the first, it seems like a good idea to make the work both meaningful and independent; perhaps having them work on a new product rather than just having them fix bugs and add small features.
For the second, I'm wondering if you all have specific advice. Should I go straight to the career center at nearby universities? Talk to engineering frats? Something else?
Also, how early does it make sense to start recruiting students?
Thanks!
----- * edit: if you're looking for an internship email me: [email protected] we are a realtime analytics company, coding in python and js :)
If you had applied and asked if you could work for them as an intern, even though they hadn't mentioned it anywhere, chances are there would be one applicant... you.
You get brownie points for taking initiative, taking a risk, and best of all - there is no other competition to distract them from you.
As for making the most of the interns, I think the key, once you've picked the right people, is to be willing to spend the time to teach them how to do stuff. What this means in practice is that rather than assuming (as every crazy startup founder does) that you need to do everything yourself, or that it's all too complicated for them, spend the time to show them and teach them how to do it. You'll be surprised how quickly they can learn stuff which you thought would take you ages to explain.
As others have said, it also definitely helps to have some kind of bigger picture vision that they're helping you implement, to help motivate them.
In terms of how early... we started very late... the summer had already begun... and we still got some good people with relatively little effort. So while I'm sure earlier is better, there doesn't seem to really be an end date.
Here's our strategy:
- Generally provide stand-alone projects that are not 'busy work' but things that really help us. This is good for us (real work) and good for student (real bullet points for their resume).
- We don't use career services at schools with the exception of a couple that are startup friendly. Most are bureacratic (go fill this out on this portal blah blah blah) and when we use their channels, we get hundreds of 'spray and pray' candidates applying.
- Instead, we target programs and maybe even specific professors who teach classes in areas we're interested in, i.e., "Tell us the best student you have in X from your class." We try to seek interns who have options (they tend to be the best ones). This is not a trivial effort so something to keep in mind.
- Back to bullet 1, since we give the students real work, they tend to have great summers with us (or at least that is what they tell us). These students become our ambassadors on campus for next year. And we've found that these students (1) know what we need/like and how we work and (2) tend to know other people like themselves (smart) and so they refer us really great folks.
- Finally, we use interns as a great recruitment vehicle for full-time (may not be applicable). Dating before marriage is healthy.
First, sit down and define what sort of new product/feature you want, and determine how long it should take. Then hire enough interns that it'll get done within the time frame you need, and be generous. If it goes well, you'll have that many people you can easily hire later who won't need as much training, plus a new product on the side. If you don't hire enough people, you're just wasting everyone's time, because they'll be too frustrated and lost to do well, they won't want to come back, you won't want them back, and you won't even get that new feature you want.
Career centers are good, as are online communities like github and hacker news. Of course, they're only an option if you can pay well enough to have people travel to you, or are willing to consider remote work (this usually is very difficult, try not to need it).
At my current skill level I think I would thrive more in a large team environment where I would be receiving an education of a programming language as a part of my internship experience.
As far as finding interns goes I'd contact whatever career planning departments your local colleges have.
1) The company didn't have my project set in stone before I got there, so I got to play a significant role on determining what my job was.
2) I was given a large amount of independence. When I got stuck and asked for help, instead of taking over, my supervisor gave me some resources to look at, or people to talk to, and told me that he wanted my perspective on how to solve the problem.
3) My supervisor had me give a number of presentations on my work (3), which both gave me confidence that what I was doing was important, and gave me valuable feedback on how my project could be improved. Two of these presentations were internal, and one was to customers.
4) While my day to day tasks didn't involve working with the other interns that were there that summer (this was a good thing for me, I preferred working with experienced employees), there was a program set up that had the interns create an event for the other employees to attend. So, I got to make friends, and get to know some people outside my department.
These things came together to make a great internship. I think you're on the right track, though, because the most important thing that made my internship a success was my autonomy and the feeling that my work mattered.
While the third point is important, it doesn't have to be a full presentation. Just have the person talk to everyone on the team for a moment or two[1] about what (s)he did in the previous week, and how (s)he thinks the next week will come along[2]. Maybe a quick demo, if anything big was done.
For the fourth point, I can't really say. I was the only intern at the company this summer. I was told about a few programs to get interns from various startups together, but they mostly involved going from SF down to Mountain View. I made the trip once to visit somewhere and its too much of a hassle for me to have wanted to do on a semi-regular basis[3]. I spent the time around the city and met a bunch of other people instead. Still had a blast.
1. Just "Added this and that feature, fixed this and that bug that were assigned as well as a few others that I ran into," not anything that takes time to prepare.
2. Even if its just "Yup. Sounds like a good plan" or "I'm not sure. This feature/bug might take a bit longer to fix."
3. Off-topic, but, I don't know how people do this commute. I had to do something similar, from Long Island to NYC two summers ago, and hated doing it every morning and evening.
You have to really ask yourself what you are trying to achieve with an internship program, i.e. developing or trying out future full-time employees, get stuff done, help students decide whether to make the transition to commercial development, or some combination of above.
,Depending on your goals you can end up shaping a completely different program requiring different resources.
Assuming you are trying to get stuff done and recruiting future full-time, you might want to create an intern team in the same structure as your mainstream team, i.e. PM/test/dev triad if you are of the MS/Amazon development fold or you should fold them into your mainstream team if you are running an agile/lean methodology.
Almost every major university has a career office that can help you recruit, and you can tap into student groups (i.e. ACM chapters, or more specific organizations like Linux SIGs if appropriate). If you are really serious you should go on campus and do a presentation with a student group on cool technology or your company.
Summer intern recruiting specifically tends to start in earnest in the new year though some students commit as early as the previous fall, i.e. November...
I interned in Seattle via that program with the US Forest Service - speaking as an intern, they provided a good helping hand (set up my housing, took rent out of my paychecks).
Although most interns will be Hispanic, not all are (like me). About half or so come from Puerto Rico. I was generally impressed with most interns I met.
During my internship, I was able to write a useful program (a front end in Python for a framework written in Python to help automate running multiple instances with different settings), as well as work on web pages (in PHP). It was an excellent chance for me to get to do work I wouldn't have gotten otherwise (I'm 35 and have plenty of tech experience, but I'm back in college working on a Computer Science degree, looking to break into programming).
I think the nice thing about HACU is that they have experience in finding good students and helping take care of the administrivia.
While we're on topic - what are the chances you work with Python and/or PHP? ;-)
(hefty travel reimbursements etc)
As far as a main project, I would choose something new and independent. Think of that crazy idea you've been playing around with for a while, but haven't had time to implement.
Another thing that often gets overlooked is a side project. My internship work level tended to be very cyclic. Whenever my main project was stalled for one reason or another, I had little to do(I ended up roaming through the code base). Find an incremental project for this. Bugs and small features may suffice.
Finally, recruiting. Posting on sites like this is a good start. The type of students you want will find it. Also contact the career centers or CS departments of the specific schools you like. Most have some sort of system in place. Recruiting begins in September in a lot of places.
Send me an email if you want to pick my brain.
Also, I guess I can give you perspective on what you're competing against. I just completed a Microsoft internship this summer and plan on doing another (maybe with Microsoft, maybe not) next summer.
NU's startup presence is abismal. If you want to venture into consulting, banking or journalism they've got you covered, but the Valley? You are on your own.
* Give the intern a well-defined task that takes finite time (e.g., 2 months). * Find out about the intern's interests and try to hire someone who likes the languages / stacks / technology domain you are working in. * Check up regularly on the intern. It is very easy for an intern to lose his way and not ask questions / ask for help.