Technical Lead Distributed Systems

Posted Jan 22

Location: Berlin or Remote

Come join our highly talented team at Ververica, and work with amazing colleagues on problems and products that change how companies do data processing, analytics, and applications.

We are the original creators of Apache Flink, the open source unified batch/stream processing system that powers applications in all types of companies, from tech giants like Alibaba, Amazon, or Netflix, to traditional enterprises like banks or telcos. We contribute heavily to Apache Flink, while building enterprise-grade products on top of Flink.

Become part of one of the biggest and most active open source communities and do work that has a visible impact. Connect with users around the world, and contribute to bleeding-edge tech or be an advocate for new approaches to long-standing problems.

Technical Lead Distributed Data Management Systems

For this position, we are looking for a strong Senior/Staff Software Engineer with experience in leading a team of developers. The role takes responsibility for the overall technical quality of the team's work. We like to give our teams a lot of autonomy in how they work, including processes, architecture, etc. The technical lead takes a key role in ensuring that the team navigates the space created by this autonomy well and creates efficient, robust, and maintainable solutions.

This position is for you if you enjoy taking responsibility for the technology behind big parts of a product, and like to do that with a group of people that you coordinate and mentor. You are a strong programmer and software engineer yourself with a high standard for quality, and you know your distributed systems. You like to bring this into the team and help your colleagues grow there as well. You know how to break down-, and plan with, complex problems and features and thus ensure the team can approach challenging tasks.

Your Profile

  • Several years of industry experience, or academic experience
  • Good knowledge of distributed system- and database architectures
  • Prior experience in building-, or contributing to, distributed data-intensive systems
  • Experience with coordinating work in a team
  • applying agile software development methodologies
  • breaking down problems/tasks, defining goals/milestones, tracking progress.
  • ownership/responsibility for components, including maintainability and documentation
  • (Note: It is not necessary to have filled a lead role in the past, the experience can also come from having been a participant in a team that applied similar principles).
  • Good software engineering skills:
  • know how to write clean, testable, and maintainable code
  • write documentation
  • understanding of simple and robust designs, including designing APIs
  • You have experience with larger projects (large code bases)
  • You know how to mentor other developers, teach best practices
  • Bonus:
  • Deep understanding of Java and JVM mechanics
  • Solid understanding of a native language (Rust/C++).
  • Interested in speaking about their work, internally and externally, or writing articles.

What to Expect from the Job

  • Working on bleeding-edge technology in unified data processing (batch/stream), event-driven applications, data intensive systems, and machine learning.
  • You will be part of shaping the direction of the data stream processing space.
  • Leading a an international team of talented developers
  • Taking responsibility for technical excellence and personal growth of team members
  • Taking responsibility for the processes and results of the team.
  • Taking ownership of critical parts of the projects/products, including shaping their direction.
  • Working on open source and closed source products.
  • Being a mentor to team members to help them grow
  • Becoming an active member of the Apache Flink open source community
  • Optionally: Presenting work at conferences, meetups, or via articles.
  • Collaborating with-, and supporting open source users through open source channels
  • Working with-, and supporting supporting customers
  • A distributed team: Some developers work remotely, others work in the office in Berlin. Collaboration with other teams across EU, US, China.