This blog post features my colleague, Konstantinos Kloudas, who is a committer on Apache Flink and works in the Berlin office. He usually goes by Kostas, but we call him Klou, because we have a naming conflict in the office. He is not only Greek but also looks like he directly arose from the books of Homer. He's by far the strongest data Artisan, and I have no doubt that he could easily wrestle Medusa like Perseus did. But his most distinguishing characteristic is that he is always cheerful and supportive which I admire.
What do you work on at data Artisans?
I work in the team that focuses on designing and implementing Apache Flink’s APIs. Our goal is to expose to the user as much of Flink’s functionality as possible, while maintaining simplicity and correctness.
Currently, I am working on introducing a new type of application state that will allow users to broadcast the contents of one stream to all available machines, store these contents in this new state type, and join that state with another stream. This will enable scenarios where the user broadcasts and dynamically updates a set of rules, e.g. patterns from his/her favorite CEP library, and wants to find all the sequences of elements on a different, possibly keyed, stream that satisfy these patterns.
Many use cases can benefit from this new feature, as the ability to dynamically update rules/filters/detectors (depending on the application domain) without downtime is a request we get often when speaking with users or on Flink’s mailing lists.
In the past I have worked on Flink’s CEP library, its Windowing Mechanism, and Queryable State, and I also had a quick (initial) go with Beam’s Flink runner (back when Beam was still Dataflow).
What do you enjoy about your job?
First, I never get bored. Flink is at the cutting edge of stream processing technology, with deployments ranging from small to large-scale, having zero to large application state size, and complex or embarrassingly parallel dataflow graphs. Being able to efficiently support all of these scenarios make challenges the norm rather than the exception.
In addition, having a great team of talented and passionate people with whom to discuss these challenges always helps. ;)
Are you a contributor or committer to any Apache projects?
I am a committer to Apache Flink and I have also contributed in Flink’s Beam Runner in the past, which is part of the Apache Beam project.
What do you like about Apache Flink?
On the non-engineering side, I would say that I enjoy the community part. It is always nice to see that people are using the software that you develop in production and are interested in contributing themselves.
On the more technical side, I really like that Flink manages to stand at the forefront of stream processing technology, while maintaining clear theoretical foundations, which have actually remained the same since Flink’s earliest versions. All the principles used for time and state handling, which are the main pillars for correct stream processing, have been the same since the early days of Flink, and all new features comply with these principles.
Although this may seem a subtle detail, it helps a lot when it comes to code maintenance and reasoning about correctness of different features or program implementations. Moreover, a clear set of principles forms a solid ground upon which the code can be organized, new features can be added, and expressive APIs can be built.
What is your advice for someone who is interested in participating in any open source project for the first time?
Do not overthink it. Subscribe to the user@ mailing list as soon as possible. Many times, people are afraid that they are “not qualified enough” for a given project. If you feel this way, then just ask via the mailing list how you can contribute, and there will definitely be something that you can do that's going to be an easy way to “break the ice” with the community.
How did you get into programming?
Well, I was by no means a programming prodigy or computer wizard. I got my first computer pretty late in life and I never had a gaming console (although I had friends who owned some of them). I was more into sports.
I started programming at university, where I studied Electrical and Computer Engineering. During my studies, I had an opportunity to choose among a number of disciplines as my major, and programming and software architecture was what attracted me the most.
What’s your favorite sport to watch and why?
I like sports in general, but mostly training and playing, not necessarily watching. Water Polo is among the few exceptions, because I used to play so I still like to watch it. To most people it seems boring, as most of the action happens under water, but if you have played even for a little while, you see it with a different eye and you understand that the athletes playing it must be super humans.
Where are you from?
I am from Athens, Greece where I lived until the age of 24, i.e. the end of my studies. Since then, I have spent the last ~8 years in France (3.5 years), Portugal (2 years), the UK (4 months), and now Berlin (almost 2.5 years).
Before coming to Berlin to join data Artisans, I was in academia (you can still find traces of this phase of my life on the internet). I got my PhD in distributed systems from Inria in France. In academia, it’s pretty common to move around until you can find a more permanent position.
What’s something that most people don’t know about you?
I’m a Ninja… but ssssshhhh. Seriously though, I love Berlin and I consider it one of the nicest and most humane cities to live. The first time I visited Berlin for holidays it left me a bad impression and I thought that I would never consider living here. At that time, I was still in France.
Apparently, I had visited the wrong places and, given that it was around Christmas, the weather did not help. The latter has not changed, unfortunately, but when you get to know the city a bit more, you realize that it has a corner for every taste.
You can follow Kostas at Twitter (@kkloudas), Github, and LinkedIn.
You can view some of Kostas’ recent talks here:
Complex Event Processing with Flink: the state of FlinkCEP (Berlin Buzzwords, June 2017)
Complex Event Processing with Flink: the state of FlinkCEP (Flink Forward Berlin, September 2017)
Extending Flink’s Streaming APIs (Flink Forward San Francisco, April 2017)
We’re hiring! Check out the data Artisans careers page to learn about open positions. We have open roles based in our Berlin office as well as in the U.S.