Payroll Technology at Amazon is all about enabling our business to perform at scale as efficiently as possible with no defects. As Amazon's workforce grows, both in size and geography, Amazon's payroll operations become increasingly complex, and our customers are asked to do more with less. Process can only get them so far, and that's where we come in with technology solutions to integrate and automate systems, detect defects before payment, and provide insights.
As an SDE on our team, you will be responsible for leading the architecture, design, development and launch of some of the core product features. You will have significant influence on our overall strategy by helping define these product features, drive the system architecture, and spearhead the best practices to delivery high quality products.
The ideal candidate is clearly passionate about new opportunities and has a demonstrated track record of success in delivering new features and products. A commitment to team work, hustle, and strong communication skills (to both business and technical partners) are absolute requirements. You will tackle large complex projects, massive data volume + complex business rules in a highly distributed and service-oriented architecture. create reliable, scalable, secure products for our customers in a hyper-growth environment where priorities shift fast
This position requires that you are a significant and autonomous contributor. Your work is consistently high quality. You solve complex problems, applying appropriate technologies and best practices. Your focus is on designing, developing and effectively applying automated solutions that test major portions of software (e.g., significant component, set of features, mid-size application, service, etc.). You prevent and find defects early. You apply software testing techniques, such as equivalence class partitioning, boundary value testing, etc. You build complete test and/or measurement solutions (e.g., performance, load, scalability, usability, etc.) You use data from testing, deployment, and production to measure quality and provide actionable improvement to the product. You write code that an SDE unfamiliar with the system can understand. You are proficient in a broad range of design approaches and know when it is appropriate to make trade-offs. Your solutions are pragmatic. You do things with the proper level of complexity the first time (or at least minimize incidental complexity). You consider the legacy of the code you produce, limiting the use of short-term workarounds. You create flexible software without over-engineering. You re-use where possible, while being judicious about introducing dependencies. You are efficient with resource usage (e.g., designing to avoid impacting the system under test.)
• 2+ years of non-internship professional software development experience
• 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.
• Bachelor's degree in computer science or a related field
• At least 5+ years work experience in a related field
• Demonstrated proficiency with Java, C++, or similar modern programming languages
• Solid expertise in data structures and algorithms
• Ability to design scalable, reliable, maintainable solutions with very high availability.
• Experience with relational and non-relational databases such as Oracle, SQL, Mongo DB, DynamoDB etc.
• Obsession with quality, operational excellence, and customer experience
• Strong problem solving and analytical abilities
• Strong verbal and written communication skills and an ability to work in a team environment
• Experience and willingness to mentor more junior engineers and help them develop their skills and leadership abilities
• Experience building complex software systems that have been successfully delivered to customer
• Experience with AWS technologies.
• Domain expertise in Payroll.
• Strong object-oriented design and coding skills
• Experience with distributed (multi-tiered) systems, algorithms, and databases
• Ability to effectively articulate technical challenges and solution.
• Ability to think abstractly and deal well with ambiguous/undefined problems
• Experience designing, building and deploying scalable, highly-available systems
• Strong communication skills with diverse customers and audiences, across multiple disciplines and teams