AWS Lambda's goal is nothing less than to simplify and improve the experience of computing in the cloud for every developer on the planet, from startups to the largest Fortune 100 companies. Serverless computing is rapidly changing how every company thinks about building and delivering software solutions, and Lambda is leading this industry wide effort.
Our team owns the software and services that enable Lambda to securely and efficiently execute customer provided code across tens of millions of containers using the AWS Firecracker microVM architecture. These containers are densely packed on EC2 instances and securely connected to other AWS services such as S3, DynamoDB, and Kinesis. Lightweight containers constantly shift resources between instances and handle trillions of transactions every day.
In this role, you will contribute to the multi-tier cache services behind Lambda's customer code execution service. These services are critical to maintaining high availability and low-latency targets for our customers. You will partner with peer engineering teams and our Research Science team and security professionals on everything from our future product roadmaps to day-to-day operational issues. You will tackle problems ranging from tuning the service's low-level Linux interface, to optimizing cache hit ratios across the distributed fleet, to driving higher availability targets. You will dig deep into customer data access patterns to determine eviction and prefetching policies to balance customer experience and fleet cost. You will get the opportunity to use modern programming languages like Rust, and cutting edge virtualization like Firecracker to push the boundaries of Serverless computing in the cloud.
Our team puts a high value on work-life balance. Most days, our entire team is co-located in the Seattle office, but we're also flexible when people occasionally need to work from home. We generally keep core in-office hours from 10am to 4pm.
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 team members. Our team has a broad mix of experience levels and Amazon tenures, and we're building an environment that celebrates knowledge sharing and mentorship. Our senior engineers truly enjoy mentoring more junior engineers and engineers from non-traditional backgrounds through one-on-one mentoring and thorough, but kind, code reviews.
We care about your career growth. We try to assign projects and tasks 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.
Inclusive Team Culture
Our team is intentional about attracting, developing, and retaining amazing talent from diverse backgrounds. Yes we do get to build a really cool service, but we also think a big reason for that is the inclusive and welcoming culture we try to cultivate every day.
We're looking for a new teammate who is enthusiastic, empathetic, curious, motivated, reliable, and able to work effectively with a diverse team of peers; someone who will help us amplify the positive & inclusive team culture we've been building
Job location is Seattle, WA. Relocation assistance available. For more information on Amazon Web Services, please visit http://aws.amazon.com
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, protected veteran status, disability, age, or other legally protected status. For individuals with disabilities who would like to request an accommodation, please visit https://www.amazon.jobs/en/disability/us.
• 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 Mathematics, Computer Science, or related field.
• Linux kernel and systems knowledge
• Prior experience in Rust is desirable, but not required