Senior Software Development Engineer - AWS EC2

Job ID: 1273617 | Amazon Web Services, Inc.

DESCRIPTION

Do you want to be part of the team that synchronizes time in one of the world’s biggest public clouds?

The EC2 Chronos team operates the AWS Time Sync service which serves time to EC2 instances, other AWS services, and networking equipment through a hierarchy of time servers. The service is designed on top of the Network Time Protocol (NTP), which is used to distribute time from GPS receivers through a distribution fleet to EC2 instances and other network devices. The service is a combination of hardware and software infrastructures to deliver reference clock with an accuracy within 1 millisecond of Coordinated Universal Time (UTC).

Time synchronization is a critical requirement of modern computer systems. Service oriented architectures need to keep accurate time stamped logs across multiple services and multiple instances for debugging and root cause analysis. Authentication and authorization protocols are built on the foundation of accepting connection only with correct timestamps. Distributed systems such as synchronous databases require global synchronization of master nodes to achieve transaction consistency. Financial regulators require accurate timestamps from market participants to ensure trading fairness and auditability.

We are growing fast, and are looking for senior programmers who can deliver an ultra-high performance time service. This requires being able to implement highly optimized code, data structures, but also low level tuning to our hardware (GPS Antennas and Atomic Clocks). If you have good experience in Rust/C/C++, and a passion for systems software engineering focused on performance, safety, and especially safe concurrency, then this is a unique opportunity to join us in building the platform which is the basis for all new EC2 Time Sync features for years to come.

What does it take to succeed in this role?
In addition to meeting the technical qualifications, you need to be creative, responsible, and able to dig deep into emerging technologies. You need to be willing to read research papers, but also move quickly to turn ideas into code that solves customer problems. You need to be a a natural problem solver, who wants to understand business problems, operational issues, and software architecture, and how all three connect. You need to be curious about our customers' needs and dedicated to turning developers into raving fans. You need to be excited to learn from others while bringing your own novel capabilities and perspectives. Someone who makes the team both productive and fun to work in.

Your responsibilities will include:
· Mentoring junior engineers, ensuring the right development and operational practices are followed.
· Be very hands-on; work with the engineering team to manage the day-to-day operational and development activities by leading architecture decisions, participating in designs, design review, code review, and implementation.
· Maintain current technical knowledge to support rapidly changing technology, always on a look out for new technologies and work with management and development team in bringing in new technologies.
· Communicating with users, other technical teams, and senior management to collect requirements, describe software product features, technical designs, and product strategy
For more information on Amazon Web Services please visit: http://aws.amazon.com/

This role will sit in our new headquarters in Northern Virginia, where Amazon will invest $2.5 billion dollars, occupy 4 million square feet of energy efficient office space, and create at least 25,000 new full-time jobs. Our employees and the neighboring community will also benefit from the associated investments from the Commonwealth including infrastructure updates, public transportation improvements, and new access to Reagan National Airport.

BASIC QUALIFICATIONS

· 4+ years of professional software development experience
· 3+ years of programming experience with at least one modern language such as Java, C++, or C# including object-oriented design
· 2+ years of experience contributing to the architecture and design (architecture, design patterns, reliability and scaling) of new and current systems
+7 years of experience building and supporting production applications.

PREFERRED QUALIFICATIONS

· Linux operating system knowledge
· In-depth knowledge of network protocols (TCP/IP, NTP)
· Kernel or embedded development, particularly Linux kernel
· Scripting (Ruby/Python)
· Strong knowledge of Computer Science fundamentals in object-oriented design, data structures, algorithm design, problem solving, and complexity analysis
· Knowledge of, at least, one modern programming language such as Rust, C, C++, Java, or Perl
· Experience developing complex software systems that have been successfully delivered to customers
· Knowledge of professional software engineering practices & best practices for the full software development life cycle, including coding standards, code reviews, source control management, build processes, testing, and operations
· Ability to take a project from scoping requirements through actual launch of the project
· Experience in communicating with users, other technical teams, and management to collect requirements, describe software product features, and technical designs
· Experiencing mentoring junior software development engineers and driving engineering excellence

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, visit https://www.amazon.jobs/en/disability/us