Description de l'offre
Amazon Aurora is an exciting new area of innovation for AWS, and the PostgreSQL-compatible edition of Amazon Aurora is the newest part of it. The PostgreSQL-compatible version of Amazon Aurora is a new relational database which offers enterprise-class performance, availability and durability - all at open source prices - to our customers, along with the management benefits of RDS. We're a relatively new team in Database Services, one of the fastest growing businesses within Amazon Web Services. We are spread across Seattle, the Bay Area, and Boston. Not only do we have deep database and systems programming problems to solve for our customers, but we also minimize the effort required to maintain SQL databases by automating administrative tasks like backup / restore, scaling CPU / RAM / storage and replication / failover for high availability, allowing our customers to spend their valuable time focused on building their businesses.
We have challenging problems to solve in distributed systems, concurrency, database internals, languages, and performance engineering. We intend to be the world's best and fastest database - come join us on the journey!
For more information about RDS, please visit http://aws.amazon.com/rds. For more information about Aurora, please visit http://aws.amazon.com/rds/aurora.
This position is on an exciting new team building a highly available, very scalable, high performance database offering. We have the need for low-level systems C programmers, mid-tier high performance C++ developers, and distributed systems Java wizards.
You've built a lot of software – shipped products, created platforms, tools and modules, perhaps worked with every framework under the sun, perhaps made everything you have touched fast as lightning. You may have built big, distributed, API-driven systems with thousands of users, or systems for billions of transactions. You're as excited as we are about learning every day, and solving really hard engineering problems that no one else is.
Passionate about software quality, repeatability, testability and maintainability, you are known to your co-workers as the go-to person for answers to questions that begin with the phrase “what's the best way to…” – even though your answers tend to start with “help me understand what you're trying to accomplish by…”. When you need clarity, you go to the product owner – or even a user – and talk to them until you get it. With stakeholders and other team members you are diplomatic, persuasive, and usually right. You understand the challenges associated with operating a large-scale system in production, and your designs and implementations reflect that understanding.
When you're wrong, you're happy to learn something. You build software quickly, but properly (so that you don't have to go back to it later). You know what “unit tests” are and don't implement software without them. Shipping on time with high quality makes your heart feel warm.
Who are you? You're the new Software Development Engineer joining us at RDS. We work hard, have fun and make history – want to come play with us?
What You'll Do
· Deliver project items on-time / in-spec, communicating clearly with leads, manager and stakeholders
· Contribute to software and database architecture / design
· Contribute to and lead architecture / design conversations and code reviews (yours and other team members')
· Work with managers and team members to estimate effort and clarify / negotiate / document scope and design
· Contribute to design, architecture, process and development standards
· Effectively mentor more junior team members, helping to maintain appropriate unit test coverage, code documentation, software structure and supportability
· Distil and communicate technical concepts to more junior developers and stakeholders
· Advise on courses of study for team members and / or self
· Argue for the right outcomes with data, conviction and diplomacy
· Identify, evaluate and suggest mitigation strategies for risks during design
· Design and implement features for new and existing products, features, APIs, platforms and frameworks
Things We Like About You
· Your written and spoken English are excellent
· You've been developing software since you could tie your shoes or for more than 2 years, whichever is longer
· You are experienced with more than one of Java, C, C++
· You are experienced with MySQL, PostgreSQL, Oracle, MS SQL or another
· 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
The successful applicant will have a minimum of 3 years experience in software development, with at least 1 year in Enterprise / distributed systems. Post-secondary education and / or industry certification are both assets.