Building a Streaming Lakehouse with Open Source: Kafka to Iceberg to Trino to Superset

TLDR I built an open-source streaming lakehouse: Kafka ingests events, Flink processes them, Iceberg stores them as tables, Trino queries them, and Superset visualizes them. One make demo command runs it all locally. Even when your data lands in Iceberg automatically (as it does with Confluent Tableflow), you still need a query engine and a visualization layer. This stack builds that full picture with open-source components. MinIO went closed-source, so I switched to SeaweedFS (thanks to Robin Moffatt’s research). And Flink’s dependency management is still a jar-shaped nightmare. ...

April 2, 2026 · 10 min · Viktor Gamov

SELECT * FROM stream: An Interactive Guide to Flink's Table-Stream Duality

TLDR I built an interactive tutorial that teaches Flink SQL’s table-stream duality with animated visualizations you can explore in your browser. Six sections guide you from "what is a dynamic table" to writing live aggregation queries, with code examples in both SQL and the Table API. It is open source, MIT licensed, and I’m accepting feature requests at the GitHub repo. The Concept That Trips Everyone Up Every time I teach Flink SQL, I hit the same wall. The concept of table-stream duality makes perfect sense to me after years of experience, but I can see the exact moment when someone new to Flink gets confused. You say "a table is just a materialized view of a stream" and their eyes glaze over. By the time you say "a stream is just a changelog of a table" you’ve lost them entirely. ...

April 1, 2026 · 5 min · Viktor Gamov

When AI Alignment Experts Can't Align Their Own AI

TLDR Meta’s director of AI alignment told her agent "confirm before acting." It deleted her entire inbox anyway. OpenClaw hit 250k GitHub stars in 60 days, its codebase hit 400,000 lines, and about 12% of its skill marketplace was malware. NanoClaw runs every agent in its own Linux container with 4,000 lines of code you can read in one sitting. I picked a third option. It runs on the JVM. ...

March 30, 2026 · 6 min · Viktor Gamov

My Year At Hazelcast In Review

TL;DR It has been an awesome year full traveling (roughly 20 states), POCs for the clients and the prospects, training (including public classes) and conference talks. While I am already looking forward to 2016, here is a quick recap of my 2015 with Hazelcast. Table 1. Revisions history Version Date Comments v1.2 1/6/2015 Added Groovy Puzzlers Video link from SpringOne 2GX v1.1 12/31/2015 Added Atlanta JUG video link v1.0 12/29/2015 Initial blog post Into 2015 has been a helluva of a year for me, which started off with a new job: the Solutions Architect in Hazelcast - Open Source In-Memory Data Grid company. In addition to travelling to over 20 states, I had numerous opportunities to share my programming experience and how to develop and deploy the distributed systems. I enjoyed the conference talks, blog posts, and podcasts (1, 2, 3 in Russian). ...

December 29, 2015 · 5 min · Viktor Gamov