Inside Amazon’s Internship

Harsha Srikara
10 min readAug 17, 2023

--

A behind the scenes look — from an intern mentor

Internships provide meaningful value to students to gain insight into what a professional career in their industry looks like. They have the opportunity to develop projects that make a real impact and learn best practices from fellow colleagues. Often, students get paired up with a dedicated mentor to guide them through their internship. This past summer I had the opportunity to serve as an intern mentor at Amazon where I work as a software development engineer. Having previously interned in the summer of 2021, it gave me the perspective to see both sides of the internship experience.

Photo by John Schnobrich on Unsplash

Before the internship

The first step to a great internship begins before the intern has even joined the team.

At Amazon, we aim to provide interns with a dedicated project that they can own from start to end. As a team, we brainstorm to identify an appropriate project that meets the following requirements.

  • Ensure that the project has substantial design & architecture work

We want interns to do more than code. Each intern is presented with a project that entails varying degrees of design work. Interns will usually spend a few weeks performing research, learning background & presenting a design document that covers their proposal for how to develop the project.

  • Have plenty of opportunity to write code

We look to create projects where interns have to write ample code since it helps the team evaluate their technical skills, ability to address code reviews and more. Finding a balance between design/architecture work and developing code is key to a good project.

  • Have room for stretch goals

Different interns progress on their project at different paces. We want to ensure that there’s no ceiling on what they can accomplish within the span of their internship. This means that their project should have good stretch goals.

  • Not be too complex or large in scope

Internships are usually 12 weeks at Amazon and accounting for some buffer room the project design work + development should be feasible within this duration (roughly 10 weeks). Usually, large projects are split into V1, V2, etc. iterations so that each intern focuses on a manageable portion.

Photo by Jo Szczepanska on Unsplash

Beyond these considerations to maximize growth opportunities for the intern, we also aim to ensure that the project satisfies certain team-specific requirements

  • Ensure that the project is not business-critical and/or subject to an extrinsic deadline

We want to ensure that external work being completed by other members on the team / organization are not impacted by the intern project timeline. Different interns may scale back or extend the timeline to meet their project requirements and its important that there are minimal downstream dependencies which get affected.

  • Project should carry long term value to the team

Intern projects are not throwaway projects. We invest substantial effort into selecting a project such that after its completion it continues to provide value to the team. Some intern projects become very successful and warrant receiving additional development effort from team members and/or subsequent interns resulting in V2, V3, etc iterations.

Getting to a good start

The first few days can be quite overwhelming for an intern. To help onboard smoothly and avoid being flooded with too much information, we provide all new interns with a launch plan that guides them through their first day, first week & first month at the company. This launch plan incorporates a combination of resources aimed to get an intern to be aware of common tools used (Slack, Chime, etc), learn about Amazon culture & setup their work environment. The launch plan also provides a recommended list of individuals that the intern should try to meet in the first week to learn more about their team.

A key facet of an Amazon internship experience is establishing a strong support system of individuals that the intern can reach out to for help. These include the intern’s manager, an assigned mentor & an onboarding buddy. As an intern mentor, my responsibilities includes identifying an appropriate project, coordinating with the intern to establish a timeline, providing technical resources and support, being a key stakeholder for code/design reviews and helping the manager evaluate intern performance at the end of the internship.

Photo by NEXT Academy on Unsplash

The first few weeks of the internship are dedicated towards design work. This involves the intern learning about project requirements, doing a deep dive on various technical areas, prototyping different implementation strategies & understanding who the project stakeholders are. The research work culminates in the writing and presentation of a design document.

At Amazon, we emphasize the importance of having strong writing skills. Everyone (engineers, software managers, product managers, etc) is expected to be able to synthesize their ideas into a working document.

During this time, I helped support our intern by being present for brainstorming sessions, explaining new technical topics, discussing the tradeoffs between different architectures and more! There was significant growth opportunity for myself as a mentor too since technical areas of interest evolve fast and new design patterns / tools become available. Mentors are selected for their expertise in the area of development for an intern project — this means that I help serve as a key stakeholder to sign off on the design document submitted by the intern. I ensure that the design accounts for extensibility, project maintenance, long term usage, reliability, and more.

In this fast paced environment, interns typically go through large volumes of information, prototype on their projects & are frequently evaluating multiple options. To keep track of all their work, we encourage interns to maintain a document with weekly updates on their progress & open tickets for any work they do (including researching about technical topics). Although informal, these weekly updates can serve as a working document that gets built up over the course of the internship into a very detailed summary.

Supporting our interns

To align on different topics and best support the intern, its important to setup strong communication lines between them and the team. While it can vary from org to org, here’s how our team seeks to provide the best support to interns.

Photo by Christina @ wocintechchat.com on Unsplash
  • Weekly 1:1 with manager

All interns meet for a half hour sync with their manager each week to discuss their internship project, get settled into their team, identify career goals, and generally share how their experience is shaping up within Amazon. Managers help drive various evaluations throughout the internship and help the intern stay abreast with role expectations.

  • Weekly 1:1 with mentor

All interns will have a regularly scheduled meeting with their mentor in addition to the various ad-hoc huddles, meetings, discussions throughout a given week. This is an opportunity to do deep dives on technical topics, discuss project timeline, clear blockers and more. It’s also a way for interns to get exposure to understanding what the development process looks like at Amazon.

  • Daily Standup

Interns will present their daily progress updates either with their team or in a dedicated standup for interns in an org. This meeting is to give everyone exposure to learning about various other projects in development, share challenges faced, and get input from a broader audience.

  • Weekly demo / presentation

Once a week, interns are invited to join a broader knowledge share / open meeting to present intermediate progress updates to their team/org. This informal setting to present, collect input, discuss technical topics, debate UX choices (if applicable), etc is a good way for interns to get practice before doing their “official” final presentation.

Photo by Austin Distel on Unsplash

Beyond these meetings to help support interns, we also create recurring AMAs (ask-me-anything) with individuals in diverse roles across the organization. These include software managers, product managers, principle engineers, past interns that returned full-time, and more! Through these meetings, interns get to ask questions about how they can grow their skills, learn how the company operates and what collaboration between different roles look like.

Beginning to develop

After the design stage of the internship, interns begin the main chunk of development work on their project. For many students this is their first time developing a project in a professional capacity. This means that there are substantial differences in the development “process” relative to their experience at university. Notably, this includes a much higher bar for code quality. It doesn’t suffice for project work to only compile & work. Software is expected to be developed in small, modular chunks with a strong focus on maintainability / re-usability.

As code gets developed we invite interns to peer-review each other’s code reviews (an amazonian term for pull requests). This gives interns experience in addressing a variety of comments and learning to give feedback on other’s code. One area that we’ve seen all interns greatly improve on is writing high quality commit messages. Version control & detailing what changes are made in iterative commits is oft ignored outside the industry. We mentor interns to grow from commit messages that look like “worked on code” to well documented multi-line messages that cover the problem faced, solution implemented, and how it was tested.

Photo by Mahesh Ranaweera on Unsplash

Around the time interns begin the development process is an important evaluation meeting called the midpoint review. This is a 3-way review between the manager, mentor & intern. This review serves two purposes.

Firstly, to review the project timeline. This helps us assess whether we are on track to complete the project requirements that were outlined in the design document or whether we need to adjust scope to ensure a high quality deliverable. Changing the scope of the project is not always a reflection of the intern’s performance. Sometimes the initial design can be overly ambitious or in the development / research process we may find external constraints that limit the project scope.

Secondly, we aim to provide feedback to the intern on how they are doing. To help guide this conversation we leverage Amazon’s leadership principles. We highlight areas that we’ve seen the intern perform well in & areas where there is additional room for improvement. This is coupled with examples for actions that they can take to continue growing. Most interns have plenty of opportunities to express behaviors that demonstrate principles like “Learn and be Curious”, “Dive Deep” and “Deliver Results”. These are some of the same principles that full-time employees are evaluated on and thus interns get a practical example of embodying those characteristics.

This review is not designed to be a single opportunity to cover the aforementioned topics. Interns will regularly be encouraged to share their perspective on project timeline, workload, etc during weekly 1:1s. Feedback is also peppered throughout the entire internship to help the intern have the best chance of success.

Graceful ending

At Amazon, we prioritize a well-rounded deliverable. As interns come into the last few weeks of their internship, their focus will shift from writing new features to working on testing / documentation. This means that the project should support robust test cases (or include a test plan strategy), be well documented (in the code and through external wikis) and have a roadmap for any steps that need to be worked on after the intern leaves.

As a mentor, I work closely with the intern to identify what type of testing is feasible to complete within the internship timeline. This includes unit tests and some level of integration / end-to-end testing. While usually out of the scope, interns are also encouraged to think about additional testing (eg. load, stress, latency, etc tests). If the project already has CI infrastructure associated with it, interns can learn about pipeline automation for their test cases.

Documentation is the final component of delivering a complete project. This includes separate wikis created for project users and future developers, README files for packages, and detailed commit messages. When assessing the intern, we also take into consideration other work product including tickets, weekly update wikis and their design document. All put together many interns will likely have equal amounts of code and documentation written.

Photo by Sigmund on Unsplash

Interns will have a final presentation usually in their last week. This is where they get to show off all the work they’ve completed over the summer to their organization. As they take the stage, interns will walk through the problem faced, the solution they designed, how it evolved / changed since their design document presentation & finally do a demo.

In parallel, interns undergo their final evaluation in the last week. This is similar to the midpoint evaluation conducted but includes an external 3rd party known as the bar-raiser (sometimes filled in by the intern’s skip-manager). The intern’s manager & mentor jointly contribute towards submitting all work product completed over the summer along with their individual assessments of the intern’s performance. This final evaluation looks to see whether by the time the intern rejoins the team they would be able to demonstrate the Amazon leadership principles as defined by new grad role guidelines.

Final thoughts

I thoroughly enjoyed my experience in being an intern mentor. It was an equally enriching two way street of learning. I was able to push the boundaries of my own technical experience by delving together with my intern on latest trends and new project architectures. I look forward to the opportunity to be an intern mentor again in the future. For students reading this, I encourage you to explore the various internship opportunities available — and reach out to me to learn more about how you can apply to one at Amazon!

Amazon Logo

--

--