Amazon Selling Partner Services team drives the Selling On Amazon business and develops solutions that enable millions of sellers around the world to sell on Amazon's Marketplaces. More than half of shipments for Amazon customers are generated from this business. The team is focused on building a technology platform that will support the explosive business growth in existing markets, streamline the business for Amazon and the Selling partners and launch business in new markets and establish a fair marketplace.
Our team is seeking Senior engineers with broad technical skills to help us optimize how we synthesize massive amounts of data and complex business rules into mission critical financial information. As a member of this team you will employ object oriented techniques in Java, and DynamoB, PostGres and ElasticSearch skills to help us support Amazon's next generation of selling partner services. Along the way you'll gain and leverage a unique understanding of how Amazon.com works; from the numerous software systems that comprise the website's back-end, to the details of our business model, and the relationships we're establishing with an ever-growing network of selling partners who depend on Amazon.com to run their businesses.
The ideal candidate will draw upon exemplary analytical, critical thinking, and problem solving skills, and a passion for maintaining highly reliable, distributed systems which operate 24/7/365. Successful members of this team collaborate effectively with internal end-users, aggressive cross-functional software development teams, and technical support/sustaining engineering teams to solve problems and deliver successfully against high operational standards of system availability and reliability. We look for engineers who are excellent communicators, self-motivated, flexible, hardworking, and who like to have fun!
Participate in the design, development, implementation, testing and documentation of large-scale, multi-tiered, distributed software applications, tools, systems and services using [Java, Object Oriented Design and Distributed Programming]. Translate functional requirements into robust, scalable, supportable solutions that work well within the overall system architecture. Participate in the full development cycle, end-to-end, from design, implementation, and testing to documentation, delivery and maintenance. Produce comprehensive, usable software documentation. Evaluate and make decisions around the use of new or existing software products and tools. Mentor junior development engineers.BASIC QUALIFICATIONS
- Programming experience with at least one modern language such as Java, C++, or C# including object-oriented design
- 1+ years of experience contributing to the architecture and design (architecture, design patterns, reliability and scaling) of new and current systems.
- 2+ years of non-internship professional software development experience
Master's degree in Computer Science, Computer or Electrical Engineer, Mathematics, or a related field plus at least three year of experience in the job offered or related occupations of Software Engineer, Software Developer, or a related occupation. Employer will accept a Bachelor's degree and seven years of experience in the job offered or a related occupation as equivalent. Experience in the job offered or related occupation must involve designing and developing large-scale, multi-tiered, distributed software applications, tools, systems and services using Java, Object Oriented Design and Distributed Programming].
- 5+ years of hands-on experience in writing complex, highly-optimized queries across large data sets.
- 5+ years of experience in scripting languages like Python etc.
- Demonstrated strength in data modeling, ETL development, and Data warehousing. Data Warehousing
- Experience with Redshift, Oracle, NoSQL etc.
- Experience with AWS services including S3, Redshift, EMR, Kinesis and RDS.
- Experience with Big Data Technologies (Hadoop, Hive, Hbase, Pig, Spark, etc.)
- Experience in working and delivering end-to-end projects independently.
- Knowledge of distributed systems as it pertains to data storage and computing.
Solid understanding of Object-Oriented design and concepts
Experience developing software in a Unix/Linux environment
Excellent communication and analytical skills
Software and Programming