Come change the way world processes streaming data
The Amazon Web Services (AWS) Kinesis Data Analytics (KDA) team is looking for Engineers to work on Apache Flink framework who are looking to learn and build distributed stream processing engines. We are looking for builders who are enthusiastic about data streaming and excited about contributing to open source.
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.
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.
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.
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
The ideal candidate has 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.
• 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