Once again I’m writing a “Year in Review” post, mostly focused on professional life & tech stuff. Check 2017 here.
For the last two years I’ve been working with Apache Kafka a lot. Everything including building infrastructure (and running clusters on bare metal, in VMs and containers), improving monitoring and alerting, developing consumers, producers and stream processors, tuning, maintenance, etc., so I consider myself a very proficient user.
Still, all these years I didn’t have a chance to read the ultimate “Kafka: The Definitive Guide” book. Finally, I’ve got one at Strata NYC earlier this year and finished it about a month ago. Surprisingly, while reading it, I left a lot of bookmarks and notes for myself that might be useful for beginners as well as experienced users. Obviously, they’re very subjective and specific.
It’s Q4 of 2018 and it’s really interesting to observe the change in Big Data Landscape, especially around open-source frameworks and tools. Yes, it’s still very fragmented, but the actual solutions and architectures start to slowly converge.
Right now I’m in the beginning of a huge platform redesign at work. We always talk about various frameworks and libraries (which is actually just an implementation detail), but I started to think: what qualities should modern data pipelines have going forward? The list that I came up with is below.
An interesting observation based on the recent conversations at work: the more strict the data format used in the API definition, the harder it is to change the API behaviour later. And vice versa, it’s easier to change the APIs that use flexible data formats.
Over the years I realized a very simple, but also a fundamental principle about being a better software engineer – understanding what’s happening one level below. With level I mean any level of abstraction you operate, for example HTTP API for a Front-end engineer, JVM and its internals for an enterprise Java developer, etc.
It sounds like an obvious suggestion, but it’s actually very useful to apply this principle to any new feature you’re going to work on.
Last week I had a chance to attend and speak at my first QCon conference: QCon London 2018. QCon has been an example of an extraordinary tech conference for me – great organization, amazing lineup, great tracks covering bleeding-edge tech, as well as various best practices around distributed systems. Also, they managed to get a decent vegetarian food right 😉
Keep reading if you’re curious about the best talks I attended and my speaking experience.
I’ve been working with Kafka Streams for a few months and I love it! Here’s the great intro if you’re not familiar with the framework. In the sections below I assume that you understand the basic concepts like
KTable, joins and windowing.
Message enrichment is a standard stream processing task and I want to show different options Kafka Streams provides to implement it properly.
Another “Year in Review” post, again mostly focused on professional life & tech stuff (since it’s a tech blog 😉). Check 2016 here.
I’ve been a frequent software conference attendee and a speaker for the last few years. I’ve seen great events with amazing speakers, facilities and food. And I’ve seen very poor events with a lot of issues like zero diversity and really weak speakers.
And I’ve been recently thinking about some recommendations for the future events and came up with a list below. I emphasize the basic diversity and inclusion rules, because our industry constantly lacks them.
You can probably decide I’m busy based on the absence of any new posts since July :)
And indeed, I was pretty busy for a while. I started to work at Demonware precisely 6 months ago and it’s being an amazing ride so far.