Software Development Engineer - Apache Flink Engineer

2 months agoSeattle, WA


Come change the way world processes streaming data

The Amazon Web Services (AWS) Kinesis Data Analytics (KDA) team is looking for a Senior Software Development Engineer to work on Apache Flink framework. We're looking for engineers who can learn and build distributed stream processing engines. If you are a builder who is enthusiastic about data streaming and excited about contributing to open source, this may be the role for you.

Real-time data processing from a stream needs substantial investments from customers in writing the application and maintaining the necessary infrastructure. KDA service provides customers with fully managed stream processing platform leveraging Apache Flink framework where customers can develop their applications using SQL or Java. With the service all that customers need to do is provide the application code that needs to be run containing the business logic to process the stream and service takes care of providing building blocks/abstractions such as processing windows, execution semantics, checkpoints and infrastructure capabilities such as elasticity, fail-over, etc. eliminating complexity of stream processing.

As a member of KDA team you will be:
• working on making improvements to the stream processing engine, Apache Flink to make KDA service the defacto service to run stream processing application
• upstream compatibility is a core tenet of KDA service and your changes to improve the engine will be contributed back to open source

• working on improving efficiency and availability of the engine, adding ease of use features and push the envelope of stream processing

• writing quality, reusable code for highly scalable and reliable cloud-based services

• working closely with product and development management to architect the service

• being a champion for operational excellence by Insisting on the Highest Standards

• writing code that continuously improves service reliability and availability

To be successful in this role, you should have experience working on large-scale systems, enjoys solving complex software problems, and possesses analytical, design and problem-solving skills. While not necessary having experience with data processing technologies such as Apache Flink, Apache Spark, Apache Storm, Hadoop frameworks is a plus.

Come join us to make stream processing main stream for our customers.

Work/Life Balance
Our team is family-oriented and values work-life balance. Most days, our entire team is co-located in the Seattle office, but we're also flexible when people occasionally need to work from home. We generally keep core in-office hours from 10am to 4pm. About half of us come in earlier and the other half of us stay later.

On-Call Responsibility

This position involves on-call responsibilities, typically for one week every two months. We don't like getting paged in the middle of the night or on the weekend, so we work to ensure that our systems are fault tolerant. When we do get paged, we work together to resolve the root cause so that don't get paged for the same issue again.

Mentorship and Growth Opportunity
Our team is dedicated to supporting new members. We have a broad mix of experience levels and tenures, and we're building an environment that celebrates knowledge sharing and mentorship. Our senior members enjoy one-on-one mentoring and thorough, but kind, code reviews. We care about your career growth and strive to assign projects based on what will help each team member develop into a better-rounded engineer and enable them to take on more complex tasks in the future.

Inclusive Team Culture
Our team is intentional about attracting, developing, and retaining amazing talent from diverse backgrounds. Yes we do get to build a really cool service, but we also think a big reason for that is the inclusive and welcoming culture we try to cultivate every day.


• 4+ years of professional software development experience
• 3+ years of programming experience with at least one modern language such as Java, C++, or C# including object-oriented design
• 2+ years of experience contributing to the architecture and design (architecture, design patterns, reliability and scaling) of new and current systems
• Bachelor's degree in Computer Science, Electrical Engineering, or similar; or equivalent experience
• Several years experience in system software development and delivery
• Advanced software engineering skills, including the ability to write expert-level, maintainable, and robust code in C++ (preferred), Java, C, or similar
• Strong Computer Science fundamentals in algorithms and data structures
• Working experience with high concurrency, multithreaded and distributed systems


• Experience working on distributed big-data processing engines such as Apache Flink, Apache Spark etc. is a big plus
• Experience building extremely high volume and highly scalable web services
• Experience with distributed systems, consistent hashing, distributed locking, replication, and load balancing
• Good communication skills and ability to work effectively on shared projects with other developers
• Ability to mentor junior engineers and influence technical roadmap

Amazon is committed to a diverse and inclusive workplace. Amazon is an equal opportunity employer and does not discriminate on the basis of race, national origin, gender, gender identity, sexual orientation, protected veteran status, disability, age, or other legally protected status. For individuals with disabilities who would like to request an accommodation, visit