Do you want your work in front of millions of customers? Do you enjoy working on cutting-edge, massively scalable services technology in a fast-paced team environment? Do you love working on industry defining projects that move the needle? Come innovate with the Amazon Appstore team.
The Appstore team is looking for a passionate, results-oriented, and inventive Software Engineer. As SDE II, you will have technical ownership and you'll be responsible for Architecting cutting edge solutions for Appstore, developing and guiding other Engineers to deliver world class solutions.
Responsibilities include direct management of solution architecture, coding, HLD/LLD Documentation, process and quality of service improvements, and mentoring team members. Successful candidates will be strong Developers who can prioritize well, communicate clearly, and have a consistent track record of delivery. The Appstore business requires creative engineering balanced with high quality and customer focus.
· Help drive the architecture and technology choices that enable a world-class experience
· Utilize various metrics sources to deliver rapid iterations of software features
· Solve difficult problems with elegant and practical code
· Design solutions to solve complex problems.
· Raise the bar on quality, consistency, maintainability, efficiency, security and all the other things that make great software
· Be responsible for designing, developing and deploying medium to large sized projects
· Help define engineering best practices and provide technical mentorship to other members of the engineering team
· Participate as an engineering leader in the larger group of Amazon.com companies
· Be a champion for the user: Insist on the highest standards, create functional and engaging features, and ensure their needs always come first.
· Experience with Spring, MVC frameworks, REST/RPC API design and development
· Experience with Relational and No SQL Databases
· Experience with Big-data Analytics
· Practical experience writing large scale web applications including architectural decisions, language choices, frameworks and implementation
Ideal candidate profile
· 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.
· Ambiguity: Business and/or architectural strategy may not be defined. May not even know what the problem is before starting. Drives clarity. Delivers with complete independence.
· Scope of Influence: Broad cross-organizational business and/or technology influence. Aligns teams and organizations towards simple, coherent approaches. Actively mentors, performs Principal promo assessments.
· Communication: Manages meetings effectively. Puts the right people in the room. Drives business and technical discussions. Is clear and concise in both verbal and written communication (e.g., functional/technical specifications, PR/FAQ, status reports, narratives, OP1/OP2). Trusted to present design and program decisions to leaders up to 3 tiers above level. Higher levels require ability to communicate across an increasing diversity of areas (e.g., legal, regulatory, finance, PR, external industry groups).
· Technical: Drives large engineering efforts that solve significantly complex or endemic problems. Identifies risks/opportunities in technical strategies, architecture(s) and/or in engineering organization structure(s).
· Process Improvement: Creates and optimizes cross-organizational structures and mechanisms to ensure long-term success. Decomposes complex processes into simple, straightforward solutions.
· Impact: Owns large programs with significant complexity or that have broad cross-organizational, architectural, or global impact. Improves how organizations interact to achieve business and technology goals.
· Execution: Defines business and/or technical strategy. Accelerates progress by creating simple structures for team cohesion. Manages escalations (Is escalated to.)
· Knowledge/Judgment: Deep knowledge of core system technologies in program domain and/or broad understanding of company systems. Applies knowledge to invent, evolve, improve, simplify, etc.
Academics & Experience
· Bachelor’s degree in computer science (or related field) or equivalent industry experience
· 4+ years professional experience in software development
· Strong fundamentals in core Computer Science areas like Object Oriented Design, Data Structures and Algorithms
· Proficiency in at least one modern programming language such as C++, C#, Java, or Perl
· Familiarity with Linux