Amazon - Software Developer I
Here, I worked on worked on systems related to reimbursement and reconciliation for Fulfillment by Amazon, where I learned more about what the day-to-day looks like working on a software team.
Working alongside 2 senior engineers, my inital work was on developing and integrating new intelligence components in parts of FBA inventory systems in order to optimize usage of certain inventory pools across a variety of factors. I owned complete low-level design and implementation of an asynchronous message processor in Java. Notable works:
- I worked with an equivalent of AWS EventBridge Scheduler to implement a message re-processing system.
- Keeping dependency rate limits in mind, I designed the processor and re-processing system to apply smooth traffic patterns.
- I learned how to use AWS Lambda and SQS, and learned how to use AWS CloudFormation to provision infrastructure.
- I set up the AWS Virtual Private Cloud (VPC) for not only this service, but new neighboring services.
- I led operational readiness reviews. After documenting failure modes, I implemented recovery processes (ex. DLQ re-driver), created oncall runbooks, and created monitors and paging hooks.
- After leading performance testing, the system reguarly processed on the order of 1MM messages per day.
This taught me about what it takes to develop a microservice from the ground up, what a healthy operations culture looks like, as well as how to make low level design decisions.
I then I made integrations into other teams’ codebases for Java-based reimbursement systems. Notable works:
- I mitigated release risk using feature flags and incremental rollouts, targeting particular segments of inventory.
- I also refactored away 100s of lines of technical debt safely.