Here's my advice as a two-time former intern at two different places.
As a small startup looking to hire hackers, you obviously want the best. You want experienced hackers who already know how to code and perhaps have experience on a project before (e.g. open-source). Of course, you want the brightest.
But this is always a challenge because the smarter, more experienced, and more valuable a hacker is, the rarer they are and--odds are--the less likely they are willing to work for you because they're less desperate for an internship; they can afford to shop around, or may even just decide to do their own projects for a summer.
So here's how you can try to attract those people.
1. Pay decently. A lot of companies like to pay interns nearly nothing these days (or in some particularly obnoxious cases, actually pay them nothing). This of course doesn't mean pay them as much as a full employee, but it does mean they should not feel insulted by the amount of money you're offering. If they could earn more than 5x your pay as an independent contractor, you're doing it wrong. While not all hackers do internships for the money, it's definitely a huge plus. And if you don't think you're going to get enough out of your intern to justify the pay, don't hire them; you should not hire an intern unless you have no doubts about their ability to produce significantly more value through their work than you're paying them.
2. Deal with the interns' practical issues with regards to working for you. For example, if they're coming from out of town, deal with their housing and flights. Hackers dislike dealing with bureaucracy--you'll save your intern's time and effort and sanity by dealing with these issues.
3. If your interns' time is so much less valuable than your employees' time that you cannot spare significant employee time to helping the intern with what he is doing (in the same way they would help another employee), don't hire an intern.
In terms of picking an intern, often you have to actively seek them out to be successful, especially if you're looking for the kind of hacker that doesn't go around applying to every internship he sees. For example, if your company makes very significant use of open source software, you can look through those open source projects for potential interns.
That's great advice. What about the type of responsibilities? It seems that what we've heard is just being able to make an impact and being able to show exactly what they've done to future employers.
I think a good intern should be able to take real responsibilities as well. They shouldn't be exposed to the worst of the firefighting if it happens (they should still take part, but don't put them under the worst of the pressure; that's what your employees get paid for).
This means a number of things:
1. Give them at least one project to work on with specific things that need to be done. Don't necessarily have a hard deadline unless there actually is one for the project; as long as your intern has work to do he clearly can't justify goofing off, so always make sure he has work to do.
2. Have at least one project available for him to brainstorm on. Any good hacker is going to have loads of good ideas; the best way to waste these is to throw the hacker onto a project that doesn't need them. Your hackerf is not just a codemonkey. When you have your hacker dropping by your office or pinging you on office IM about a really cool idea he had for Project X, listen to him; it just might be a good one.
3. Ideally, hire an intern who has a skill set or knowledge base that nobody in your company has. I don't need to describe the value of this.
As a small startup looking to hire hackers, you obviously want the best. You want experienced hackers who already know how to code and perhaps have experience on a project before (e.g. open-source). Of course, you want the brightest.
But this is always a challenge because the smarter, more experienced, and more valuable a hacker is, the rarer they are and--odds are--the less likely they are willing to work for you because they're less desperate for an internship; they can afford to shop around, or may even just decide to do their own projects for a summer.
So here's how you can try to attract those people.
1. Pay decently. A lot of companies like to pay interns nearly nothing these days (or in some particularly obnoxious cases, actually pay them nothing). This of course doesn't mean pay them as much as a full employee, but it does mean they should not feel insulted by the amount of money you're offering. If they could earn more than 5x your pay as an independent contractor, you're doing it wrong. While not all hackers do internships for the money, it's definitely a huge plus. And if you don't think you're going to get enough out of your intern to justify the pay, don't hire them; you should not hire an intern unless you have no doubts about their ability to produce significantly more value through their work than you're paying them.
2. Deal with the interns' practical issues with regards to working for you. For example, if they're coming from out of town, deal with their housing and flights. Hackers dislike dealing with bureaucracy--you'll save your intern's time and effort and sanity by dealing with these issues.
3. If your interns' time is so much less valuable than your employees' time that you cannot spare significant employee time to helping the intern with what he is doing (in the same way they would help another employee), don't hire an intern.
In terms of picking an intern, often you have to actively seek them out to be successful, especially if you're looking for the kind of hacker that doesn't go around applying to every internship he sees. For example, if your company makes very significant use of open source software, you can look through those open source projects for potential interns.