Software Developer/ Engineer/ Architect

Software Development Engineer, Amazon Corretto

DESCRIPTION

Job summary
The Corretto organisation is looking for senior engineers to join a fast growing team that are launching a new metacircular Java runtime. This new runtime is being used to transform and accelerate hyper-scale workloads across multiple CPU architectures. As part of the team - candidates will design and develop sophisticated metacircular features, including instrumentation and recompilation capabilities. Candidates will contribute to performance optimization and compliance with industry standard JVM specifications.

We are looking for people who have a desire to innovate in the Java runtime, including some native development at the C/C++ level. A strong experience with OpenJDK is essential. Understanding of the changes between major Java releases is valuable. Candidates are expected to demonstrate a high level of competency in both development and knowledge of Java's features and inner workings.

Responsibilities will include contributing to the design of future runtime features, and working with teams and services inside AWS to solve their business challenges using this new Java runtime. Existing deployments of our product must be supported on an on-going basis, and the team will need to address any critical issues in live deployments and debug potential functional/performance regressions. The team has a strong culture of collaboration and co-operation, we are looking for people that work well as part of a team and can also work with customers both inside and outside AWS.


About Amazon Corretto
Amazon Corretto is Amazon’s distribution of OpenJDK, used to run our thousands of Java services and also deployed by many AWS customers. The Corretto team is focused on improving OpenJDK for all Java users by focusing on performance, particularly on ARM64 as used by AWS’ Graviton range of processors, and features like the Generational Shenandoah garbage collector. We work with the community to help maintain the Long-Term Supported (LTS) versions of OpenJDK as well as contribute to the bleeding edge. We are looking to expand the Corretto team to participate even more in the community and contribute to the long-term success of OpenJDK as a platform.

While Corretto is a relative newcomer to the scene, our team is composed of OpenJDK Authors, Committers, and Reviewers, some with decades of experience in JDK, languages, compilers, and managed runtimes. We learn about where to invest in OpenJDK from running some of the world’s largest Java services. We are firm believers in Open Source and are looking for like-minded people who are interested in working in the open with the community.

EVEN IF YOU ONLY MEET SOME OF THE REQUIREMENTS, OR BELIEVE YOU AREN’T EXPERIENCED ENOUGH, WE ARE STILL INTERESTED IN HEARING FROM YOU. We believe that a solid technical foundation and a strong interest in the subject matter can make you successful on the team and we have the opportunities to help you learn and grow in this space. Knowledge and experience in related technologies are generally applicable and valuable.

Java is used for the majority of services in Amazon and nearly all public-facing AWS services. Because of this, we have a vested interest in running the best-possible JDK in areas like security and performance. In 2018, the AWS JDK team migrated Amazon's default JDK to OpenJDK. In order to do this we built rigorous security and quality mechanisms around OpenJDK. We are now able to apply security and Amazon custom patches to the internal OpenJDK as soon as they're available. In early 2019, we took this work public and launched Amazon Corretto, our distribution of OpenJDK. With Corretto, we make our work on OpenJDK available to our customers and the OpenJDK community at large.
---
About AWS Platform
AWS has the most services and more features within those services, than any other cloud provider–from infrastructure technologies like compute, storage, and databases–to emerging technologies, such as machine learning and artificial intelligence, data lakes and analytics, and Internet of Things. AWS Platform is the glue that holds the AWS ecosystem together. Whether its Identity features such as access management and sign on, cryptography, console, builder & developer tools, and even projects like automating all of our contractual billing systems, AWS Platform is always innovating with the customer in mind. The AWS Platform team sustains over 750 million transactions per second.


Mentor
We have a formal mentor search application that lets you find a mentor that works best for you based on location, job family, job level etc. Your manager can also help you find a mentor or two, because two is better than one. In addition to formal mentors, we work and train together so that we are always learning from one another, and we celebrate and support the career progression of our team members.

Inclusion
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 we 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

We offer flexibility in working hours and encourage you to find your own balance between your work and personal life.


 

BASIC QUALIFICATIONS

· Knowledge of language, compiler and/or runtime internals. Java and JDK ideal, but other managed runtimes (such as .NET CLR) are valuable experiences.
· Bachelor’s Degree in Computer Science or related field or equivalent experience to a Bachelor's degree based on 3 years of work experience for every 1-year of education.
· 4+ years professional experience in software development
· Computer Science fundamentals in object-oriented design, data structures, and performance analysis.
· Proficiency in, at least, two modern programming languages such as C, C++, C#, Java, Python, or Ruby.

PREFERRED QUALIFICATIONS

· Knowledge and/or experience in writing instrumentation agents
· Experience taking a leading role in building complex software systems that have been successfully delivered to customers.
· Practice of modern software engineering, including coding standards, code reviews, source control management, build processes, testing, and releasing.
· Experience with distributed computing and enterprise-wide system operations.
· Experience in communicating with users, other technical teams, and senior management to collect requirements, describe software product features, technical designs, and product strategy.
· Experience mentoring junior software engineers and make them more effective.
· Experience influencing software engineers' best practices in your organization.
· Hands-on expertise in many disparate technologies, typically ranging from front-end user interfaces through to back-end systems and all points in between.