During Summer 2021, I interned at Amazon Web Services on the builder tools team. This team owns all code review software used by Amazon engineers, and the product I worked on was Amazon's internal version of GitHub. One of my main projects involved supporting voting on comments in code reviews. Below, you can see the results of my work and how I implemented it.
In order to implement this voting feature, the internal database store of code reviews needed to be updated.
Once the upvote button was clicked, the UI needed to receive this and send the user data to the middleware layer.
This layer unpacked the user info and sent this along with authentication credentials to the Ruby backend, where I
made calls to DynamoDB in order to store the voter information in the existing table for code reviews. In order to
create an efficient implemetation that calls the server-side as less as possible, I augmented the existing code review table
with a new column to store an array of upvoters, dynamically updating this attribute whenever an upvote or remove-upvote request
I also leveraged DynamoDB global secondary indices in order to map upvoters to the CR's they've upvoted, since this lookup would have taken a long time otherwise. This allows for extendability of my project to create useful dashboards so that a user can see all the CR's they've upvoted if that ever becomes a necessity.
Overall, I really enjoyed my full-stack project at Amazon during Summer 2021. My team was very welcoming, and I even got to visit Seattle for a couple weeks during the middle of my internship. When I was there, I had a blast! Below is a picture of me in front of the Seattle skyline with some of the friends I made when I was there:
Here's another image of a hike I went on with my mentors. The views around Seattle are truly unforgettable: