Gunnar Morling on Technical Blogging
Java, data streaming & OSS champion Gunnar Morling on how blogging shapes careers and technology
We’re back with another friendly “you’re not writing enough” reminder :-)
Following up on writethat.blog and Writing for Developers: Blogs That Get Read, we’re sharing the perspectives of expert tech bloggers: why they write, how they tackle writing challenges, and their lessons learned. This time, we’re featuring Gunnar Morling, currently Technologist at Confluent.
Gunnar’s name quickly surfaces in any conversation about Debezium/Change Data Capture, realtime stream processing, or the wildly popular One Billion Row Challenge. An open-source enthusiast at heart, he has founded projects such as JfrUnit, kcctl, and MapStruct. Across all of it, he’s been running around (often literally) to share his insights at conferences. Fortunately for those of us who can’t keep pace, he has also been a dedicated blogger since 2009 (!!!).
Over to Gunnar…
Why did you start blogging – and why do you continue?
I started blogging for a couple of reasons really. First, it just helps me to take note of things I learned and which I might want to refer to again in the future, like how to prevent ever-growing replication slots in Postgres. I figured, instead of writing things like that down just for myself, I could make these notes available on a blog so others could benefit from them, too. Then, I like to explore and write about technologies such as Java, OpenJDK Flight Recorder, or Apache Kafka. Some posts also distill the experience from many years, for instance discussing how to do code reviews or writing better conference talk abstracts. Oftentimes, folks will add their own thoughts in a comment, from which I can then learn something new again–so it’s a win for everyone.
Another reason for blogging is to spread the word about things I’ve been working on, such as kcctl 🐻, a command-line client for Kafka Connect. Such posts will, for instance, introduce a new release or discuss a particular feature or use case and they help to increase awareness for a project and build a community around it. Or they might announce efforts such as the One Billion Row coding challenge I did last year. Finally, some posts are about making the case for specific ideas, say, continuous performance regression testing, or how Kafka Connect could be reinvisioned in a more Kubernetes-native way.
Overall — and this is why I keep doing it — blogging is a great way for me to express my thoughts, ideas, and learnings, and share them with others. It allows me to get feedback and input on new projects, and it’s an opportunity for helping as well as learning from others.
What has been the most surprising impact of blogging for you?
Blogging opened up so many opportunities and connections for me over the years. In a way, it really formed the foundation for my career in the Java and data streaming space.
In 2009, I wrote a post about the Bean Validation API for data validation in Java. This caught the attention of the folks working on this project at Red Hat at the time, and they reached out to me to ask whether I’d be interested in writing the documentation for Hibernate Validator, the reference implementation of the Bean Validation specification. So I did that, and I became more and more active as a contributor to that project, which led to landing a job at Red Hat in 2012.
Also later, when moving to Decodable, and just recently to Confluent, my writing played an important role.
What blog post are you most proud of and why?
One post I’m still really proud of is “Reliable Microservices Data Exchange With the Outbox Pattern”. It describes a pattern which allows services to safely update the state in their own local database and at the same time emit a message to external event consumers via Apache Kafka, without incurring error-prone dual-writes. This post was and is referenced a lot and it was vital for making the outbox pattern more popular.
Another one, also related to my work on Change Data Capture (CDC), is “Change Data Capture Breaks Encapsulation. Does it, though?“ I like it because it provides an important angle to the discussion around CDC.
Finally, I highly enjoyed writing “The JDK Flight Recorder File Format”, as there was no comprehensive description of this format, so I spent quite a bit of time researching it and creating an extensive visualization using one of my most favourite tools, Excalidraw 🙂.
What post was the most difficult to write and how did you tackle it?
“Big Picture” posts, more on the thought leadership end of the spectrum, can sometimes be challenging to write if you lack a good idea or angle for framing your idea.
The notorious empty page problem can be hard to overcome: you don’t know how and where to start. What I found to be helpful in this situation is to just start by writing down specific thoughts and details which are on your mind already, no matter where they’d end up in the final post. As you keep doing that, drilling into specific facets of the topic, an overarching narrative will oftentimes just form naturally following from that.
Also, I like putting posts aside for a bit and coming back to them later on with a fresh mind. Oftentimes, this helps you to look at the topic from another perspective. On the flip side, I have a few unfinished blog posts sitting on the shelf. In some cases, just powering through and driving a piece home can also be the right thing. Not every post has to be groundbreaking, and it’s peace of mind to wrap up one thing and move on to the next.
Any lessons learned that you want to share with the community?
A common question I see is “What should I write about?” Or, “Everything has been said already, what should I add?” While it’s true that there’s a lot out there already, I think there’s always value in sharing your own personal perspective on things. Nobody will look at a certain topic or question with exactly your background, experience, and context, so there will be a unique angle to that.
There’s a huge demand for entry-level content on all kinds of technologies, so just sharing your own experiences, for instance from learning about a new language, library, or tool, will be useful for the next person in a similar situation. In fact, you might actually be better able to relate to that perspective of other beginners than a person highly experienced with the subject matter!
And don’t forget that you are your own reader too. I can’t count how many times I went back to a blog post I wrote some time ago to read up on some details I had forgotten since then.
Your advice for people just getting started with blogging?
First, as mentioned before, don’t be afraid of writing about things that might seem not interesting or novel enough. If there’s something which you found interesting, chances are somebody else will find it interesting, too.
Then, and that might be a bit controversial, I’d recommend starting on your own domain from the get go, rather than on a shared place like medium.com. While it can be a bit more hassle to set that up initially, it will help you a lot to build your own, independent brand, and it just creates a more professional perception. It also means you are in control of things, nobody can change how your posts can be accessed, etc. As far as tooling is concerned, I’m a big proponent of static site generators (I am using Hugo for my own blog, published via GitHub Pages). They give me the biggest freedom in terms of layout and formatting and I like the workflow of writing blog posts in source formats such as AsciiDoc and storing them in git. But then, others prefer tools like WordPress with a more WYSIWYG-like experience, so you should try out what suits you best.
Lastly, be patient. Blogging is a long game, you shouldn’t be depressed when not getting too many readers or comments initially. It takes years to build up an audience, and on the way there, it can sometimes feel a bit like shouting into the void. It’s about building up a corpus of interesting posts over a longer period of time. Success will come eventually, and later on it can be very rewarding to see how posts from years ago are still regularly receiving comments or are referenced from other places.
A few blogs that you particularly enjoy?
I really enjoy the writing of Jack Vanlightly. His in-depth discussions of distributed systems and event streaming are always so interesting to read. Gwen Shapira is doing an excellent job in exploring topics such as transaction isolation and explaining concepts like Gen AI. Other writers in the data and infra space I enjoy are Yaroslav Tkachenko and Chris Riccomini. As far as company blogs are concerned, I think fly.io's blog is a really good example for continuously sharing interesting and relevant topics, thus helping them to position themselves as a technical leader.
***
Stay tuned for more tech blogger spotlights. Coming up: Phil Eaton, Matt Butcher, Amos Wenger, Glauber Costa, Scott Hanselman… These will be mixed in with the monthly writethat.blog updates.