Do you remember your first job interview ever?
The moment you’ve entered the company’s office was just like entering another world. It was full of magic and mystery.
Last time check - okay, I’m 5 minutes early. This is so stressful.
You have no idea how things work here.
You see people walking through the office, everyone busy with their own things.
There’s a group standing next to a whiteboard discussing something. Probably something difficult.
Wow, is this what work looks like?
Your head is full of thoughts.
Remember, ask them a question at the end of the interview. Pretend that you know an answer to their questions, even if you don’t. That’s what Jimmy said. QuickSort in O(n^2) in the worst case scenario. Keep smiling. Be polite.
What if I fail? I shouldn’t be here, I’ll never get a real job.
Good morning, I’m here for a job interview.
There's probably not much magic there for you anymore. The office routine, water-cooler smalltalk, dealing with deadlines and co-workers. All figured out.
But how do you feel about working with less experienced people? Like the young you, just about to spread their wings?
We work for a medium-sized software consulting company. We had been thinking about running an internship program ourselves, but every time we found good reasons not to do that. We always ended up explaining it to ourselves that we’re a small business and we simply cannot do it.
We had a few concerns that appeared every time we talked about internships.
Why Do We Even Care? We Need to Hire More Senior Developers!
If you look at the job boards, you’ll quickly discover that majority of the openings are for mid-level or senior developers. They’re just easy to work with and hiring them quickly pays off. They can join a project, spend a few days to figure out how things work there and start contributing.
Easy. But there’s one thing that ruins the perfect plan - there’s not many of them out in the wild. The ones that you’d love to work with usually have a job they enjoy, so you need to find a way to reach them.
Just like in other companies, most of our hiring efforts were directed towards hiring senior developers. From that perspective, internships didn’t make much sense.
But there was another group of people that we had more luck with. Once in a while a junior person would walk into our office and impress us with their skills. We didn’t even need too much marketing to reach this group - most of them were college students and knew each other. Word of mouth worked well enough.
Then they all graduated and new ones stopped coming.
We figured out that we needed to refresh this relationship. That’s where the internships would fit in perfectly. We wanted students to know us. What’s better than a group of students that worked with us for the summer and can share their impressions with their classmates? That sounded like a good reason.
They Can Break My Project!
One of the things we were scared of was that interns could break something. You have to trust them, but what happens if they introduce a bug into a project we do for our client? Or break production? Or both?
We didn’t feel comfortable with interns working on client projects. It wouldn’t be fair for our clients - they trust us. It wouldn’t be fair for interns either - the tasks they could take care of would probably mean boring maintenance work, without room to experiment and learn.
But there was a few things we needed help with internally at the company.
One of them was managing conference room bookings.
The problem is that there’s always less conference rooms than people who need them.
We used Google Calendar to keep track of reservations, but it didn’t work really well.
There was always someone who would forget to remove a reservation they didn’t need and left the room blocked. Or someone who needed a room for an ad-hoc meeting. They would first need to grab their laptop, open calendar and see if the room is free for as long as they needed.
We wanted to set up a tablet in each room that would show a simple dashboard with status of the room and a few buttons to quickly make a reservation. Building the software for it sounded like a fun project for our interns.
It meant they wouldn’t have to cleanup after anyone but themselves. It left them space for experimenting with various technologies and technical designs. And since they were our employees, we expected them to deliver a working product.
The worst thing that could happen was that they could fail. We could afford that.
We’ll Need to Babysit
For some reason, the word “intern” sounded to us like a person who’ll come to our office and require an enormous amount of attention. One of our arguments against hiring interns was that we’ll need to spend a lot of time helping them.
Fortunately, the good thing about software engineering doesn’t require any expensive tools. With all the knowledge available on the internet, everyone can learn the basic skills at home.
We decided that we don’t want to teach the basics, but rather give our interns a chance to boost their skills by doing a real project under the eye of our experienced mentors.
When talking to candidates, we looked for the ones who did more than just pass college exams.
We wanted to learn about their side projects, no matter if they were a success. That meant they weren’t afraid to get their hands dirty with real code. We knew that they could learn the simplest things by themselves. Technical interviews confirmed that - people who spent time building their own projects were pretty good at designing. They also had a pretty good understanding of the technologies they worked with.
Our ultimate goal was to find 4 interns with different experiences and sets of skills. This way, they could help each other with solving problems they encounter. And we’d still be there for them if something turns out to be too difficult.
That Will Cost a Lot of Money
It’s fun to organize internships but as the clock ticks, we’re losing money. We’re not Google and our budget is limited. How much do internships really cost?
The easiest thing to figure out was their salaries. We’re outside of Silicon Valley, so that wasn’t a problem. People who want to learn don’t have crazy high expectations.
The other cost, that was more difficult to estimate, was the cost of our work on the internships. The time we didn’t spent working on client projects, but on internships, was the biggest cost.
We knew we won’t be able to talk to each of the applicants, so we introduced a few extremely simple automated programming tasks to sift out the ones who weren’t comfortable with code.
It then took us a few hours to go through their CVs and pick the ones we thought had the biggest potential.
We ended up with 24 face to face interviews. That took a lot of time. Every interview, led by two of our developers, took between 1.5 to 2 hours. When you add time required to make a decision, that’s over 80 hours of work.
Then, there’s the time spent on mentoring. We had no clue how to estimate that, but it wasn’t that expensive. We picked three of our developers to help the interns if they needed it. During the three months, they spent 50 hours each helping interns.
Summing up, it took over 250 hours of our time. It’s comparable to a month of developer’s work. It costed a lot, but we treated internships as a long-term investment. We knew that if they work out, we’ll benefit from them a lot in a year or two.
Credit: u2i.com, final presentation of the product built by interns
Things Turned Out Just Fine
A lot of students actively look for internships, but not many companies organize them. Within 2 weeks we had over 150 applications in our inbox. This was way beyond what we’re used to with regular job openings.
What was even better, the candidates were amazing. Most of them were open-minded. A lot of them thrived while learning new things and were fascinated by the things they were doing.
Some of them even had a quite deep understanding of the technologies they were playing with in their free time. We would probably hire them even if they applied for a junior developer position.
4 of the candidates joined our company as interns for summer. They built a system that to this day helps us manage conference rooms bookings. They broke their tiny production a few times, but well… putting out fires is an important skill as well. Besides that, they figured out how to use a few frontend technologies that we had no experience with as a company. Knowledge transfer worked both ways.
3 of them joined us as junior developers after the internship. They jumped into client projects with ease. The other one had to go back to finish his studies. Well, he was a first year student.
So many worries for no reason. It was worth it.
* Better Call Kasia
By the way. If you’re thinking about organizing summer internships at you company, but don’t know how - Kasia’s got this all figured out. Call 1-800-INTERNSHIPS and she’ll be right there to help you.
Message from the whoishiring.io team.
We know it's tough to find the right talent, especially among the less experienced crowd. But the crowd is full of brilliant people who need a little bit of support to thrive. That's why we focus our efforts on creating the best possible platform to help companies reach their future interns.
If you’re interested in hiring interns, please add your posting to our map here (it’s 100% free!). We will happily spread the message!