Job Information
Amazon Software Development Engineer , In-Memory Distributed Systems in Vancouver, British Columbia
Description
Our software developers build the next generation technologies that change how millions of AWS customers connect, and interact with AWS services ecosystem. We use ideas from every facet of computer science including distributed computing, large-scale design, big and real-time data processing, data storage, service oriented architecture, networking, machine learning, and artificial intelligence. We are looking for highly-motivated and passionate engineers to build our next generation high performance in-memory distributed data storage platform to solve real-time query, transaction and analytics processing for large scale data applications.
If you have ever pondered about CAP theorem, consistent hashing, multi-master replication, merkle trees, leader election or Paxos Algorithm, gossip protocols, tiered storage, this is an opportunity to get your hands dirty with a real-world solution implementing these distributed system concepts. Come work with the folks who are not only building a highly-available and scalable in-memory distributed service but also influencing the direction of No SQL systems throughout the industry (read our acclaimed Dynamo paper here: http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf).
As an engineer in our in-memory computing platform team, you will build our next-generation in-memory NoSQL database platform that allows developers to build highly available, scalable and high performance applications. We are working to bring some of the assets of RDBMS systems such as SQL and transactions to the rapidly growing world of NoSQL database systems. The software services have unprecedented scale and availability requirements. You will lead the software development of large-scale distributed in-memory storage platform; in Java, C/C++ and other languages using open source technologies like Redis, Memcached, and Amazon proprietary technologies. This includes software applications dealing with HTTP/REST services, asynchronous messaging, event-based technologies, real-time failure detection system, horizontal and vertical scaling, management and monitoring plane workflows, auto-remediation, fault tolerance, backup and restore technologies, disaster recovery and prevention. As a member of the In-Memory Storage Platform team, you will also get to work with exceptional team members and be directly involved in growing and mentoring junior engineers on the team.
We are building a high performance, low-latency database where caching and data storage are managed by the single system to support the realm of real-time applications like IoT or mobile apps. We are extending our service from just being an in-memory data store cache, but also provide durable data storage without compromising latency. In addition, we are building a new highly scalable and available management plane system using micro-services architecture and a real-time failure detection and auto-remediation system that can detect node failures in our large distributed cluster, initiate and remediate failed nodes within seconds.
Our charter is ElastiCache, Elasticache is an AWS service that enables users to deploy, manage and massively scale in-memory distributed data stores. Customers include many of the world's fastest growing start-ups, using the service to build low latency, high throughput data layer and improve performance of applications using caching. Amazon ElastiCache helps developers turbo-charge their application performance and simplifies management of Memcached and Redis data stores in the cloud. We heavily use open-source software systems in providing a world-class experience to our customers.
Key job responsibilities
3+ years of non-internship professional software development experience
2+ years of non-internship design or architecture (design patterns, reliability and scaling) of new and existing systems experience
Experience programming with at least one software programming language
About the team
Inclusive Team Culture
Here at AWS, we embrace our differences. We are committed to furthering our culture of inclusion. We have ten employeeled affinity groups, reaching 40,000 employees in over 190 chapters globally. We have innovative benefit offerings, and host annual and ongoing learning experiences, including our Conversations on Race and Ethnicity (CORE) and AmazeCon (gender diversity) conferences. Amazon’s culture of inclusion is reinforced within our 14 Leadership Principles, which remind team members to seek diverse perspectives, learn and be curious, and earn trust.
Work/Life Balance
Our team puts a high value on work-live balance. It isn’t about how many hours you spend at home or at work; it’s about the flow you establish that brings energy to both parts of your life. We believe striking the right balance between your personal and professional life is critical to life-long happiness and fulfillment. We offer flexibility in working hours and encourage you to find your own balance between your work and personal lives.
This position involves on-call responsibilities, typically for one week every two months. We don’t like getting paged in the middle of the night or on the weekend, so we work to ensure that our systems are fault tolerant. When we do get paged, we work together to resolve the root cause so that we don’t get paged for the same issue twice.
Mentorship & Career Growth
Our team is dedicated to supporting new members. We have a broad mix of experience levels and tenures, and we’re building an environment that celebrates knowledge sharing and mentorship. Our senior members enjoy one-on-one mentoring and thorough, but kind, code reviews. We care about your career growth and strive to assign projects based on what will help each team member develop into a better-rounded engineer and enable them to take on more complex tasks in the future.
Basic Qualifications
3+ years of non-internship professional software development experience
2+ years of non-internship design or architecture (design patterns, reliability and scaling) of new and existing systems experience
Experience programming with at least one software programming language
Preferred Qualifications
3+ years of full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations experience
Bachelor's degree in computer science or equivalent
Amazon is committed to a diverse and inclusive workplace. Amazon is an equal opportunity employer and does not discriminate on the basis of race, national origin, gender, gender identity, sexual orientation, disability, age, or other legally protected status. If you would like to request an accommodation, please notify your Recruiter.
The base salary for this position ranges from $114,800/year up to $191,800/year. Salary is based on a number of factors and may vary depending on job-related knowledge, skills, and experience. Amazon is a total compensation company. Dependent on the position offered, equity, sign-on payments, and other forms of compensation may be provided as part of a total compensation package, in addition to a full range of medical, financial, and/or other benefits. Applicants should apply via our internal or external career site.
Amazon
-
- Amazon Jobs