Software Development Engineer
We're a team within Relational Database Services (RDS), one of the fastest growing businesses in AWS, and we're looking for seasoned, talented and operationally driven software engineers in Sydney. Our service provides managed, reliable, scalable and highly available relational databases, on demand. We 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. For more information about RDS, please visit http://aws.amazon.com/rds.
You've built a lot of software - shipped products, created platforms, tools and modules, worked with every framework under the sun and have built big, distributed, API-driven systems with thousands of users. You're as excited as we are about learning every day, and solving really hard engineering problems that no one else is. You've also operated services and/or scaled software at a high level, ensuring customer up-time and safety are your foremost tenets.
You're passionate about software quality, repeatability, testability and maintainability in production, 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.
You're an operationally focused and a DevOps zealot. You instrument your code, and help others instrument theirs. You have an interest in software performance, love metrics, and never stop digging for root cause when an issue arises.
What You'll Do
• Deliver project items on-time / in-spec, communicating clearly with leads, manager and stakeholders.
• Drive software and database architecture / design
• Drive and lead architecture / design conversations and code reviews (yours and other team members')
• Engineer operationally driven software solutions which automate everything and scale over time.
• Work with managers and team members to estimate effort and clarify/negotiate /document scope and design.
• Drive design, architecture, process and development standards
• Mentor junior team members, helping to maintain appropriate unit test coverage, code documentation, software structure and supportability
• Distill and communicate technical concepts to more junior developers and stakeholders
• Advocate 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. Basic Qualifications
• You've been developing software for more than 10 years
• You are experienced with several of these languages: Java, C/C++,, Python Perl, shell scripting or other.
• You are experienced with MySQL, PostgreSQL, Oracle, MSSQL, MariaDB or another RDBMS
• 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, XML, Tomcat (and / or other application servers), SQL, networking and distributed systems. Preferred Qualifications
• 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
• Hands-on experience with AWS APIs and services