For my capstone, I joined Amazon as a software development engineer intern. The team I was on was part of the Amazon Web Services Elastic Compute Cloud (EC2) Control Plane. My team was the EC2 Cell Platform team, and one of their responsibilities was provisioning new cells for EC2. Cells, simply put, are a way to increase the scalability of EC2 and reduce the blast radius of outages.
The process that my team used to provision cells involved using a command-line interface (CLI) tool to generate new cell data, then submit a code review (CR) to have some guarantee the data was accurate, and then use another CLI tool to add the new cell to production. This approach was not ideal because a mistake could sneak through the code review process and be pushed to production. My intern project was to create a web frontend that would generate cell data through a simple form, allowing a one-click process to provision new cells.
In order to create a product that would satisfy all the requirements of my team, I met with multiple team members to get an idea of what they were looking for. At Amazon there is a big focus on taking ownership of your project, so when team members had conflicting ideas of what they wanted, it was up to me to decide what would be best for my project.
My team had an agile workflow. Every day we would meet for standup to discuss what we have been working on, and what blockers we had. A sprint lasted two weeks, and at the end of every sprint we would meet for a demo session where we had an opportunity to show what we had been working on and to get feedback. I used this opportunity every sprint to see if my project was on the right track.
There were multiple times during my internship that my manager was out sick. During these times, I took charge and led our team through daily standup, as well as our sprint retro and demo session.
In order to develop my project, I had to learn full stack development. I wrote a React frontend, a Kotlin backend that ran on AWS Lambda, and I added functionality to a database that was powered by AWS DynamoDB.
This experience at Amazon taught me the skills I need to become a software engineer. I learned how agile development is done at a real tech company, and I was able to explore technologies that my classes at UW Bothell did not cover.
Contact: LinkedIn