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/2026Spent 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/2026Today 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! 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 MorlingInfoQ @infoq.com · 26/05/20261 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 #AIbit.lyChasing Efficient Java Development: From 1BRC to Developing Hardwood AI NativelyGunnar 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/2026The 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 MorlingTom Cooper @tomcooper.dev · 20/05/2026Now attending the World Premiere conference talk on Hardwood: the new Apache Parquet parser by @gunnarmorling.dev at #Current26 141
Reposted by Gunnar Morlingrmoff 🏃♂️🫖🥓 @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/2026Woot, 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 MorlingVicki @vickiboykis.com · 30/04/2026I 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 Morlingrmoff 🏃♂️🫖🥓 @rmoff.net · 26/03/2026And 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.netInteresting 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 Morlingrmoff 🏃♂️🫖🥓 @rmoff.net · 13/03/2026Inspired 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.netHow I do, and don’t, use AI on this blog 073
Reposted by Gunnar MorlingJulien Le Dem @julien.ledem.net · 05/03/2026If 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.orgVariant Type in Apache Parquet for Semi-Structured DataIntroducing 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 Morlingrmoff 🏃♂️🫖🥓 @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.netInteresting 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 MorlingNicolas Fonrose @nfonrose.bsky.social · 27/02/2026Interesting 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/2026Woot, 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/2026Most 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 MorlingHolly 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.devTen Tips to Make Conference Talks Suck LessTable 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/2026Today 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/2026It never stops being funny how Claude Code is patting its own should for the amazing job it's doing 🤣. 1201
Reposted by Gunnar MorlingInfoQ @infoq.com · 11/02/2026Discover 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/4avEDzZbit.lyAre You Missing a Data Frame? The Power of Data Frames in JavaVladimir 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/2026Spent 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 MorlingSebastian Korfmann @skorfmann.com · 21/01/2026We’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/45lfeyehluma.comAgentic Conf Hamburg 2026 · LumaFrom 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 MorlingJosé Paumard @josepaumard.bsky.social · 15/01/2026It starts in 10mn! www.youtube.com/watch?v=lVOR...youtube.com1B Rows with the Memory API - JEP Cafe #25YouTube 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/2026Made 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 MorlingA. Jesse Jiryu Davis @emptysqua.re · 22/12/2025Oh, 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.reHow To Use MongoDB Causal ConsistencyThe missing manual for a useful MongoDB feature. 1143
Gunnar Morling @gunnarmorling.dev · 24/12/2025Happy 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 MorlingJulien Le Dem @julien.ledem.net · 11/12/2025In 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.inkColumn Storage for the AI EraIn 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 MorlingCynthia Dunlop @cynthiadunlop.bsky.social · 10/12/2025Why 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-... 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/2025A 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 MorlingJack Vanlightly @vanlightly.bsky.social · 04/12/2025New 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.comThe Durable Function Tree - Part 1 — Jack VanlightlyIn 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 Morlinghettied.bsky.social @hettied.bsky.social · 01/12/2025PG 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.comIns and Outs of the Outbox Pattern, Gunnar MorlingYouTube video by Bulgarian Java User Group 1163
Reposted by Gunnar Morlingrmoff 🏃♂️🫖🥓 @rmoff.net · 27/11/2025Wait 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.netInteresting 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 MorlingAlexander Reelsen @spinscale.bsky.social · 26/11/2025Building 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.devBuilding a Durable Execution Engine With SQLiteLately, 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 MorlingMarkus Eisele @myfear.com · 26/11/2025Java 25's new CPU-Time Profiler (1) buff.ly/70nU5zN #Javabuff.lyJava 25's new CPU-Time Profiler (1) - Mostly nerdlessLearn all about Java 25's new CPU-time profiler and why it matters in this weeks blog post from the creator himself. 1118