Introducing Asana’s Fall 2024 Release. Discover what's new.Explore now
We’re really proud of our internship program; a staggering number of our interns over the past 7 years have ended up as great engineers in various forms of leadership, both at Asana and elsewhere.
So, we thought, let’s share the love. We’re sharing our internal guide for intern mentorship that we use in pretty much this exact form (plus some Asana-specific logistics) with all of our intern mentors.
This guide is a collection of our shared knowledge, conventions, and flat-out opinion of mentorship at Asana – specifically, mentoring interns. It’s helped us scale our intern program from 2 to 40 interns, and we think it will continue to help when we’re 10x the size we are now. We hope this guide is as useful for other companies as it continues to be for us!
Asana’s general philosophy around interns is a little bit different than many other tech companies. It boils down to: Treat interns like real employees.
This means that we tend to avoid giving interns standalone “intern projects” that are easy to present at the end of the summer; we also provide less of a “summer camp” experience than some other companies.
Instead, interns are just part of the team; they do real work. They understand how their work affects our customers, and why it’s more important than a hundred other things we could be doing instead. They get a good sense of what working here is actually like, and they form real connections with the people they work with.
This means that we expect that interns will be working with people on their team on concrete work on your team’s roadmap. This means they get useful feedback from multiple people with context, which in turn sets them up for success for their internship.
to convert them to full-time hire
so they can make referrals that we can hire, whether other interns or new grads
spread goodwill about asana
get useful work out of smart people
let our engineers practice growing in responsibility
learn to become better engineers
learn how real companies work
learn what it would be like to work at Asana
have a good time
…? Ask them!
1. Having an intern is pretty serious time commitment. Especially in your first few weeks, expect to spend up to 50% of your time working with or dealing with intern-related activities. This will go down pretty quickly as your intern ramps up, but don’t expect to get a ton of your own program work done in their first week or two.
Even as they’re more onboarded and self-productive, you are the default first point of contact for any problem they might have.
Make space in your schedule for doing a good job.
2. Make sure your intern works with people besides you. Though you are the default first point of contact for your intern, there are many advantages to having them working with other people. Not only does this allow you to share the workload, it teaches them more about getting access to resources in a real way in the company, gets them access to more knowledge, gets them access to feedback for growth from more people, and helps us make the decision about whether to give them a return offer. We’ll also be explicitly asking for another engineer to be giving your intern feedback, and it is helpful to let that engineer know from the start.
When possible, introduce your intern (in person) to other engineers that can teach them.
3.You will need to help your intern find and do meaningful work. Please be thinking about ways that they can contribute real value well before your intern arrives. Interns can tell if what they’re working on is important.
At the same time, you want to pick work that will not hold up others (or yourself) if your intern struggles with completing it. Work with your PL to find work that is important but non-blocking.
4. You are the default person to unblock your intern. You should make sure that your desk is very close to their desk, that they feel comfortable asking you questions, and that you make yourself available to them. This doesn’t mean you give them answers to every question, though — remember to teach them the methods of finding the answers, not just the answer.
5. Have regular 1:1s. These are really important for giving them space to talk about broader issues, and strengthening your relationship with each other. With interns, we like weekly 1:1s instead of biweekly. We recommend using this time to ask them what they want out of their internship, giving feedback, and generally working together to help their internship be a success.
6. You will need to do a midpoint review for your intern. You will need to ask somebody else to contribute as well, so there are at least two data points. Finding somebody else is often the hardest part, as you’ll need to make sure someone works with them enough to give them real feedback by the midpoint; make sure your intern works with people who aren’t just yourself!
Nothing in this midpoint review should come as a surprise for your intern – hopefully, in your 1:1s, you’ve been giving them feedback. Still, having a formal signpost is really useful.
At this stage, we’ll also be thinking about whether your intern is on track for a return offer. Their manager will deliver that news to them, but you should keep this in mind when thinking about feedback.
7. You will need to do a final review for your intern. This is by far the most important input into our decision to make an offer. The intern should never be surprised if they do or do not get a return offer.
While being clever with advanced search can help, reviews are often very recency biased. It can often be very helpful to take notes for yourself (or, ask your intern to!) every week.
These are more “take it or leave it” than the above, which is basically “what you have to do”. However, the list is roughly in order of how certain we are that this is a good idea.
Give feedback early and often. Useful for both positive and negative feedback. Making yourself put it into words helps you identify specific things you appreciate about your intern, and they’ll learn a lot from you pointing out specific ways for them to grow.
Remember, giving constructive feedback is harder, but it’s generally important. There are a ton of good resources online, and your manager can also help you practice.
Be clear with your expectations (and expect a lot). Interns have a tendency to rise towards their expectations. Remember, that they’re used to being told, “Do X” and assuming that X is possible; try to stretch them.
However, they’re often less good at things like, “hey, there’s this problem…can you investigate and do something about it?”
Help them with how and when to ask questions. Some interns ask questions too often, before they’ve even tried to figure it out. More often, interns don’t want to be perceived as “slow to learn” or “dependent” and can easily spend multiple days spinning their wheels trying to figure something out when they don’t yet have the tools.
Setting a rhythm of when you ask to help them (e.g. before lunch every day, or something), gives an easy cadence for balancing self-investigation and getting help.
Be their ally. Ask them how they like to learn. Some people like learning by reading; some people prefer having somebody tell them things. Everybody likes getting some time to experiment. This is also good signal that your primary purpose is to help them grow, not to ruthlessly evaluate them.
Pair-programming is a good way to share knowledge. Time and again, when we look back on the interns we had for a summer, performance was correlated with how much time was spent pair-programming in the first two weeks.
While it feels time-consuming, it’s a very leveraged way to teach a lot of things that are hard to learn otherwise–how and when to ask questions of other people, the right sense of quality bar, the thousand tiny tricks of efficient development.
One way we’ve seen this work really well in the past is to hold regular office hours for pairing. This is especially good for mentees that don’t ask for enough time or feel uncomfortable interrupting their mentor.
Avoid deadlines when they’re still acquiring skills. Is your team 3 weeks away from a hard deadline? That sounds exciting! Find something adjacent but not critical for your intern’s first few projects, unless you’re very confident in their skills already. The pressure of “we need this done quickly” can be counterproductive to “build your skill foundations well”.
Emphasize that we value growth, not where they are now in skills. Distance traveled is really important.
For helping with quality, set an expectation that the first thing that works is not necessarily the thing that will get committed.
If people are struggling with repeated mistakes in code review, work with them to have them curate a list of their own common missteps. See this blog post on more tips for mentoring your intern through code review.
Invite them to meetings and make sure they feel comfortable participating and understand the processes we have.
It’s also useful to demonstrate how to do other non-technical skills: note taking in meetings/discussions if you’re having trouble remembering, using diagrams to help clarify system design and your understanding of it, being able to work on paper to get a rough acceptance criteria, etc. These are skills you’ve almost certainly earned through hard work that you can teach your interns, and it can make a big difference!
There’s obviously no one-size-fits-all answer to questions like, “What makes the best internship?” We also know there are a lot of things we can do better. Still, these general guidelines have been a valuable component of our program, and of supporting early career engineers to growing in their field.
If Asana sounds like the kind of place you’d like to be an intern, or an intern mentor– we’re hiring!