No craft can survive without the regular addition of new blood. New people means new ways of thinking, ways that can challenge the status quo and potentially lead to better outcomes.
This is particularly important for any technology company. If you're getting comfortable or complacent, then you're probably going to be annihilated by a disrupter who does things differently or just better than you.
One of the easiest ways to avoid that sort of fate is to ensnare people early in their professional careers.
You know, interns.
People Want To Work With People
I'll be honest, as an Engineering Manager at Atlassian I don't fully understand the intern program.
From what I do understand, we have a team of people whose job is to court various sources of fresh blood (like universities) and to find candidates who are interested in working for Atlassian. At the same time, they identify teams within Atlassian who have space to accept new blood for a limited period of time (~12 weeks).
Then they pair them up.
It's entirely up to the team how the intern is utilised, but there are plenty of recommendations about how to best make use of them and how to not scare them away. The second part is important, because interns represent an investment that the company is choosing to make, both in terms of time and in terms of actual money.
The ideal situation is that the best of the interns continue on to become full-time employees, adding their awesomeness to the collective.
In order to make that decision, managers of interns need to critically evaluate their performance and provide a recommendation as to whether or not they think they are suitable for an ongoing role. This is built into the process and is very similar to the normal performance evaluation process, just condensed over a shorter period.
During the internship there are other activities happening tangentially as well, like social stuff and onboarding, but I don't really have much to do with that.
As a manager, my focus is on the intern themselves and setting them up for success.
This Is Like Teaching Someone The Alphabet
When it comes to software engineering interns, I think there are two important things that you need to do in order to give them a good experience and get the most out of them.
The first thing is to identify a clear piece of work for them to do. Being that internships have a limited run-time, you want something relatively self-contained, not too complex and with a well-defined value proposition.
Ideally, the piece of work that you give them should be something that they can own end to end, and it should probably be a little bit disconnected from the critical path. They're an intern after all, you don't want them to be solely responsible for delivering a key component of a much larger plan.
Just because they are owning a piece of work, doesn't mean that they should be working alone though. Software engineering is a team sport, despite how well the myth of the sole developer hacking away in a corner endures.
That leads into the second thing, which is to organise a mentor for the intern while they are working in your team. This is very similar in concept to an onboarding buddy, but it goes a bit deeper than that. As a manager, you're a key part of the intern's support system, but they also need someone technical that they can turn to at a moments notice. It's also beneficial if the mentor is literally helping the intern to deliver their piece of work, rather than just floating in and out while doing on other things.
That focus and attention is important to the intern's experience and increases the chances that something meaningful will come out the other end of the internship.
It's not a one way street either, because for the mentor it's an opportunity for them to show that they can coach and grow those around them. This is an important thing to demonstrate for anyone looking to progress further along the typical software engineer career track.
But that's just theory. What about practice?
More Like Teaching Them A Single Letter
I found the experience of being responsible for an intern not all that dissimilar from being responsible from any other engineer, but that makes me question whether or not I could have done better.
I've worked with people who have little to no on-the-job experience before and the most important thing is to make space for them to do their thing, fail in a safe way and reflect on what happened afterward. To provide guidance about what path they should go down, but to let them make their own mistakes without them causing any particularly catastrophic ramifications for the business.
This sort of approach is a great way to evaluate whether or not someone would be a good addition to the team over the long term, and is a really effective way of learning and growing for the person in question.
The intern that I was responsible for was fantastic and I think I lucked out.
They were smart, motivated and easy to work with. In fact, they fit into the team better than some people I've hired, which made me reflect a bit on exactly what sort of traits I should be looking for in the future when I need to grow the team.
I did the same things that I usually do for any new starter; engaged with them before they officially started and explained as much of the context as I could, giving them plenty of time to mull things over before the pedal hit the metal. I got the intern and their mentor to engage early as well, working together to select the piece of work that the intern would be responsible for during the internship.
Speaking of the mentor, they also did a fantastic job. They were highly engaged in the entire process and gave both it and the intern a huge amount of attention and care.
When it comes to do this sort of thing again in the future I'll be looking for a mentor with similar traits and availability, which I think is a good lesson to take away.
Hell Of A Summer
The internship is over, hence the writeup. The intern lives on though, because they did well enough that I organised for them to work part-time, three days a week until the end of the financial year.
If that's not an endorsement that they are worth hiring in the long term, I don't know what is.
Speaking of hiring, the process that I went through with the intern (get one assigned to my team, organise a project for them, support them through the delivery of said project) felt like a great way to critically evaluate someone both professionally and culturally.
I've always been a bit dissatisfied with the normal interview process, so I wonder if something like this could work for normal recruitment as well. It would probably be slower, but it might result in better hiring decisions.
Back to interns though.
I would gladly take another one, if for no other reason than the see if I really did get lucky the first time. Even if the next one doesn't work out as well, at least I'm supporting young professionals as they move into the industry for real.
If I do it right, maybe one day they'll look back fondly on their first manager who helped them get started and how awesome they were.
That sounds like a nice legacy to leave.