We're an internally-focused team making deep changes to tooling, infrastructure, processes, and controlplane components within the Relational Database Service, one of the fastest growing businesses within AWS. We're looking for seasoned, talented software engineers to help us scale in advance of our next 2x (and the 2x after that, and the one after that...). Our service provides managed, reliable, scalable and highly available relational databases, on demand, and we are currently supporting the largest fleet of relational databases on Earth. We minimize the effort required to maintain SQL databases by automating administrative tasks like backup / restore, scaling CPU / RAM / storage, setting up replicas for load-spreading and DR, and high availability / redundancy, allowing our customers to spend their valuable time focused on building their businesses. For more information about RDS, please visit http://aws.amazon.com/rds .
You have a passion for software development and are ready to step up from being just a coder - you're comfortable in the open-source and Linux worlds, can proficiently write code in a couple of languages and are picking up new ones as needed. You can explain why various design patterns are both awesome and constraining, you've seen code fail (and fixed) in production in spectacular ways - and learned from it. You've come to the understanding that being passionate about an idea is different than taking it personally and believe that debate makes strong ideas stronger.
You've written some software, shipped a product or two, and used several platforms, tools and modules. Having also worked with several frameworks, designs and scaling models you understand the challenges involved with building big, distributed systems used by thousands of people every day - and are looking forward to tackling them. You love to learn new things and to grow.
Who are you? You're the new Software Development Engineer joining us at RDS. We work hard, have fun and make history - let's go play.
•Your written and spoken English are excellent
•You've been developing software since you could tie your shoes or for more than a year, whichever is longer
•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 to 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 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
•You have a good understanding of Web Services, virtualization, SQL, SVN, networking, SMP, and distributed systems
•A Bachelor's degree in computing science or related discipline
•Experience with Linux / UNIX system administration and shell scripting
•DBMS administration and / or architecture
•Developing in extremely busy, highly scalable, highly available mission-critical distributed environments
•Deep experience with SQL / NoSQL databases
•Experience using ORM (Hibernate, JDO, etc.), varied build (Maven, Ant, etc.) and version-control environments
•Extensive software / database architecture knowledge
•Hands-on experience with AWS APIs and services