Full Job Description
2+ years of non-internship professional software development experienceProgramming experience with at least one modern language such as Java, C++, or C# including object-oriented design1+ 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 fieldAt least 2+ years of work experience in a related fieldDemonstrated proficiency with Java, C++, or similar modern programming languagesSolid expertise in data structures and algorithmsAbility 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 experienceStrong problem solving and analytical abilitiesStrong verbal and written communication skills and an ability to work in a team environment
Job summary
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.)
Key job responsibilities
1. Own design, development, unit test and integration test of features and modules.
2. Operational maintenance in production environment.
3. Code reviews, design reviews, HLD/LLD preparation.
4. Participate in requirements grooming sessions.
5. Suggest new ways to improve the customer experience or product.
6. Responsible for CI/CD pipelines and suggest ways to improve the code delivery process.
A day in the life
You are expected to do HLD/LLD of features, code them to Amazon standards, do code reviews and design reviews. Attend regular stand-up meetings and provide your updates. Keep an eye for opportunities to improve the product or user experience and suggest those enhancements. Participate in requirement grooming meetings to ensure the use cases we deliver are complete and functional. Based on rooster you will own production operational maintenance. You will respond to customer issues and monitor services for healthy execution.
Experience building complex software systems that have been successfully delivered to customerExperience with AWS technologies.Domain expertise in Payroll.Strong object-oriented design and coding skillsExperience with distributed (multi-tiered) systems, algorithms, and databasesAbility to effectively articulate technical challenges and solution.Ability to think abstractly and deal well with ambiguous/undefined problemsExperience designing, building and deploying scalable, highly-available systemsStrong communication skills with diverse customers and audiences, across multiple disciplines and teams