Amazon SDE Intern | Seattle, WA | June - September 2023
Summary of achievements
- Enhanced core routing backend of Amazon internal Case Management System platform for Seller Support
- Authored detailed, team-reviewed design document outlining problem, solution, design decisions, and implementation
- Pioneered support for routing tickets to the correct Agent based on dynamic Intelligent routing attributes
- Streamlined Agent workflow by eliminating usage of external tool for assigning tickets, boosting productivity by 50%
- Utilized AWS Lambda to invoke routing process upon observed changes in configured ticket folder
Technologies used
- Java
- JavaScript
- Spring Boot
- AWS Lambda
- AWS DynamoDB
- AWS Identity and Access Management (IAM)
- Git
Challenges faced
Initial challenges
The first challenge I faced was simply getting used to working at a large tech company like Amazon. Being my first internship, it took me a bit to get used
to the day-to-day workflow. The second challenge I faced was understanding the base goals of my project. Since it required me to interact
with so many different services, each with their different purposes, I spent quite a while reading wikis and documentation in my first few weeks.
The third challenge I faced was regarding my choice of development laptop. Since my entire team used Macbooks for their work and
I had chosen a Windows laptop, I faced a whole array of setup issues which I needed to fix independently.
Techincal challenges
- Challenge: The first technical challenge I faced was getting one of the servies I was modifying to build after introducing a change
to one of the packages. Without the change, the service would build, but with it, the build would break. I spent a lot of time
looking at wikis, similar scenarios other Amazonians had dealt with, and asking questions to my mentor and other teammates
Solution: After talking to another intern who had a similar issue, I first realized that there was an issue with the
package versions I was using. After completely restarting my workspace from scratch, the fix for the issue was to pull in
a problematic package locally to prevent conflicting builds.
- Challenge: The second technical challenge was having 2 or more locally-running services to call each other. These services
are configured to call the beta versions of the services they are dependent on, not locally-running instances. Normally,
it would be a simple configuration change, but since one of the services was running in a Docker container, configuring
the correct host/port became more diffucult.
Solution: The service that was running in the Docker container needed to use the static IP address of the development
machine the other service was running on when making its service calls. Using the common host name and relying on DNS resolution
did not work due to dynamic IP addressing.
View from the roof of my building