You're using an older version of Internet Explorer that is no longer supported. Please update your browser.

Software Development Engineer - Step Functions

Vancouver, BC
Full Time
Do you enjoy working on distributed systems and solving problems of consistency, durability, and availability? Are you interested in building a large-scale distributed system that runs on several thousands of nodes and can be resilient in different situations like infrastructure failures, network partitions, etc. to provide a seamless customer experience?

Amazon Web Services (AWS) is the world leader in providing a highly reliable, scalable, low-cost infrastructure platform in the cloud that powers tens of thousands of businesses around the world! The orchestration team owns and operates AWS Step Functions, which provides AWS customers with the cloud infrastructure that makes it easy to coordinate the components of distributed applications and microservices using visual workflows. Building applications from individual components that each perform a discrete function lets you scale and change applications quickly. It's a core architectural component of the critical systems for Amazon as well as many customers running on AWS.

The Step Functions service and the team is growing fast, and is innovating in big and brand new feature areas. We are looking for a Software Development Engineer to help refine roadmaps and technical direction, and follow through with detailed architecture, design, and superior code, and to drive operational excellence of a large scale distributed system. 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

• 5+ years professional experience in software development

• Proficiency in Java or other OOP languages such as C#, Python, Ruby or C++

• 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 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.

• Excellent communication skills.
Software and Programming