How to Manage Interns

From onboarding to coaching, give your interns the tools they need to succeed—and set up your reports to lead them.

February 14, 2020 • 6832 words • 24 minute read

Adapted from a talk given at Austin Lead Dev Meetup in July 2019. Original slides and more information on the Talks page.

Internships can be a fantastic opportunity for everyone involved. The most successful internships are those where every participant walks away having learned something or gained some value.

It’s not just interns who have the opportunity to grow during this process—managers can develop leadership talent on their teams by asking one of their reports to manage an intern.

Title slide for Individual Contributors Managing Interns

“Individual Contributors Managing Interns: Name a More Iconic Duo, I’ll Wait” by Marie Chatfield.

In a successful internship, everyone wins1:

But how do you manage an intern well? And if you’re considering delegating internship management to a non-manager, how does that work?

Slide with two bold phrases: Set Up Your Interns to Learn and Set Up Your Reports to Lead

Set Up Your Interns to Learn & Set Up Your Reports to Lead

Feel free to skip around and skim through this blog post! This is intended to be a collection of resources that will be most valuable to different people at different times.

Set Up Your Interns to Learn

Slide of Set Up Your Interns to Learn

Set Up Your Interns to Learn: From the first day through the last, give them the tools they need to succeed.

Managing an intern well takes a lot of preparation and communication. You’ll want to lay the foundation for your intern before they ever arrive, making sure that they jump right in when they arrive and start learning.

If you take some extra time to set up your intern for success, you can ensure they can work on impactful, relevant projects and have the tools and resources they need to actually achieve the goals you set together.

The work and tasks I take on when managing an intern fall into four major categories:

You definitely don’t have to do all of these things, or do them exactly as I suggest! This is the system that I’ve found that works for me when managing an intern. What’s most important is finding what works for you and your interns in your own context.

Learning Resources

Slide of Learning Resources

Learning Resources: Documentation, set up steps, tutorials, and more.

Before your intern arrives, you want to collect references to different documents and resources that will help them learn about your company and your technology.

In an ideal world, your team has already been writing these resources for your own use! All of these resources are incredibly helpful for developers of all experience levels. One tried-and-true method to expanding your list of resources is to ask any new hire to write or expand on the documentation with what they wished they knew as they onboarded.

But assuming you don’t already have a handy list of links lying around, do your best in the time before your intern arrives. Ask your team to contribute! Make sure you’re covering these general categories.

You don’t have to have all of this written down—you can always have in-person or remote meetings to discuss these topics. But taking the time to document will give your intern a place to refresh their memory if they have questions, and make onboarding the next person faster!

Company Basics

What’s the important information everyone needs to know about working at the company? Do you have an employee handbook? Are there paid company holidays? Do those apply to interns? Does your intern need to submit timesheets? How do they request time off or call in sick? What are the different teams at the company? What are the teams that your intern will likely be working with?

Screenshot of the Dunder Mifflin company org chart Screenshot of an Out of Office calendar for Dunder Mifflin

Screenshots from the Pingboard web app showing an org chart and Out of Office calendar for Dunder Mifflin, the company from The Office TV show.

As a Pingboard employee, I’m a big fan of our interactive org chart and vacation calendar—it helps me keep track of who’s who and who’s out today. But any tool or set of documents will do here, as long as you have some way to share basic information about the company with your intern!

Setting Up Development

How do you install the app you work on, and its dependencies? How do you run services locally? How do you run tests? What tools and software do you need access to in order to develop, and how do you request access? How do you create test accounts? Do you have a specific development process in terms of how you seek code review and get your code tested and deployed?

When you’re writing out instructions, have empathy for your interns and make everything as clear and explicit as possible.

For example, don’t just say:

### First Time Setup

Clone the repo and run `yarn install`

Break it down into every step you’d need to take to set up your app on a fresh computer, for someone who might not have used this specific technology stack before:

### First Time Setup

1. Clone this repository and check it out on your computer:
   `git clone https://github.com/my-org/my-repo.git`
   `cd my-repo`

2. Install [Homebrew](https://brew.sh/) for Mac.

3. Use Homebrew to install [Node](https://nodejs.org/en/):
   `brew install node`

4. Use Node to install [Yarn](https://yarnpkg.com/):
   `npm install -g yarn`

5. Install our app's JavaScript dependencies with Yarn:
   `yarn install`

6. Now you can run the app!
   `yarn start`

Learning the Problem Space

What is the common terminology used at the company? What general information about the domain is helpful to know? What are the names of the products you ship? Who uses them? What are their use cases?

For example, if you’re building tax preparation software, it would be helpful to have:

App Specifics

What does your service architecture look like? Is everything in a giant monolith? Do you use microservices? Which ones will your intern mostly interact with?

Within the app your team is working on, what’s the main structure of it? How do you find files and what’s the organizational structure of your directories? What are the main components of your system? What kind of clients do you support? Web? iOS? Android? How many databases do you have and what kind are they? How do requests flow through the system?

This is a great time to draw diagrams and have some visual representations of more complex systems! They’ll help everyone on your team, not just your intern.

Best Practice

Slide of best practice to share responsibility for sharing knowledge

Best Practice: Share responsibility for sharing knowledge.

Share responsibility for sharing knowledge.

If you are managing or mentoring your intern, you should not be the only person responsible for teaching them and bringing them up to speed! Making sure multiple people are involved in onboarding is better for your team and for your intern.

The Goal of Learning Resources

Slide of The Goal of Learning Resources

The Goal of Learning Resources

When my intern arrives, they will
have access to the information that
they need to know to succeed in their role
and know where to look when they have questions.

Onboarding Tasks

Slide of Onboarding Tasks

Onboarding Tasks: Well-defined, well-scoped, well-documented, and friendly.

When your intern arrives, you want them to be able to start working on meaningful contributions as soon as possible! But what are the kinds of tasks you can hand over to someone on their first day? Or the first week or so as they’re still learning about your app and technology and development process?

Your team can gather together and comb through your backlog and issue trackers and identify some good candidates for your intern to tackle when they arrive. The best candidates will be:

You should create some kind of list or collection of tasks. As you add tasks to the list, make sure they have enough detail and information for your intern to get started!

Before screenshot of bug report with minimal detail
After screenshot of bug report with reproduction steps and attached video and test account

Before and after screenshots of a sample bug report. The before has very little detail; the after has much more detailed steps to reproduce, plus a test account and a video demonstrating the issue.

In this example, I had a bug that had too little detail. As an engineer experienced with this app, I knew exactly what the problem was even with such scant phrases. So I took the time to create a test account for my intern with a sample scenario, took a screen capture video demonstrating the issue, and wrote out every step to reproduce it again.

Make sure every task you assign to your intern has sufficient detail for them to get started, and/or offer to pair on the task to get them started.

As you’re collecting potential tasks, categorize them into these three sections:

First Day Tasks

These are the simplest tasks. A really good candidate for this column is something like “fix a typo” or “make this button blue” or “change where this link points.”

The point of these tasks is to let your intern work through your entire development process:

…or whatever your process entails. Make sure the coding task itself is small enough that most of your intern’s brain space can go towards learning the process itself.

First Week Tasks

These tasks are a little bit more complex than the previous ones, but they’re still not too tricky!

If the first category is “tasks that are a single line of code that you can immediately visualize,” the second category is “tasks that you have a pretty solid idea of how to tackle but the exact details are a bit fuzzy.”

For example, think about a task like “make sure modals close when the Escape key is pressed.” Or maybe there’s an exception being thrown by the server for a specific request and you know it can be fixed by checking for a null value.

The goal here is giving your intern a chance to learn more about the actual app and practice debugging and exploring the codebase on their own! You still don’t want to give them complete head-scratchers, or anything that requires a lot of existing knowledge about how the app works.

Project Ideas

Finally, start a list of potential project ideas! These should ideally be a project that your intern can complete and release largely independently within the duration of their term.

If your intern will be with you for eight weeks, you should plan for at least one week of onboarding and one week of off-boarding. So you want to target for projects that can be started and finished by one entry-level person in six weeks. If it’s a project that you think you could do in six weeks, it’s too much work! Figure out a way to scope it down a little smaller, and make some stretch goals.

Ideally, projects should be well-defined, meaningful, but not highly time-sensitive. Some great candidates for intern projects are “small-ish projects we would like to do but never quite have enough time for.”

Best Practice

Slide of best practice let your intern pick their project

Best Practice: Let your intern pick their project from a list curated by your team.

Let your intern pick their project from a list curated by your team.

A really successful internship is one where your intern is proud of the work they have been able to accomplish, and your team had a small project completed that you might not have been able to get to otherwise. You can find a way to let your intern have some say in their work while still taking into account what your team needs!

The Goal of Onboarding Tasks

Slide of The Goal of Onboarding-Tasks

The Goal of Onboarding Tasks

When my intern arrives, they will
have access to a list of tasks that are
appropriate for their knowledge and skill level
and provide sufficient context for them to get started.

First Day

Slide of First Day

First Day: Make your intern feel welcome and help them get set up.

Your intern is finally here! It’s their first day!

If you work at a larger company, you may have a dedicated intern program that handles welcoming everyone, going through any required Human Resources tasks, and getting everyone set up with a working laptop. If you have a really excellent intern program, your interns might even do some basic development and coding together before joining their individual teams.

But if you’re at a smaller company, you might not have those kinds of resources and it’s on you to make your intern feel welcome and to get off to a great start together!

Clear Your Own Schedule

Make sure you are available for your intern’s first few days with your team. Get out of as many meetings as you can and block off time on your calendar. Avoid committing to any strict deadlines of your own during your intern’s first week so you can really focus on them.

Make yourself easily reachable—whether that’s by sitting next to them at a table or having a video call or reaching out on Slack and making sure they know they can ping you with questions.

Try to make sure your intern is set up with all their devices by the end of the day. Even if you can’t fix every problem for them, make sure to keep checking in and reaching out to people who can help! You want to make sure that your intern doesn’t feel alone on their first day when they likely don’t know anyone and may be nervous.

“Choose Your Own Adventure”

Whenever possible, try to give your intern choices about how to spend the onboarding time! For example, you might say “we have thirty minutes until lunch—would you like to have some quiet time to finish setting up your laptop, or would you like to start talking about how our app works?”

There are some tasks that will have a strict deadline—like filling out legal documents for HR—but other things are probably a bit more flexible about exactly when they happen. Give your intern a bit of agency by letting them choose! This can also help them feel less overwhelmed if they need a little space to collect themselves or to feel more engaged if they’re ready to dive into code right now.

Discuss Expectations

Schedule time for a 1:1 meeting with your intern on their first day to formally welcome them and talk about expectations and work style.

I’m a big fan of sending a calendar invite with discussion questions in the description. This gives your intern a chance to think about some of their answers, or at least just know what’s coming in this meeting.

Screenshot of Google calendar event with a lot of questions in description

An actual Google Calendar event invitation that I sent to an intern. It has a bunch of questions to discuss.

Your intern may not have answers to all of these questions. They may not have worked in a professional workplace before, they may have no idea what their preferred work style is, they may not have ever had a 1:1 meeting, they might not know what their overall goals are and be able to eloquently state them. That’s okay!

One of the main goals of this meeting is to make sure you and your intern are on the same page and have set expectations about their role. For example, if they indicate that they want to learn about Vue but you use React, that’s a good thing to know on day one. Or if their goal is to build an entirely new app, you can let them know the kind of projects they’ll be working on are probably features in an existing app or internal tools for another team.

Ideally, you can find ways to support their goals and preferences—for the Vue enthusiast, maybe your team has a hack week coming up and they can try out a project of their own choosing then. But ultimately, there may be some things your intern would like to do that just aren’t part of the role, and that’s okay. You want to make sure your intern understands what’s expected of them in their role and what they can expect of you, and be as clear as possible from the beginning.

The Goal of the First Day

Slide of The Goal of the First Day

The Goal of the First Day

After my intern’s first day, they will
have a working development environment,
access to relevant software and accounts,
and clear expectations for their next few weeks.

Coaching

Slide of Coaching

Coaching: Give your intern clear and consistent feedback to help them grow.

Now that your intern has arrived and started settling into your team, you still have a whole internship together! The best way to ensure that everyone gets the most value from that time is to be an active coach and mentor.

Your intern may not have much experience with writing production-ready code or working in a professional environment or on a cross-functional team. They’re going to be learning a lot just from working and existing in this space. But if you intentionally coach your intern and give them feedback, you can make that learning process smoother—helping your intern to focus on what matters and to understand what’s working, what’s not, and how to improve.

As always, you’ll want to make sure you explicitly communicate any expectations you have—you cannot assume your intern will walk in knowing exactly how you think they should behave or approach their work!

Provide Feedback in Every 1:1

A weekly 1:1 meeting with your intern is a really great way to make sure you have a dedicated space for checking in and giving feedback. I make it clear that our 1:1 time is not just “regular conversation in a different space,” but is meant for talking at a higher level.

Step Back and Give Them Space

You have more experience with this company, this application, and this technology than your intern. As they are planning or working on their project, you might be able to spot a mistake. Maybe it’s an implementation choice that is way more complicated than the situation calls for; maybe it’s writing something by hand instead of using a library method; maybe it’s not enough error handling.

When you spot a potential pitfall, don’t always jump in and just tell your intern to fix it and how. If it’s not too costly, if it’ll show up in testing, and won’t actually make it in front of a bunch of users—let them make their own mistakes.

Part of learning is making the wrong choice, recognizing when you’re down a rabbit hole, and figuring out a better way. It’s valuable to be given the space to mess up in small ways and to learn how to recognize those anti-patterns for yourself.

Of course, jump in and help your intern when they ask for help! And definitely step in if they’re about to waste a lot of time on something that’s not worth it—like dependency injection. But if you give them the space to experiment and try things out their way, they’ll learn so much more deeply. They might even surprise you and figure out their mistake before they make it!

Keep an Eye on Their Progress

While you want to give your intern some independence, you also want to make sure they aren’t getting stuck on anything for too long.

As an engineer, I’ve got my own process for checking up on my different tasks—times that I go through and check the status of my pull requests, or make sure all my tests are passing, or double-check that there aren’t any merge conflicts. Whenever I do one of these checks for my own work, I also spot check my intern’s work.

This can help surface potential problems—for example, your intern has resolved some feedback but the reviewer hasn’t responded in three days. It might be time for you to go ping that reviewer yourself and ask them to take another look. Or you can coach your intern more directly and say “Hey, if we haven’t replied in a few days, feel free to reach out directly and remind us! We try to pay attention but sometimes a message slips past us.”

Give Mid-Point and Final Feedback

Try to schedule a time to give your intern some longer-form feedback halfway through the internship and at the very end. Think of this as a very light performance review.

Screenshot of a Google doc with a template for mid-point feedback

Mid-Point Check-In: a template for feedback in the middle of an internship.

Here’s a sample template for mid-point review with just two questions:

And a question for the intern to complete:

You can answer each of these questions with just a paragraph or two of feedback. It doesn’t have to elaborate or incredibly detailed—you’re trying to give your intern an overall sense of how they’re doing and get some feedback from them about how the internship is going from their perspective.

Ideally, if you gave some suggestions for improvement at the mid-point check-in, you’d be able to come back to those at the final feedback and point to where they were able to implement your feedback!

Remember, you aren’t holding your intern to the same standards as a full-time engineer with a few years of experience. Think about the job description your team wrote for interns when hiring. How has your intern been doing relative to their experience and skill level?

Giving feedback at the end of the internship is very helpful if hiring your intern for a future role is a possibility. You can provide some documentation to other people on your team to justify a hire/no-hire decision. Even if you aren’t able to hire your intern for a full-time role or a repeat internship, they get some valuable information about how they did and some practice with performance feedback in a professional setting.

The Goal of Coaching

Slide of The Goal of Coaching

The Goal of Coaching

Throughout my intern’s term, they will
have consistent, timely feedback about
their progress and growth over time as well as
opportunities for improvement.

Set Up Your Reports to Lead

Slide of Set Up Your Reports to Lead

Set Up Your Reports to Lead: Give them extra support as they build new skills and navigate new scenarios.

If you are a manager of a team that’s planning to host an intern, I strongly encourage you to consider asking one of your reports to manage the intern instead of doing it yourself!

Delegating managing an intern to one of your reports is a great way to develop leadership skills on your team and make space for your reports to grow in their own careers. Managing an intern can be a valuable opportunity for an engineer who has to demonstrate a proven track record of mentoring and leading before being promoted or assigned a formal management or tech leadership role.

On a practical note, a setup that I’ve found that works well is splitting management of an intern into two categories: mentoring and people management.

While I advocate for delegating the mentorship aspect of management, as a manager you should still be your intern’s manager “on paper” and handle the people management side.

Why It Matters

Slide of Why It Matters

Why It Matters: Prepare your reports for increasing leadership in a low-stakes environment.

So why should you ask one of your reports to manage an intern? It’s good for your report, good for your intern, and good for the long-term health of your team!

Let Reports Try Out Leadership

If one of your reports has expressed interest in management or leadership, managing an intern can be a fantastic testing ground. Think of your report managing an intern as their own management internship.

Your report can get an idea of what’s involved in the mentoring and feedback side of people management, and if they want to continue to pursue it. You also get to evaluate how they perform in a leadership role and identify areas of growth to work on before your report is ready to lead other full-time employees.

If you realize your report is ill-suited to leadership, you’ve learned a lot of very valuable information about your report without having to make more long-lasting role changes. But if your report demonstrates skill and promise as a leader with an intern, it will be much less risky to give them future opportunities with more responsibility or a longer-term time commitment. You can start developing the leadership talent and experience within your own team today to prepare for the needs of tomorrow’s team.

One added benefit: as an individual contributor, being asked to manage an intern shows me that my manager trusts me and listens to my career goals. This kind of sentiment is important for employee satisfaction and retention!

Give Interns Insight Into Daily Life

If your intern gets a full-time job in the next few years, their daily life as a developer will look closer to the schedule kept by your reports who are individual contributors than your own as a manager. Having your intern work closely with someone who is a bit closer to their next step can give them some more concrete ideas of what full-time work will look like, and what interests them.

Lighten Your Load (Kind Of)

Managing an intern well takes time. There’s a lot of coaching and answering questions and making yourself available. It’s time that’s well worth it, but it is time nonetheless.

If you already manage at least one full-time employee, your schedule might already be booked. You can choose to trade off the daily management and mentoring tasks of an entry-level employee for higher-level coaching of your more experienced report instead. This is a different kind of work, but you might find it fulfilling and engaging to focus on teaching someone how to lead and manage, instead of teaching someone how to contribute with code.

Support Your Reports

Slide of Support Your Reports

Support Your Reports: Build an on-ramp to leadership and create space for discussion.

If you do ask one of your reports to manage an intern, you should be prepared to offer them additional support during the internship to help them adjust to this new role. As your report should be coaching your intern, you should be coaching your report.

Have Regular Updates and Discussion

Check in regularly with both of your reports—your intern and your intern’s manager.

Ideally, you already have a 1:1 scheduled with your report, but if not you should set up those meetings for the duration of the internship. You want to be able to check in regularly with your report about how they’re managing, how they’re handling different scenarios, and give them feedback on their own progress and performance. That time is when a lot of more specific coaching can happen.

You probably don’t need to have a weekly 1:1 meeting with your intern—and in fact, it might undermine your report if you do. But you might choose to do a biweekly or monthly meeting, or just reach out every now and again to check in on your intern. You want to know how they’re doing, but also get some feedback from them about how your report is mentoring them.

Adjust Your Expectations

Don’t expect your report to keep producing their own development work at the same level as they take on these new tasks of managing an intern. Give them a lighter project load for the duration of the internship and make it clear that you consider their management and mentoring tasks to be an important use of their time at work.

You don’t want to burn out your report by expecting them to keep producing the same amount of work while also taking a new leadership role. And you also don’t want your intern to get the short end of the stick if their own manager is so overwhelmed with their own deadlines that they can’t make time for mentoring.

Make Yourself Accessible

Ensure your intern knows they can talk to you, especially if they have concerns or feedback about your report’s performance as a lead.

It might be helpful to meet personally with your intern during their first week and explicitly tell them the division of responsibilities between you as their people manager and your report as their mentor. You want to communicate that you trust your report to lead and that they’re the first person your intern should go to—but that you’re around and ready to talk if your intern needs anything or doesn’t feel comfortable going to your report.

For example, questions about development or process go to their manager—but you’re the right person to talk to about time off or uncomfortable comments from a coworker.

The goal here is that your intern feels fully supported by both of you and knows the difference between the roles of people manager and mentor and that you have open lines of communication with everyone on your team.

Summary

Managing an intern well takes time and energy and communication and empathy. But it’s incredibly fulfilling to mentor and coach an entry-level employee and see them thrive and succeed over the course of a few weeks.

There is so much joy in seeing an intern release the project they’ve been working on, in observing them navigate the entire development process and learn valuable skills along the way, and in seeing them feel empowered to take on the next step in their career.

I can’t speak for managers, but I imagine there’s a similar joy to be had in creating an opportunity for their reports to test out management on a small scale, to coach them on how to coach, to mentor them on how to mentor, and to watch them develop their leadership skills.

Investing time in your interns and in your reports can lead to new potential for your entire team. Give them the space to test out new skills and roles, and see how much they can learn in just a few months. You can build the team you’ll want to hire tomorrow by creating opportunities for them to grow today.


  1. If your expectation in hiring an intern is “someone who can quickly ramp up, work largely independently with little oversight or instruction, and ship a full feature,” then you are really trying to hire a cheap contractor. Internships are opportunities for learning and building relationships with entry-level employees who may not have much experience but could have a lot of potential. And interns must be paid, and paid fairly. 


 

The best HTML elements you never knew existed, so you can improve your website's accessibility, mobile UX, and SEO while writing less code.