Sign in

Gunnar Morling

@gunnarmorling.dev
8.2K followers 206 following 983 posts

Technologist @ Confluent · Ex-lead of Debezium · Spec lead of Bean Validation 2.0 · Creator of Hardwood, kcctl, JfrUnit, MapStruct · Java Champion · morling.dev · 🚴

PostsRepliesMedia
Gunnar Morling @gunnarmorling.dev · 14/09/2026
🤓 Weekend project: a note-reading drill. Notes I get wrong or am slow on show up more often. The kicker: it listens to my acoustic piano through the mic, which works pretty darn well. AI really lets you build things that you otherwise just wouldn't. github.com/gunnarmorlin...
151
Gunnar Morling @gunnarmorling.dev · 01/09/2026
📝 Blogged: „Parquet File Write Support, Bloom Filters, Improved Performance: Hardwood 1.1.0.Beta1 Is Out“ Super-pumped about this one; finally I get to say „give it a try“ rather than „it’s coming soon“ when asked about write support in Hardwood 🥳. www.morling.dev/blog/parquet...
173
Gunnar Morling @gunnarmorling.dev · 22/07/2026
📝 "A Fast Path for Fixed-Length Lists in Parquet" New blog dropped, discussing how we optimize reading effectively fixed-length lists (think vector embeddings) in Hardwood. Up to 3.9× faster, getting to the level of flat columns for larger lists. 👉 www.morling.dev/blog/fast-pa...
0110
Gunnar Morling @gunnarmorling.dev · 20/07/2026
Spent the weekend on a fun one: you can now inspect Parquet files in your browser via #Hardwood, and the file never leaves your machine 🤓. Yes, that's right, the hardwood dive TUI compiled ahead-of-time to #WebAssembly, via GraalVM's Web Image. Try it yourself at hardwood.dev/experiments/...!
1160
Gunnar Morling @gunnarmorling.dev · 25/06/2026
Today is the day: #Hardwood reaches 1.0 🚀! A from-scratch #Parquet library for the JVM, reading (and soon writing) Apache Parquet fast: multi-threaded at its core, with no mandatory dependencies. Java 21+, Apache 2.0, production-ready. Happy Parquet parsing!
A code snippet showing how to open a Parquet file with Hardwood and read its records via the row reader API.
1203
Gunnar Morling @gunnarmorling.dev · 01/06/2026
📝 "Improved Column Reader API, First Cut of Geospatial Support: Hardwood 1.0.0.CR1 Is Available" Next stop (hopefully 😇): Hardwood 1.0 Final! 👉 www.morling.dev/blog/improve...
050
Reposted by Gunnar Morling
InfoQ @infoq.com · 26/05/2026
1 Billion Row Challenge creator @gunnarmorling.dev is back with #Hardwood - a zero-dependency, ultra-fast #Java parser for #ApacheParquet. 🎧 Listen to the #InfoQ #podcast to learn more about Hardwood’s architecture, parallelization & performance optimization ⇨ bit.ly/4wP8jlR #AI
bit.ly
Chasing Efficient Java Development: From 1BRC to Developing Hardwood AI Natively
Gunnar Morling, technologist at Confluent and Java Champion, shares his experiences with building high-performance applications in Java, especially in the data space. He shares insights from experimen...
192
Gunnar Morling @gunnarmorling.dev · 21/05/2026
The slides from my #Current London talks are up 🥳. - "Transactional Change Stream Processing With Debezium and Apache Flink" speakerdeck.com/gunnarmorlin... - "Hardwood: Building a Parquet Parser From Scratch (With a Little Help From AI)" speakerdeck.com/gunnarmorlin...
080
Reposted by Gunnar Morling
Tom Cooper @tomcooper.dev · 20/05/2026
Now attending the World Premiere conference talk on Hardwood: the new Apache Parquet parser by @gunnarmorling.dev at #Current26
141
Reposted by Gunnar Morling
rmoff 🏃‍♂️🫖🥓 @rmoff.net · 20/05/2026
#current26 @gunnarmorling.dev talking about Hardwood, a new Parquet parser and (soon to be) writer
071
Gunnar Morling @gunnarmorling.dev · 05/05/2026
Woot, woot: 2^8 🌟s for the #Hardwood GitHub repo 🥳! Might be a small step, but so great to see the interest in the project. #ApacheParquet github.com/hardwood-hq/...
0110
Reposted by Gunnar Morling
Vicki @vickiboykis.com · 30/04/2026
I don’t buy the idea that libraries will go away since everyone can just write their own now. Maybe for small internal company use-cases. But libraries are not just code, they’re time invested in edge cases, they’re hundreds of hours of human eyes. I don’t want to replace that.
1924229
Gunnar Morling @gunnarmorling.dev · 30/04/2026
📝 Blogged: "VARIANT Support, Interactive Parquet File TUI: Hardwood 1.0.0.Beta2 Is Out" The new version of the #Hardwood parser for Apache Parquet comes with support for VARIANT columns, a text-based UI for analysing Parquet files, better performance, and more. 👉 www.morling.dev/blog/variant...
181
Gunnar Morling @gunnarmorling.dev · 02/04/2026
📝 "Hardwood Reaches Beta: S3, Predicate Push-Down, CLI, and More" Happy to announce Hardwood 1.0.0.Beta1, adding S3 support, predicate push-down for both local and remote files, Avro bindings, a CLI for inspecting Parquet files, a new website, and much more. 👉 www.morling.dev/blog/hardwoo...
092
Reposted by Gunnar Morling
rmoff 🏃‍♂️🫖🥓 @rmoff.net · 26/03/2026
And just like that, it's time for March's Interesting Links in the Data and AI World! 👉🏻 rmoff.net/2026/03/25/i... With links from great folk including @gunnarmorling.dev, @tomcooper.dev, @sqlliz.bsky.social, @tanelpoder.com, @eatonphil.bsky.social, @larahogan.bsky.social, @almog.xyz, and more!
rmoff.net
Interesting links - March 2026
292
Gunnar Morling @gunnarmorling.dev · 20/03/2026
🥳 Just merged support to #Hardwood for reading Parquet files directly from S3! Including projections and predicate push-down (row group level), to fetch only the actually required column chunks, thus limiting the amount of data downloaded from the object store. Should be ready to ship next week!
061
Reposted by Gunnar Morling
rmoff 🏃‍♂️🫖🥓 @rmoff.net · 13/03/2026
Inspired by @gunnarmorling.dev, I've added a page to my blog about how I do, and don't, use AI on my blog. tl;dr: NEVER for writing content. gross. But, for plenty else! 👉🏻 rmoff.net/ai/
rmoff.net
How I do, and don’t, use AI on this blog
073
Reposted by Gunnar Morling
Julien Le Dem @julien.ledem.net · 05/03/2026
If you want to learn more about the Variant type in Parquet, Aihua Xu and @andrewlamb1111.bsky.social wrote a great blog post on the project blog. parquet.apache.org/blog/2026/02...
parquet.apache.org
Variant Type in Apache Parquet for Semi-Structured Data
Introducing Native Variant Type in Apache Parquet
083
Gunnar Morling @gunnarmorling.dev · 01/03/2026
🍊 Woot, woot, #Hardwood made it to the HN front page! Be gentle, folks :)
0120
Reposted by Gunnar Morling
rmoff 🏃‍♂️🫖🥓 @rmoff.net · 27/02/2026
✍🏻 Interesting Links in the Data & AI World, February 2026 Links from @gunnarmorling.dev, @nbuesing.bsky.social, @ssp.sh, @sap1ens.com, @neelesh.bsky.social, @rstephens.me, @justincormack.bsky.social, @sogrady.org, @simonwillison.net, @cassidoo.co, and more! 🔗 rmoff.net/2026/02/27/i...
rmoff.net
Interesting links - February 2026
073
Gunnar Morling @gunnarmorling.dev · 27/02/2026
"Are we using AI for building Hardwood? Absolutely. Is Hardwood vibe-coded? Absolutely not." Coding agents are incredibly powerful, but they're no magic wand. Sharing some experiences with using AI for building a relatively low-level code base like a Parquet parser in the #Hardwood announcement 👇.
241
Reposted by Gunnar Morling
Nicolas Fonrose @nfonrose.bsky.social · 27/02/2026
Interesting usage of the lessons learned during the #1BRC contest !
051
Gunnar Morling @gunnarmorling.dev · 26/02/2026
📝 "Hardwood: A New Parser for Apache Parquet" Today is the day--beyond excited to share the first release of #Hardwood, a new parser for the Apache #Parquet file format, optimized for minimal dependencies and great performance. 👉 www.morling.dev/blog/hardwoo...
0358
Gunnar Morling @gunnarmorling.dev · 25/02/2026
Woot, woot, tackled my personal final boss, the Maven release plug-in, and we now have a fully automated release pipeline for hashtag#Hardwood. Gonna do some more testing, but we should be really close now to a first tagged release on Maven Central 🥳. Thx to @andresalmiray.com for all the help!
290
Gunnar Morling @gunnarmorling.dev · 19/02/2026
Most folks think of #Debezium as source connectors only, but it also provides a JDBC sink for end-to-end data pipelines. Great post by the team at Zepto on their contributions, including an upsert reduction buffer to cut load on the sink database. OSS FTW 🚀! 👉 blog.zeptonow.com/debezium-at-...
070
Reposted by Gunnar Morling
Holly Cummins @hollycummins.com · 17/02/2026
@gunnarmorling.dev has written a great post about conference talks (I wish I'd written it myself): www.morling.dev/blog/ten-tip...
morling.dev
Ten Tips to Make Conference Talks Suck Less
Table of Contents 1. 💦 Rehearse, Rehearse, Rehearse 2. 🎬 Start With a Mission 3. 📖 Tell a Story 4. 👀 Look at the Audience, Not Your Slides 5. 🧹 Put Less Text on Your Slides. Much Less 6. ✂️ Tailor the...
3111
Gunnar Morling @gunnarmorling.dev · 15/02/2026
Today is a great day to verify you don't get yourself locked out of any 2FA-secured accounts when losing your phone. Print out back-up codes, set up fallback keys, etc. It takes just a few moments and can save you massive headaches later on.
071
Gunnar Morling @gunnarmorling.dev · 11/02/2026
It never stops being funny how Claude Code is patting its own should for the amazing job it's doing 🤣.
1201
Reposted by Gunnar Morling
InfoQ @infoq.com · 11/02/2026
Discover how #DataFrames are transforming #DataOrientedProgramming in #Java! Analyze the #1BRC challenge & see how Java frameworks can outperform Python in memory management without sacrificing readability. Discover how DataFrames elevate your Java programming experience ⇨ bit.ly/4avEDzZ
bit.ly
Are You Missing a Data Frame? The Power of Data Frames in Java
Vladimir Zakharov explains how DataFrames serve as a vital tool for data-oriented programming in the Java ecosystem. By analyzing The One Billion Row Challenge, he shares how Java frameworks can outpe...
052
Gunnar Morling @gunnarmorling.dev · 22/01/2026
Spent some time to make the #Hardwood parser for Parquet files a little faster; The engine parallelizes better now, a full parse of 720 MB of the NYC taxi ride data set--summing up the values from three columns--takes about 2.3 sec on my laptop. 👉 github.com/hardwood-hq/...
0110
Reposted by Gunnar Morling
Sebastian Korfmann @skorfmann.com · 21/01/2026
We’re doing an Agentic Coding conference in Hamburg on March 22nd! 🎉 Not many details yet, but super early bird tickets are on sale and selling fast. Super excited about this one! #hamburg luma.com/45lfeyeh
luma.com
Agentic Conf Hamburg 2026 · Luma
From meetup to conference. After four sold-out meetups and ~ 1000 members, it's time for the next step: The first agentic.hamburg conference on March 22, 2026.…
396
Reposted by Gunnar Morling
José Paumard @josepaumard.bsky.social · 15/01/2026
It starts in 10mn! www.youtube.com/watch?v=lVOR...
youtube.com
1B Rows with the Memory API - JEP Cafe #25
YouTube video by Java
0204
Gunnar Morling @gunnarmorling.dev · 15/01/2026
🤓 Just realized I haven't shared my "Streaming Examples" repo here before. It contains a growing list of runnable examples around data streaming (e.g. with Apache Kafka), stream processing (Apache Flink), change data capture (Debezium), etc. 👉 github.com/gunnarmorlin...
0160
Gunnar Morling @gunnarmorling.dev · 12/01/2026
Made good progress with Hardwood, a minimal dependency parser for Apache Parquet. Reworked the API, moved to new GitHub org, almost all files from the parquet-testing harness pass now 🎉. Projections and predicate push-down are up next. 👉 github.com/hardwood-hq/...
0130
Reposted by Gunnar Morling
A. Jesse Jiryu Davis @emptysqua.re · 22/12/2025
Oh, that's a useful feature. You can enforce causal consistency in general (which includes read-your-writes and other guarantees) with that mechanism. We've had that in MongoDB for some time, though, and customers have found it hard to use: emptysqua.re/blog/how-to-...
emptysqua.re
How To Use MongoDB Causal Consistency
The missing manual for a useful MongoDB feature.
1143
Gunnar Morling @gunnarmorling.dev · 24/12/2025
Happy Holidays, and to those who celebrate: Merry Christmas 🎄🎁☃️! Enjoy the days ahead ("between the years", as we call it in German), and of course: yippee ki-yay!
0140
Gunnar Morling @gunnarmorling.dev · 19/12/2025
🐘 Oh, that's nice: Postgres 19 is going to ship read-your-writes for standbys when using asynchronous replication, via a new command WAIT FOR LSN (similar to WAIT_FOR_EXECUTED_GTID_SET in MySQL). Very cool! www.postgresql.org/docs/devel/w...
1546
Reposted by Gunnar Morling
Julien Le Dem @julien.ledem.net · 11/12/2025
In the past few years, we’ve seen a cambrian explosion of new columnar formats, challenging the hegemony of Parquet. Presumably, the design of yore is not going to cut it moving forward. I spent some time to understand a bit better how things actually changed. sympathetic.ink/2025/12/11/C...
sympathetic.ink
Column Storage for the AI Era
In the past few years, we’ve seen a cambrian explosion of new columnar formats, challenging the hegemony of Parquet: Lance, Fastlanes, Nimble, Vortex, AnyBlox, F3 (File Format for the Future). The thi...
1314
Reposted by Gunnar Morling
Cynthia Dunlop @cynthiadunlop.bsky.social · 10/12/2025
Why write engineering blogs? Here’s how some of our favorite bloggers responded to the question “Why did you start blogging and why do you continue?” writethatblog.substack.com/p/why-write-...
A screenshot featuring responses from Aaron Francis, antirez, Charity Majors, and Eric Lippert
1246
Gunnar Morling @gunnarmorling.dev · 07/12/2025
📝 Blogged: "You Gotta Push If You Wanna Pull" Wrote up some thoughts on push vs. pull queries, materialized views, and why data duplication isn't something to fear. 👉 www.morling.dev/blog/you-got...
1164
Gunnar Morling @gunnarmorling.dev · 06/12/2025
A key factor for making technical discussions more successful (and enjoyable) is to resist the urge to one up each other. Don't try to prove you're smarter than others, instead work collaboratively towards a solution, benefiting everyone involved.
2323
Gunnar Morling @gunnarmorling.dev · 05/12/2025
"Streams for machines, tables for humans". Kinda proud of this tag line from my upcoming blog post, discussing how pull and push queries go hand in hand in data management systems. Out early next week 🤓.
1140
Reposted by Gunnar Morling
Jack Vanlightly @vanlightly.bsky.social · 04/12/2025
New post: The Durable Function Tree. Durable execution engines all end up building some form of function tree with suspension points shaped by local vs remote side effects. I look at why, the trade-offs, and where orchestration should (and shouldn’t) be used. jack-vanlightly.com/blog/2025/12...
jack-vanlightly.com
The Durable Function Tree - Part 1 — Jack Vanlightly
In my last post I wrote a bout why and where determinism is needed in durable execution (DE). In this post I'm going to explore how workflows can be formed from trees of durable function calls ba...
0151
Gunnar Morling @gunnarmorling.dev · 04/12/2025
"Mini-LSM--Build a simple key-value storage engine in a week" This looks like a great learning resource for folks looking to get started with log-structured merge trees in #Rust 🦀, by Alex Chi Z. 👉 skyzh.github.io/mini-lsm/
0253
Reposted by Gunnar Morling
hettied.bsky.social @hettied.bsky.social · 01/12/2025
PG DATA CfP is open! We’re building a new Postgres conference series focused on education, community, and collaboration. 👉 Submit your talk proposal here: sessionize.com/pg-data-2026 Join us in June! #PGData2026 #PostgreSQL #PostgresCommunity #MidwestTech #ChicagoTech
032
Gunnar Morling @gunnarmorling.dev · 29/11/2025
📺 "Ins and Outs of the Outbox Pattern" An invaluable pattern to ensure a service can update its own database and send messages to other services via Kafka, consistently. In this talk I'm discussing implementation options, backfills, alternatives, etc. www.youtube.com/watch?v=Pkrz...
youtube.com
Ins and Outs of the Outbox Pattern, Gunnar Morling
YouTube video by Bulgarian Java User Group
1163
Reposted by Gunnar Morling
rmoff 🏃‍♂️🫖🥓 @rmoff.net · 27/11/2025
Wait what's this?! I've managed to pull my finger out to ship a list of **a whole lot of interesting links about stuff going on in the world of data for November**, a whole three days left until the end of the month! rmoff.net/2025/11/26/i...
rmoff.net
Interesting links - November 2025
1135
Gunnar Morling @gunnarmorling.dev · 27/11/2025
🗣️ "The combination of AVRO’s binary encoding and lz4 compression delivered exactly what we wanted: an order-of-magnitude smaller footprint, faster network transfers and reduced latency" Great post by Emiliano Mancuso about the benefits of Avro for CDC pipelines 👍. 👉 medium.com/fresha-data-...
0111
Reposted by Gunnar Morling
Alexander Reelsen @spinscale.bsky.social · 26/11/2025
Building a Durable Execution Engine With SQLite Great article with accompanying Java code, that uses annotations, bytebuddy and sqlite to be able to resume jobs. Great to follow explanations plus code.
morling.dev
Building a Durable Execution Engine With SQLite
Lately, there has been a lot of excitement around Durable Execution (DE) engines. The basic idea of DE is to take (potentially long-running) multi-step workflows, such as processing a purchase order…
072
Reposted by Gunnar Morling
Markus Eisele @myfear.com · 26/11/2025
Java 25's new CPU-Time Profiler (1) buff.ly/70nU5zN #Java
buff.ly
Java 25's new CPU-Time Profiler (1) - Mostly nerdless
Learn all about Java 25's new CPU-time profiler and why it matters in this weeks blog post from the creator himself.
1118