Amazon

Returning Candidate?

Software Developer Engineer - Distributed Systems

Software Developer Engineer - Distributed Systems

Job ID 
371615
Location 
US-WA-Seattle
Posted Date 
4/19/2018
Company 
Amazon.com Services, Inc.
Position Category 
Software Development
Recruiting Team 
North American Teams - AWS

Job Description

A wave of innovation is bringing sweeping changes to networking technology. Virtualization, unimaginable scale, hardware commoditization, and automation are revolutionizing network software. At Amazon Web Services (AWS), we leverage big data technologies and deep network analytics software to run one of the largest networks in the world. We push the boundaries of robustness, fault-tolerance and smart adaptive algorithms that can react intelligently to real-world events. This is your time to make history by building large-scale distributed software systems. We develop software at every level of the stack from front-end user interfaces to low-level embedded software and everything in between. We are a highly motivated, collaborative, and a fun-loving team of software developers who thrive on solving challenging problems.

The Amazon network is composed of hundreds of thousands of heterogeneous network devices, all of which need to be managed in a consistent manner, abstract away platform-specific differences, and reduce complexity for our customers. The Network Design and Configuration Services (NDCS) team provides a consistent API for generating complex network configuration and topology descriptions. We codify the design intent of network engineers, translating that intent into a data model representing the network topology, which we then render into platform-specific device configurations. As part of configuration rendering, we source network data in real-time in order to match configuration state to the actual state of the network, enabling just-in-time deployments in one of the largest networks in the world.

Basic Qualifications

· A solid background in computer science: a bachelor's degree or higher in Computer Science (or equivalent) is required.
· 2+ years of experience in building production software applications with focus on efficient back-end components is required.
· Proven software development skills, preferably in Java, C/C++, Python, Ruby and/or Perl in Linux environment.
· Familiarity with distributed systems, asynchronous messaging, and network protocols
· A solid grounding in Computer Science fundamentals, data structures, algorithms and deftness at object-oriented design and systems architecture.
· Adept problem solving and troubleshooting skills.

Preferred Qualifications

· Knowledge of major protocols, topology design, network hardware and device configuration.
· A solid understanding of performance and efficiency issues.
· Experience with distributed computing and enterprise-wide systems i.e. Service Oriented Architecture (SOA).
· Experience taking a leading role in building complex software systems that have been successfully delivered to customers.
· Experience influencing software engineers best practices within your team.
· Ability to take a project from scoping requirements through actual launch of the project.
· Strong customer orientation.