

Ask HN: Creating an internship program - trefn

Hi everyone,<p>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.<p>There seem to be two aspects to setting up a program like this:<p>1. Making it productive for both the company and the interns
2. Finding the right students<p>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.<p>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?<p>Also, how early does it make sense to start recruiting students?<p>Thanks!<p>-----
* edit: if you're looking for an internship email me: tim@mixpanel.com
we are a realtime analytics company, coding in python and js :)
======
johnswamps
Huh, this is funny. I'm a grad student at Stanford and a few months back there
was an opening for Mixpanel in one of the job digests that students in the CS
department receive. I actually wrote out an application asking if you would
consider me for an internship program but in the end I decided not to since
you didn't mention anything about being interested in interns. So if you had
mentioned it there you'd have at least one applicant :) There's also a job
fair in the spring just for start-ups, though I'm not sure how much it costs
to attend. It was pretty packed with students last year.

~~~
trefn
what about this upcoming summer? =)

~~~
spicyj
I may be interested. What age range are you looking for? I'll have just
graduated from high school (planning to study CS in college) but I'd consider
myself fairly proficient in web programming. (I've been making sites
professionally for several years already. You could see some JS knowledge of
mine reflected in <http://news.ycombinator.com/item?id=1634648.>)

------
swombat
I don't think you need to make the internship quite so formal as a "program".
Just put out an advert for interns on places like Craigslist (we used
Gumtree... a UK equivalent), and do some very hard filtering (you'll have to
anyway).

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.

~~~
asanwal
We have found that the signal:noise ratio via Craigslist is miserable. If you
solved this, any tips? Or are you wading through lots of cr^ppy resumes?

~~~
ericz
Signal to noise ratio of Craigslist is definitely terrible. Recruiting via
mailing lists in the CS departments at schools is likely to yield much higher
quality results.

------
asanwal
Background - We've had 4-6 interns each of the last few summers from top
schools. Amazing talent and helped us really move the ball forward.

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.

~~~
trefn
This seems like good advice. I haven't contacted any career centers yet but I
would not be surprised if it was super bureaucratic.

~~~
asanwal
Career services are architected for the IBMs, Mckinseys and Goldmans of the
world who have teams of HR people to handle the minutia.

------
leif
You seem to have figured this out already: A new product is probably the
easiest for them (because there's less ramp-up learning your code) and for you
(because you don't have to deal with their crap code if you don't want to).
Similar to this would be a simple orthogonal feature loosely coupled with your
own code.

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).

------
nnash
I think mentorship is an important part of any internship process. I'm
currently an undergrad and I've had two separate internships. Both
experiences, while great, focused on utilizing my existing skill set (which I
consider to be limited).

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.

------
Wilduck
While I don't know anything about setting up an internship program, I just
came out of an ideal internship, and I can tell you what made it incredibly
interesting for me.

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.

~~~
Zev
Wilduck's post pretty much hits the nail on the head. Especially the first two
points and the last paragraph.

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.

------
woan
I started IBM's Extreme Blue program and had a less formal program at my last
startup.

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...

------
daychilde
Talk to HACU about their HNIP program - that's <http://hacu.net/> and
<http://hnip.net/>

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?
;-)

~~~
DTrejo
I just finished a HACU internship at the VA in Oakland. It's cool to see
another alum here on HN. HNIP was a great program and they definitely made
things easy from the administrative point of view.

(hefty travel reimbursements etc)

------
spulec
As someone who just finished an internship, I can provide some insight into
the good and bad.

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.

~~~
synacksynack
Fresh off an internship myself, I can attest to the benefit of having a side
project. Primary projects often do get hung up, and with nothing else to work
on, interns are left venturing off into places unknown. Some predetermined
side projects would prevent a lot of downtime, something that's vital when one
only has ten or so weeks to work.

------
Locke1689
Give me an email sometime (in my profile). I may not be available myself, but
I'm writing a Job Board for the Northwestern ACM this very moment. I can talk
to you about presence at job fairs at Northwestern (probably the most
elaborate) to a posting on our new board (very easy, free). I can't offer you
a massive CS pool like Stanford or MIT, but I happen to think that our CS
program is very good, individually.

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.

~~~
andre3k1
This is something that we've needed at Northwestern for a long while now.

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.

------
rmk
From my personal experience in the past as an intern:

* 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.

------
piinbinary
What I would do to find students is to tell universities' CS departments about
it. Many of them maintain a list of available internships for their students
to apply to.

