10 - Survive the Internship and get the Offer

Authors: Stefano Ivancich

Receiving a return offer from an internship is not to be taken for granted, especially in big tech or during unfavorable job market conditions.

There are a lot of things that can go wrong, outside of your control, the following are some of the issues encountered by student in our community:

  • If your internship is during the summer, expect that a lot of colleagues and teams you will be collaborating with to be on vacation.
  • Usually in December and January there could be a Code freeze in which you are not able to deploy your code, and therefore it will be difficult to show your impact on the performance review if you did not deploy anything.
  • The project assigned to you is useless and not aligned with what you will be assessed on the final performance review.
    • This is something very common that happened to students in our community. Usually interns are not given a project that is critical or that is expected to be finished. So, a lot of teams have a list of ideas to give to interns, but those are not well thought out ideas. It happened that after a couple of weeks in the initial design of the project, our students found that the project cannot be done or no one wants that feature. So, you wasted several weeks and your team might not have another meaningful project to give you.
  • When you start your mentor and/or manager are OOO for weeks and no one knows that you were arriving. This happens because people schedule vacations months before, while HR might assign you to your team last minute.
  • The Mentor assigned to you is not following you.
    • This is another thing that happened to several of our students. Apparently employees propose themselves as Mentors just to bump the internal CV and do not care about the intern performance.
  • Your manager/mentor is not following you because he is too busy.
  • Team members are too busy to help you.
  • You have to interact with a team that is in another timezone and doesn’t care less for a project of an intern (because the project given to interns are usually not critical and therefore not very important for performance review)

This guide is aimed to set you up for success. You will find tricks to avoid and overcome situations like the one described.

The biggest difference between a full time employee and intern

A full time employee has an entire year to accomplish something to put in the performance review, you only have a few months. Actually, you have less time than you think:

  • First couple of weeks are for onboarding, maybe even the first month you’ll be working on onboarding tasks.
  • Last 1-2 weeks are for offboarding and performance evaluation.
  • You have to ask teammates for formal peer review feedback 2 weeks before your final evaluation. Because it requires time and effort to write a feedback, they might be busy, they might be OOO, your manager needs time to prepare a solid package for your final evaluation, …

So, if you have a 3 month internship, you actually have about 1.5-2 months to accomplish something meaningful.

If a full time employee for 2 months do not write code or do not write design documents or do not do some stuff that is required in performance review, because of the unlucky issues listed above (other team is not collaborative, project get canceled, …), he will still have other 10 months to accomplish something, this is not to much of a problem.

But, if you, as an intern, do not ship something meaningful for 2 months (project gets canceled, your team is restructured, …) it’s very risky for your return offer. So, you have to be proactive to fight the unlikeliness.

What to do before the internship

  • Organize your move to the city months ahead: currently main European cities have a housing shortage and this causes several other problems. For example in Berlin you have to call 3 months before having an appointment to register your address to get the TaxId because every spot is taken.
  • Move into the city few days before the start (~1 week): because you will have a very small amount of time during the internship. During this week you have to get into your apartment, do local bureaucracy, rent a bike, bus pass, train pass, health insurance, … Therefore, it’s important to do these tasks before internship start, so during the internship you have time to focus only on work.
  • Talk with your mentor and manager weeks/months before: since they have to create a project for you, if you have something specific you want to work on, they might help you. Ask them how your first days will look, where the office location is (the office might be in a different location than the legal location written in your contract), what you can do to prepare at best, …
  • Contact other interns that are starting with you: you might search an apartment together, they can be your first friends in the new city, exchange precious information during the internship, compare your experiences, …

💡 if you don’t use your time off they will pay you. Salary in main European cities (for big tech) is about 100€/day net.

Onboarding: What to do the first 1-2 weeks

Usually the first days you will spend time setting up your PC and doing some trainings. Try to have your PC, trainings and internal bureaucracy done within the first week.

Schedule a 30m 1o1 with every of your team members, present yourself and then ask them this:

  • What is your role?
  • How long have you been in your current role? What did you do prior to this role?
  • What projects are you working on now? Can you explain them to me? Can you give me the link to their documentation, design docs?
  • What do you see as the most important issues/projects that the team needs to address over the next quarter and year?
  • What do you see as the biggest challenges/issues I will face in my new role?
  • How do you think I can make the biggest impact in the short-term? Long-term?
  • How does my role impact you (and your team)? How do you envision my working with your team?
  • Are there other people you would recommend I meet with? Who and why, what should I ask them?
  • Are there documents, trainings, or other materials you would recommend I review?
  • Are you involved in other company activities? (e.g., as a bar raiser, mentor, affinity groups, women in tech, competitive programming, sports clubs, …)
  • What are the team, org and company slack channels I should join? What are they used for? (ask to insert you in it)
  • What meetings should I participate in? (Ask to insert you in)
  • During the meeting with other people this is what I understood about the product we are developing: explain … Is this correct?

While doing this take notes, and ask them for links, don’t make this just an informal chat, you are also trying to extract information from them.

Get familiar with the codebase, read your team docs

Look at your team members calendar, you might not be invited to important (or interesting) meetings.

Define clear what counts as a successful internship: define the metrics for the internship. Understand how the performance review works, and how you will be evaluated and when. Discuss this with your manager and mentor.

Socialize with other interns and team members.

Communication

General tips

  • Write a brag document listing your accomplishments: this is a good template Template Weekly Journal. This document is useful to track your progress and show it to your manager/mentor.
  • Pro actively send out the daily/weekly progress to your manager/mentor, especially at the beginning.
  • Over Communicate, if you are communicating too much they will tell you.
  • When you present yourself to others, tell them that you are an intern, otherwise people do not know.
  • As an intern no one will ever tell you “no”, take advantage of this but ask questions clearly, as we will explain in the section below.
  • Attend the events and meetings organized by HRs for interns. We know they can be very cringy and look like a waste of time, but it’s a good way to meet other interns (and extract information from them later).
  • Socialize: Invite other interns for lunch, afterhours, hangout, … Don’t worry if they tell you no, they are just a bunch of lonely lazy nerds in a new city, insist and eventually they will tell you yes and with some of them you will construct tactical relationships.
  • Be aware that in big tech most of the employees are too empathetic with interns, when you ask for feedback they will avoid giving you negative feedback, they will tell you “you are doing fine”, so you should ask for detailed feedback and often, until issues will emerge.
    • Every couple of weeks ask both your mentor and your manager the following: “How I’m doing relative to your expectation of where I should be at this point in the internship?”, show them what you have done.
    • Every 2 weeks might seem too frequent, but actually most of the time you might not have made much progress in 2 weeks, and some 1o1s with your manager and mentor might get canceled (they are busy, in vacation,…), so you will end up more realistically having feedback once a month.
    • Every now and then ask to team members specific feedbacks, for example: “how did I’ve handled this meeting, what could I’ve done better?

How to ask questions

Before asking questions in a slack channel, internal stack overflow or to someone, do this:

  • Find the solution yourself:
    • Search in the history of the channel you plan to post to.
    • Search the Web.
    • Read the documentation and FAQ
    • Try to inspect or experiment.
    • Read the source code, even of another team repository, even if it is not in your domain of knowledge.
  • Write down the list of questions while attempting the solution
  • Document the steps you have taken to solve the issue

When asking for help you need to be proactive, your team members do not know if you don’t know something, they might think that someone already told you that information. People are willing to give you their time if you approach them in the right way.

How to ask:

  • Hello, I have an issue with X.
  • Context: include information about a broader picture, what is your goal. add links.
  • I’ve tried to:
    • step 1…
  • “Would someone provide a pointer?”, “What is my example missing?”, and “Can someone please take a look?”

XY problem: is when you ask about your attempted solution instead of your actual problem, creating confusion. XY problem solution:

  • Always include information about a broader picture along with any attempted solution.
  • If someone asks for more information, do provide details.
  • If there are other solutions you’ve already ruled out, share why you’ve ruled them out. This gives more information about your requirements.

1o1 with Manager/Mentor

Keep a doc where you write down the topics you want to discuss and use it to write notes during the meeting. This is an example Template Manager 1o1 The meeting is your time, so you should lead and come prepared with topics to discuss.

How a good meeting should look like:

  • 25-45 min
  • Weekly, bi-weekly (at most). Recurring meeting scheduled in the calendar, not an ad-hoc. If you have a 5 min meeting every 2 weeks, this is very bad and should be a red flag.
  • Positive and constructive
  • Help your manager to help you.

Topics:

  • Share what you have done during this week and your wins, go through your brag document.
  • Issues / Questions of a project
  • Outcome and follow-up items from previous 1-on-1
  • Future projects
  • Internship/Career goals
  • Benchmark against growth milestones
  • Talk about awkward topics: I’m close to burnout, I don’t agree with the feedback I received, your compliment last week made my week much better, feelings… Remember that your manager is responsible for your wellbeing.

Productivity and Project management

Document very well what you are doing by creating documents, you will show them to your team members, mentor, manager and link them into the performance review. Example of a Task breakdown document for a project: Template Task Breakdown

General tips:

  • stay consistent, complete all the task quickly with good quality (get the shit done). If you can’t, communicate it with the manager. Especially at the end of the internship there is a lot of work to do.
  • be clear about the tasks you have to do.
  • write down the tasks that you have to do daily, estimate the time and timeblock them into your calendar.
  • Tasks that you can do in less than 5 min, do immediately
  • Eat the frog: do the most difficult thing at the beginning of the day.
  • Be aware of the avoidance bias
    • don’t be afraid to act
    • Bias for action
    • Remember company Principles
    • It is normal to feel like you are bothering your coworkers when asking questions. Learn ways to make sure you are being efficient with your questions.
  • When you feel down:
    • It is okay to feel overwhelmed!
    • Don’t quit.
    • Tell it to your manager/mentor: you are here to learn, a period of sadness will happen to everyone, you have the opportunity to experience it now in a controlled and safe environment (you won’t be fired, no family to feed, …). Talk with your manager and mentor to learn how to handle this situations.
  • Keep a good lifestyle. Some interns when living in a new city start partying every night and then do not perform well at work.
    • meditation/mindfulness
    • daily physical exercise
    • good diet
    • sleep at least 8h and go to sleep and wake up at the same time every day
    • do not be alone, socialize with people and have fun in your free time

Coding

You will be evaluated on several metrics during performance review, but as an intern the most important one is how much code you write and its quality.

How to write a good diff:

  • The goal is to get it reviewed fast and without comments.
  • Length: <75 lines of code should be the average. Try to stay within 250 loc.
  • Diff should do only one thing. If you are adding several changes, split them.
  • Summary: explain the context, what it does, what could be the problematic parts you are not sure about, attach links to design documents, diagrams, previous diffs. How you will monitor the deployment, how are you going to test it.