Amazon Web Services (AWS) is the world leader in providing a highly reliable, scalable, low-cost infrastructure platform in the cloud that powers tens of thousands of businesses around the world!
Do you enjoy working on distributed systems and solving problems of consistency, durability, and availability? Are you interested in building a large-scale distributed system that runs on several thousands of nodes and can be resilient in different situations like infrastructure failures, network partitions, etc. to provide a seamless customer experience?
If so then come join Amazon Simple Workflow team (SWF). Amazon SWF is an orchestration service for building scalable distributed applications. Often an application consists of several different tasks to be performed in particular sequence controlled by a set of dynamic conditions. Amazon SWF makes it very easy for developers to architect and implement these tasks, run them in the cloud or on premise and coordinate their flow.
We're looking for engineers who bring fresh ideas from all areas, including distributed computing, large-scale system design, networking and data storage, security; the list goes on and is growing every day. As a software engineer, you'll be expected to develop best practices, refine operational procedures and constantly innovate proactively. You'll continuously identify areas of growth within the existing frameworks, tools and processes to develop further technical mechanisms to reduce waste and continuously improve. You'll collaborate with engineers throughout the company who are building the next big thing in cloud computing. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward.
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 14 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-live 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.
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 members. We have a broad mix of experience levels and tenures, and we're building an environment that celebrates knowledge sharing and mentorship. Our senior members enjoy one-on-one mentoring and thorough, but kind, code reviews. We care about your career growth and strive to assign projects 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.BASIC QUALIFICATIONS
- 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.
- BS in Computer Science or equivalent
- Programming experience in one or more relevant language (Java, C#, C++, Ruby, Python)
- Experience solving infrastructure software architectural and design issues
- Understanding of performance, memory, I/O, and threading in Java or C#
- Understanding of asynchronous and distributed systems problems
- Understanding of issues around fault tolerance and scale-out
- Experience with a high-volume, highly-available, distributed services in a hosted environment
- Outstanding adherence to project deadlines and understands the balance between doing it right and getting the job done
- Works well in a team environment and be able to effectively drive cross-team solutions that have complex dependencies and requirements
Software and Programming