If you love building distributed systems to process big data in real time, love data mining and machine learning, and want to build systems to combine these at the Internet-scale, then we're looking for you.
The Inventory Management by Exception (IME) team develops statistical models and analytics to predict for and provide insight into Amazon.com's complex supply chain. As a software Engineer on the IME team, you will build large-scale distributed systems that use big data and machine learning to solve business problems. You will interact with researchers to implement cutting-edge algorithms.
Problems we solve include:
- How do you detect symptoms of a problem within Amazon’s highly automated ecosystem of service oriented supply chain optimization systems?
- Once you find a symptom, how do you diagnose or predict the root cause?
- How do you leverage other Amazon systems and data to produce more accurate diagnoses?
- Once a problem is diagnosed, what systems/processes/people should be involved to treat it?
- How do you do all of the above quickly, while working with petabytes of data each week?
You should be comfortable diving deep into technical architectures and requirements, be able to quickly identify solutions to challenges discovered during development, and ready to work with some of the latest cloud computing technology. Prior experience building stable, scalable, solutions is required. Prior experience with data mining, databases, or massively parallel systems is a plus. Successful candidates will thrive in fast-paced environments that leverage agile planning techniques, encourage and reward creative design, intelligent risk taking, and find innovative ways to leverage cutting edge technology.
Your responsibilities include:
- Design, develop, test, troubleshoot, debug, deploy, maintain, document and deliver large-scale, highly distributed, real-time and management systems that are core to effectively managing the supply chain business.
- Use Java, object-oriented (OO) design patterns, distributed AWS storage and processing technologies, and data modeling techniques.
- Gather and analyze business and functional requirements, and translate business requirements into technical design specifications.
- Serve as a key technical resource in the full development cycle.
- Produce comprehensive, usable software documentation.
- Recommend changes in development, maintenance and system standards.
- Work in an agile development environment, where you are always working on the most important stuff.
- Hire, coach, and mentor individuals.
We have a team culture that encourages innovation and expect developers and management alike to take a high level of ownership for the product vision, technical architecture and project delivery.