Are you excited by the prospect of solving some of the hardest and most valued technical challenges of cloud computing? Do you want to apply your deep analytical and engineering skills to the space of highly-available replicated databases? Come join us in Amazon RDS and help us innovate with always-on databases in the AWS cloud!
The AWS Relational Database Service (RDS) is one of the largest cloud database businesses, providing super-simple provisioning and management for databases in the cloud. Customers can set up a new database with just a few clicks, and complex administrative tasks like scaling, fail-over, and monitoring are handled in an automated fashion by our control systems. Providing such simplified management for customers comes with the challenge of building sophisticated and reliable control systems. The systems we build manage huge numbers of databases and vast amounts of storage across multiple datacenters world-wide, and our service is growing rapidly, requiring constant innovations in our systems in order to handle the next order of magnitude in service scale.
RDS provides customers with databases that have multiple-nines of durability and availability. Achieving this level of reliability requires building control and monitoring systems that automatically detect and handle many types of failures within seconds, and data replication options that accommodate various geographical distribution and disaster recovery objectives. The challenge is further heightened by needing to handle huge numbers of databases, multiple database engines (RDS supports MySQL, Oracle, PostgreSQL, SQL Server, MariaDB, and Amazon Aurora), and a wide variety of customer workloads.
To achieve our goals in this area, we are looking for a Software Engineer who loves to dive in and solve fundamental Computer Science and Systems problems around performance, timing, state machine logic and distributed systems algorithms. Candidates need to have a strong sense of ownership, passion to provide a great customer experience and excellent troubleshooting skills in high-pressure situations. If you'd like to be a part of creating always-on databases in the AWS cloud, this is the job for you!
For more information on RDS, please visit: http://aws.amazon.com/rdsBASIC 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.
• Excellent written and spoken English are a must
• You are experienced with more than one of Java, C/C++, .NET, Ruby, Grails, Perl, shell scripting or other
• You are experienced with Aurora, MySQL, PostgreSQL, Oracle, MS SQL or another major SQL database
• You are a generalist familiar with more than one SDLC process, language, framework, platform and environment and are capable of diving into the deepest parts of technologies when called for
• You understand networking, network programming, network-oriented design patterns, distributed computing and best practices related to same
• You have a good understanding of web services, virtualization, SQL, Git, networking, and distributed systemsPREFERRED QUALIFICATIONS
• Masters or PhD in Computer Science or equivalent
• Experience leading and mentoring junior engineers through a full product/service development life-cycle
• Experience building and operating large-scale online services and fault-tolerant distributed systems
• Knowledge of OS and Database engine internals
• Understanding of networking, network programming, network-oriented design patterns, and distributed computing
• Proficient in Ruby, Python, PowerShell, or similar scripting languages
• Excellent organizational, prioritization and time management skills
• You are familiar and comfortable with rapidly-evolving Agile development environments
• You have an understanding of and experience with common bug / task tracking, requirements tracking, traceability and test automation tools
• You have an ability to rapidly absorb and comprehend software and systems
Software and Programming