Amazon Web Services (AWS) is the world leader in providing highly reliable, scalable, low-cost infrastructure platform in the cloud that powers tens of thousands of businesses around the world! The Messaging team owns and operates Amazon MQ, among other core messaging services that provide AWS customers with the cloud infrastructure for building highly scalable, asynchronous and fault-tolerant distributed cloud applications. If you are passionate about the challenges of large scale, building cutting-edge technologies and making developing distributed applications easy and reliable then the AWS Messaging team is for you. This is a particular opportunity to work with and potentially contribute to open source initiatives, while building on top of the latest AWS serverless technologies such as Lambda, API Gateway, Step Functions, CodeDeploy, and CloudFormation among others.
We are looking for Software Development Engineers to help us evolve Amazon MQ platform. Your responsibilities will include providing inputs to Amazon MQ roadmap, owning service components, delivering designs, high quality code, and a great customer experience. You will also have on-call responsibilities and drive projects to eliminate availability risks.
How do you know if you are a good fit for us? You are fascinated by and want to innovate in distributed fault-tolerant systems that operate at scale. You love customers. When our customers ask for the next big feature, you know this means you’ll be able to truly dig into the solution and get it done right. You love owning the project from idea to production, delivering not only in the implementation but in all phases from the kernel of an idea to quickly getting that battle-tested code into production. You enjoy collaborating with your teammates. You love working in agile programming environments and running fast to deliver evolution for your AWS services.
Bachelors or Masters Degree in Computer Science or related field
6+ years professional experience in software development
2+ years as a senior team lead
Proficiency in Java or other OOP languages such as C#, Python, Ruby, C++ or even Erlang
Experience in object-oriented design, data structures, algorithms, and problem solving
Experience designing and building sophisticated fault-tolerant distributed systems
Excellent written and verbal communication skills
Sense of ownership, urgency and drive
MS or PhD in Computer Science.
1+ years of experience developing for a Linux or UNIX environment.
Experience with software such as Apache ActiveMQ and Apache Camel is a plus
Experience designing, developing, and deploying large-scale distributed systems.
Experience with data mining software and techniques
Experience leading and mentoring junior engineers on good software development practices and design reviews.