Amazon Software Development Engineer Internship (Summer 2022)
--
This summer, I interned as a Software Development Engineer (SDE) at Amazon in Vancouver. My team was part of Amazon’s Delivery Experience organization, and I worked on a project to automate calculating and retrieving information for one of the team’s operation metrics. The internship was a great experience–I learned a lot about building software, developed my technical skills, and met amazing people and lifelong friends! I wanted to document and share my experience because when I was preparing for internships, other people’s blog posts were helpful for me. I hope this can be the same for others!


Timeline/structure
The internship timeline/structure consisted of onboarding, designing my project, implementing my project, midpoint review, final presentation, final review, and creating transition documentation.
On the first day, I received an onboarding plan which included videos and readings about Amazon’s culture and the internship program, introductory tasks (such as setting up meetings with various team members), and SDE bootcamp. I found the onboarding plan helpful for getting oriented to the work that my team does and better understanding what my internship would look like. The SDE bootcamp was helpful for learning about the company’s workflow. It included small tasks such as debugging code and submitting a code review (CR) through the company’s internal CR platform.
I really appreciated the opportunity to design before building my project. This is when I learned many concepts that I will take forward and apply in my future software work. My mentor gave me a high level design for my project which outlined data sources (e.g., APIs, data table interfaces) and a general sequence of events. It was my responsibility to write the low level design (LLD). To write my LLD, I consulted resources such as other LLD documents, consulted my mentor, and played around with various APIs and tools in order to verify if parts of the design would work as planned. I had two team LLD review meetings. In the first one, I received a lot of feedback ranging from prompts for better design choices to ideas to improve my technical document. I was challenged to think more about how I could make my design more future-proofed, scalable, and reusable. To do this, we discussed encapsulation, abstraction, and creating/using internal data models to ensure consistency across various data sources (i.e., manipulating all data to populate a consistent internal data model). For my second team review, I updated my LLD to include these concepts (i.e., include more encapsulation, more abstraction, and internal data models). My second team LLD review allowed me to show the team how I incorporated their feedback and demonstrate improvement.
I implemented the automation tool component by component. When I completed a component, I submitted a CR for it and would get feedback accordingly. During this time, my mentor coached me through better version control strategies, using libraries where possible, better implementation ideas, and unit testing. Amazon’s emphasis on testing code was eye-opening for me. The internal CR tool runs unit tests to verify if all your code is tested. If the testing coverage (i.e., lines of code that are tested) do not meet a minimum percentage–my required coverage was 90% minimum–the CR testing requirement does not pass. This was good for encouraging me to define my code’s behavior more holistically.
During the midpoint review, I received feedback on the first half of the internship and how I could do better during the second half. This ensured that everyone (myself, my mentor, and my manager) was aligned on my performance and that we were all on the same page about the project’s progress. I prepared for my midpoint by writing down updates on my project (e.g., what components have been completed up to this point and the plan forward) and writing down which Amazon leadership principles I believed I was demonstrating and which I could improve on.
At the end of the internship, interns showcase their project in a final presentation. I presented three times. The first time was at an event that I helped organize and run. It was a presentation event for women interns to share their work and get feedback from people outside their team. I was inspired to help organize this event after another intern organized one in July before her last day, and asked if I would be interested in taking over for August. The second presentation I did was for my team and the third was for my organization. I spoke about how my tool was built and demoed it. I also used the final presentation as a chance to speak about how my project could be adopted by other teams in Amazon.
My final review meeting happened on my last day. Before the meeting, I filled out a self-evaluation form where I reflected on my performance and demonstration of Amazon’s leadership principles. During the meeting, I received final feedback on my overall performance throughout the internship.
My internship ended with creating transition documentation. I wrote out details about how the tool works, where to set up authentication credentials, and the next steps for completing outstanding tasks (e.g., deleting Redshift clusters that were no longer needed).
Tools and technologies that I learned
There were many opportunities to learn various tools and technologies. Through my project, I worked with Python, internal APIs, internal tools such as a credential manager, AWS Redshift, and SQL! There were also workshops and training available to learn other tools for people that were interested! Every project was different, and other friends worked with other languages and tools (e.g., frontend frameworks such as Angular/React and other AWS tools such as S3 buckets)!
People
The best part of the internship were the people that I met. From my team, to other teams, to the other interns, the energy and excitement people had always made me feel excited about building and learning! My mentor was amazing! I met with him daily to discuss my project and he coached me on improving my technical and professional (e.g., communication) skills. In addition to a mentor, Amazon also assigns you an onboarding buddy. My onboarding buddy was awesome and very helpful. I met with him weekly and he supported me in overcoming blockers and also coached me with improving my demonstration of Amazon’s leadership principles! My manager was another key person to my internship. He gave me food for thought with regards to my project, answered career questions, and encouraged me to join opportunities such as the Amazon Women in Engineering AWEsome 2022 conference watch party! There, I connected with more really awesome women at Amazon! My team was incredible this summer! Everyone was so welcoming, supported me, and challenged me to think bigger. We did socials and met weekly on Fridays to talk about non-work related topics. My team also did socials with other teams in our organization. Through these, I met more people and learned about work that other teams were doing! The other interns this summer were the other people that made this summer so wonderful! I enjoyed working alongside other interns in my organization in the office and grabbing lunch all together! I also attended events such as board games night where I befriended interns at the other Amazon office buildings!


Social culture
I was surprised by Amazon’s social culture that made the company feel more like a community than a company! My skip manager hosted a BBQ for the organization when some of our team members from the Seattle office came to Vancouver, there was a biweekly social on Thursdays on my office floor, and my team had lunch socials! In addition to this, I saw Slack channels for various activities that anyone could join. For example, there was a soccer channel that some of my friends joined to meet weekly to play soccer with other employees!
Other fun memories
This summer was also my first time fully living on my own (i.e., first time having to fully take care of myself)! It was an amazing experience of growing and becoming more independent! I learned to cook and set routines for myself! I also spent a lot of time with friends from home who were also interning out on the west coast and made some new lifelong friends! We tried the west coast’s delicious seafood, did many hikes and I did the longest hike that I have ever done (it was Panorama Ridge and we went from 8am to 9:30pm), visited Seattle and Amazon’s Day 1 office, biked the Stanley Park seawall, and explored all the other adventures that we could! I also celebrated my 22nd birthday with dinner and a karaoke night downtown, with friends from home and new friends who could make it out!


This was a summer of building my software skills and creating memories with people I love! Thank you to my friends for some of the best few months!