Congratulations! After many applications and interviews, you’ve managed to land a software engineering internship.
Now what? After focusing all of your efforts on passing the interview, you may feel a bit lost on what you should be doing during the actual internship.
Following a successful internship at Airbnb and Zillow, I have created a set of guidelines to help you get as much of out of your internship as possible.
Even before starting your internship, there are a few things you can do to ensure you have a smooth start.
Before even looking into the company, make sure you know what your living arrangements will be, and have a good idea of how you are going to make it to the office. Once you start your internship, you don’t want to be spending your time worrying about finding a place to live, or your commute. Many companies will help you find a place to live and give info on the commute before the internship begins. Figuring out these things before starting will eliminate a lot of stress and help you focus on your internship work.
If you don’t already know what the company specifically works on, find out! Being familiar with the business problems that your company faces will make it easier to understand the technical systems that can solve them.
Beyond learning about the company in general, try to learn about the individual teams within the engineering department and find out what types of projects are available to work on. If you have a good idea of what type of work is available, you can request to work on a project that intersects with your personal interests. For example, if you want to do machine learning work, it helps to have a specific team or project of interest when requesting it.
You will most likely be assigned an intern manager to help you complete your work, guide you through company policies and technology, and evaluate your abilities and progress. This is usually a senior member of the team on which you’re be interning.
It’s important that you maintain a friendly, open relationship with your intern manager. Since they are your main contact throughout the internship, you want to make sure neither party feels uncomfortable communicating. Not only is your manager your main source of help, they are also your primary advocate during intern evaluation. Keeping clear, open lines of communication is essential to making good progress and showcasing your skills and personality.
Additionally, you should make sure you communicate your goals to your manager as soon as possible. These goals should reflect things such as your intended areas of focus (such as machine learning, or web development), and your goal for the internship (to learn, and/or to get a return offer). By telling your intern manager what you want out of the internship upfront, they can gear your project towards meeting your goals. For example, if your main goal is to get a return offer, they may choose to give you projects that are very likely to succeed and/or showcase your skills. On the other hand, if you want to focus on purely learning, they may instead give you a more experimental project in an area you’re less familiar with.
During your internship, you will be taking in a lot of new information. From the beginning, you will be on-boarded and given access to your company’s systems. You will have to ramp up quickly in order to begin working on your intern project. This means learning how all of the internal processes and technologies work, such as their version control and deployment processes. Beyond that, you will have to learn about, in detail, the specific projects that you’ll be working on.
In order to digest all this information, it’s essential you keep organized. Write down as much of it as possible. Keeping this information in a format that you understand will give you a great reference point when you inevitably forget some of it. If you don’t keep this information organized somewhere, you’ll have to repeatedly ask your intern manager the same questions, which reflects poorly on you and distracts them from their work.
The bulk of your evaluation will be based on your technical skills and how much work are you able to accomplish during your internship. So, it’s important that you set yourself up to be able to finish your assigned work and produce quality code.
When you first start working on your project everything is new and you’ll have a lot of questions. Your first instinct might be to just tough it out and keep staring at it until you figure it out on your own. However, this is the wrong attitude to take, as you end up wasting a lot of time, and probably won’t be able to figure it out in the end.
Instead, after trying for a short amount of time (around 30 minutes), you should ask someone on your team for help. This gives you time to build a basic understanding of the problem without wasting lots of time. Your intern manager would prefer you ask for help early and move past the problem, rather than wasting an entire day staring at your screen. However, be sure to ask your questions intelligently — tell them what you’ve already tried, what worked, and what didn’t work. In addition, once you get an answer, make a note of it somewhere, so you have it for future reference.
Becoming comfortable with your development tools is a great way to increase your productivity. Investing your time in learning your IDE’s keyboard shortcuts and customizing your terminal settings may not seem immediately important, but in the long-run, these will greatly increase your development speed. It may not seem important to learn something that only saves you a few minutes, but what if this few-minutes hassle is repeated several times a day? You’re better off learning how to resolve it at the beginning of your internship.
As an intern, you might feel like your skills are not comparable to full-time engineers. As a result, you may feel like you should not be voicing your opinions or taking responsibility for your work.
This is a common misconception. Most interns are at the skill level of a junior engineer, if not higher.
When working on your project and talking to others on your team, do not be afraid to contribute to discussions and voice your concerns if you have something valuable to say. On the other hand, if you make a mistake or something is broken, it’s your responsibility to figure out how to resolve it. Don’t just sit back and wait for your manager or someone else to fix it for you.
Being an intern is about showing the company that you have the skills to work as a full-time employee. Taking responsibility for your work — both the good and the bad aspects of it — is the way to demonstrate this.
At some companies, you may have weekly or bi-weekly meetings with your intern manager where they give you feedback and let you know if you’re on track to meet your goals. If you are not at one of those companies, you need to explicitly ask for feedback. Ask your manager if they are willing to set up a recurring meeting in which they can give you feedback and steer you in the right direction.
When you receive feedback, it will probably be a mixture of positive and negative. Don’t be discouraged when your intern manager tells you what you need to improve on. You’re not expected to be perfect! Instead, your manager is simply giving you ways to improve — this does not imply that you are currently in a bad spot. There is always something that you can improve on, even if you are meeting your internship goals.
Beyond the technical aspect of the internship, it’s important to be aware of the social aspects. Taking advantage of events offered by your company and socializing with other employees will help you learn new skills and expand your network.
Talking to other interns gives you the opportunity to learn about other schools, other positions within your company, and past companies they previously interned with. In general, this is a great way to quickly expand your network and make a lot of new friends. Most of the interns won’t know many of the other interns coming in — if any. Everyone will be very open to making new friends. In a few years, once they’re working full-time, these interns will be spread out throughout many companies, and you’ll have connections with many companies for potential referrals.
In addition to connecting with other interns, you should also connect with full-timers for similar reasons. Full-time employees have the added benefit of being able to give you insight into the company since they have worked there longer than you.
Getting to know full-timers will give you opportunities to learn from their technical experience and familiarize yourself with other aspects of your company’s technical work. They might also be able to put in a good word for you during intern reviews. Many companies allow you to be reviewed by people who are not your intern manager or teammates.
Companies often hold social events, such as hackathons and workshops, throughout the summer. You can meet people at these events that you otherwise would not have met, and learn skills that you would not have picked up by working on your intern project. They’re a great way to broaden your horizons and try something new during downtime at work. However, don’t spend all your time at these events — you still need to work on your designated project!