Software Development Engineer - EC2 Networking
About the Job
Imagine being part of a team working on fundamental building blocks of all customers of EC2. We are excited to have you help us build the next generation of features for managing IP space and connecting to EC2 Instances on the Amazon Web Services (AWS) EC2 Networking, IP Management & Instance Connectivity team in Northern Virginia!
We build software core to the EC2 network virtualization systems supporting the massive AWS cloud. Our area of influence continues to grow as our engineers grow. Currently, we are tackling new features in IP Management (how AWS manages its IPv4 and IPv6 space) and Connectivity (how customers connect and communicate with their EC2 instances), with goals of improving the overall health and safety of the entire internet.
On any given day we may use Kotlin, Java, DynamoDB, AWS Lambda, ECS, S3, SQS, SNS, CloudFormation, and a set of internal automation tools. We choose the right tool for the job, so this list often varies slightly as we tackle each customer problem. Engineers are not expected to have prior experience in these technologies, but they are expected to be excited to learn about them.
To learn more about EC2, check us out here: https://aws.amazon.com/ec2.
Here are some reasons you should come have a chat and learn more:
· Our services are core to all modern Internet businesses.
· We own the complete software development lifecycle; defining, prioritizing, designing, building, and testing new features.
· Our AWS business is global; customers and technology is distributed world-wide.
· We will learn together; both growing in our technical prowess and business acumen.
· We listen to each other; this is a collaborative environment where everyone has a voice and we choose what’s best for the customer.
· Our scale creates unique challenges and opportunities ripe for innovation.
· We operate as a start-up with a strong support structure. We ship code every day.
· We offer competitive salary, relocation and benefit packages.
A day in the life
About the hiring group
We have 5 sub-teams in the IP Management and Connectivity space, each with a vertical focusing on a key area for our customers. These include IP Management (aka Bring Your Own IP & related features), EC2 Instance Connect (1-click SSH), Public IP Deployment (bringing new space to customers), Elastic IPs (static assignment of IPs to workloads), and more areas of investment releasing soon!
You use technology to solve straightforward problems, seeking input and guidance from team members. You may create or have responsibility to improve or invent small tools or applications. You are able to take a defined design and turn it into code and deliver it on schedule, applying appropriate technologies and current software engineering best practices. You write secure, stable, testable, maintainable code with minimal defects. You are proficient in a broad range of data structures and algorithms, knowing when it is appropriate to use them (and when it is not). You make appropriate implementation trade-off decisions (e.g., array or hash table). You do not put the company at risk (e.g. pulling in unlicensed code, working on code in unsafe ways, etc.). You participate in team design, scoping and prioritization discussions. You seek to learn the business context and technologies behind your team’s software. You work effectively with customers and/or internal partners to understand business impacts and identify any opportunities/problems arising from technical decisions. You invent, refine and develop your solutions to ensure they are meeting customer needs and team goals. You are a passionate advocate for your customer.
You assume responsibility for the state of the code you both inherit and produce. You get your designs and code reviewed. You test your code thoroughly. You classify, store, and handle data in accordance with Amazon policies. You track security risks and mitigate and/or escalate them in a timely manner. You understand the maintenance characteristics, runtime properties, and dependencies of your team’s software, including hardware platform, operating system and build dependencies. You clearly document your software to ensure that future generations of developers understand the intention behind the features and components you build. You may be part of an oncall rotation. In the event of a problem, you are able to troubleshoot, research the root cause of problems, and thoroughly resolve defects. You provide excellent customer support. You take ownership of problems (even when outside your own domain), propose solutions, and either take ownership for their resolution or ensure a clear hand-off to the right owner. You participate in the interview process and help your team train SDE interns.
Inclusive Team Culture
Here at AWS, we embrace our differences. We are committed to furthering our culture of inclusion. We have ten employee-led 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 16 Leadership Principles, which remind team members to seek diverse perspectives, learn and be curious, and earn trust.
Our team puts a high value on work-life 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.
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. We care about your career growth and strive to assign projects based on what will help each team member develop into a better-rounded professional and enable them to take on more complex tasks in the future.
BASIC QUALIFICATIONS· Programming experience with at least one modern language such as Java, C++, or C# including object-oriented design
· Bachelor's degree in computer science related fields OR 1+ years equivalent experience in software development
· 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.
PREFERRED QUALIFICATIONS· Computer Science fundamentals in data structures, problem solving, algorithm design and analysis
· Ability to take a project from scoping requirement through actual launch of the project