☕ Welcome to The Coder Cafe! This week marks the first anniversary of the newsletter. To celebrate, I will share its story. Get cozy, grab a coffee, and let’s begin!
Origins
We were in July 2024. It was a warm weekend, and I was lying in bed thinking about my next “big thing”. A few years earlier, I had finished writing my book. It was an exhausting experience, but I finally felt ready for another challenge.
All of a sudden, I got an idea. What if I launched… a podcast?
I jumped out of bed, searched for a book on podcasts, bought one, and started reading about all that needs to be known: the different formats, how to find an audience, whether we should invite guests, and so on.
I even had the perfect name. As a lover of the cozy atmosphere of coffee shops, I wanted my podcast to reflect that same warm ambience.
The name would be The Coder Cafe.
But a few days later, the excitement faded. Did I really want to make a podcast after all? I had a few concepts in mind, but none of them truly clicked. Eventually, I decided to drop the idea.
Yet the name The Coder Cafe stuck with me. I checked thecoder.cafe domain, and it was available. Every great story starts with a domain name. Let’s buy it!
Now I had a domain name, but I still didn’t know what to do about it.
Around that time, I started reading a lot of newsletters. One in particular inspired me for the quality and regularity of its content:
by.
I even launched one called Go Engineer, which I quickly stopped. Thanks to my book, I already had a Go audience. But deep down, I didn’t want to write only about Go anymore. I didn’t want to be tied to a single language when there are so many areas I’m passionate about: code health, testing, distributed systems, reliability, observability, performance, and more.
At some point, the two ideas converged. I would create a newsletter, and it would be called The Coder Cafe. It wouldn’t be tied to one language. It would be a place where any software engineer could find something useful.
I already had experience with online writing. My Medium blog had more than 4k followers. But since my book, I hadn’t really written there. I needed a fresh start and a chance to relearn how to write online. Writing a book and writing online are two very different activities. So I ditched my book on podcasts and bought another one: The Art and Business of Online Writing.
If you don’t know this book, I really recommend it. Two principles in particular stuck with me:
Volume matters. The most popular blogs and newsletters publish often.
Timeless topics matter. Daily news about which stock to buy has volume but no staying power. Timeless content always wins.
These two ideas would shape my newsletter: I wanted to write daily (volume) and focus on fundamental concepts (timeless).
I started drafting the newsletter description:
Feeling overwhelmed by the endless stream of tech content? At The Coder Cafe, we serve timeless concepts with your coffee, every day.
At first, I planned to publish five posts per week on different topics. But after talking with my girlfriend, she suggested I group posts by theme. For example, one week on caching, another on testing, etc. I loved the idea. She also recommended writing a recap post at the end of the week as a way to reinforce learning. I loved this idea even more. I wasn’t sure people wanted to read my content during the weekend, though, so I refined the plan:
Four posts from Monday to Thursday, each on one core concept.
A recap on Friday, to reinforce the week’s lessons.
By mid-August, the concept was finalized. It was time to write some posts find a good logo!
The Quest for the Right Logo
I bought a paid subscription to Canva and spent my whole weekend creating different logo variations:
None of them really convinced me, though. When I was about to design yet another version, this time of a logo that repeats inside itself a few times to hint at recursion, I suddenly became aware of my lack of artistic skills. I decided to delegate the work, heading to Fiverr to find a freelancer.
That’s how I met a very talented artist, Eli Huynh. She even worked on the Attack on Titan anime, can you believe it? I asked her to craft a coffee shop logo, and I slipped in some personal touches I wanted to see hidden in the design:
An illustration of Designing Data-Intensive Applications by
, my favorite computer science book.Moby Dock, the Docker mascot (I worked at Docker and loved my time there!)
A Docker command on the coffee machine.
She produced this beautiful masterpiece:
I shared it with different people, and the feedback was unanimous: the drawing was stunning, but… it was not really a logo. Nothing against the artist, obviously, I was the one giving the requirements, but indeed, it wasn’t a logo.
So I moved this illustration to the About page and kept searching for another freelancer. After a few failures, I started working with someone who feels promising. His first attempt was the following:
After many back-and-forths, we converged on this version:
When I received it, I loved it instantly. The colors felt warm and cozy. It captured the atmosphere I had in mind. Sometimes you don’t need outside validation, you just know. This logo would be The Coder Cafe’s identity.
In the end, I spent dozens of hours on this logo quest. You might think it was absurd, especially since I still hadn’t written a single post. But for me, visual identity had to come first. It’s like opening a restaurant: before designing the menu, you work on the atmosphere and decoration. Is it really absurd? I don’t think so.
The same applied to the tagline. I tried dozens of variations:
One daily concept.
Learn daily, grow deeply.
A timeless concept with your coffee.
Brewed daily.
Etc.
Eventually, I chose this one: One concept with your coffee. It captures exactly what I want: concepts, a cozy coffee-shop vibe, and a short, memorable line that feels right at home in The Coder Cafe1.
Paid?
Yes, initially, my idea was to create a paid newsletter. I even shared it with an ex-colleague who gave me blunt feedback:
I won’t give you my money; you already work at Google.
From the outside, it may sound harsh, but I didn’t take it negatively. It actually made me reflect.
Why did I want to create a paid newsletter in the first place?
One of the things I enjoy most in life is learning and teaching (whether through writing, speaking, or any other format). If I could one day make a living from these two activities, that would be a dream job. It’s that simple.
I didn’t create The Coder Cafe because I needed more money (of course, Google pays well). I made it because, in my dreams, it could eventually become my main activity.
So, starting as a paid newsletter felt natural at the time. It was my way of committing fully to the project and testing whether The Coder Cafe could be more than just a side experiment.
Launch
By the end of August, it was time to start creating content.
Publishing one post a day is a lot. I did not want to feel pressured every evening to write for the next day, so I decided to build a buffer of posts. Throughout September, I wrote 25 posts plus their recaps, enough for six weeks of content. That felt safe.
On October 7, 2024, The Coder Cafe newsletter was ready for launch, and its first post went live 🎉.
To organize free and paid content, my idea was simple. All posts during the first four weeks would be free. The goal was to build an audience and show that my writing was worth paying for. After that period, I would keep one post free per week and place the others behind a paywall. The free post would act as a sample for new readers.
The first week showed decent traction. I reached 120 free subscribers and 8 paid subscribers. The number of free subs was modest, but the paid-to-free ratio was good. Yet, to be honest, many of the early paid subscribers were friends or people who wanted to support me. Very few were convinced by the paid value proposition yet.
The second week was better. One post reached the front page of Hacker News and passed 25k views. In a single day, subscriptions jumped to 291 free and 11 paid. That is when I saw the real impact of Hacker News:
However, barely two weeks after launch, my girlfriend and I learned something that would have a massive impact on my daily newsletter: we were going to have a baby.
Balancing my job at Google, my girlfriend, some social life, and a daily newsletter was already challenging. With a newborn on the way, it became absolutely impossible.
Just one week after launch, I was the happiest man alive, but my daily newsletter concept was already dead.
Marketing
A quick pause to talk about marketing.
I’m not going to overwhelm you with my “massive” marketing campaign (aka one post on LinkedIn and one post on X).
But one day, I came up with a fun idea. What if I hid a coupon for lifetime access to the newsletter somewhere on thecoder.cafe website? Developers love puzzles. Maybe this could go viral?
I started by hiding a tiny URL in the illustration designed by Eli Huynh:
When pasted in a browser, this URL pointed to a Gist containing some JavaScript code.
Running the code displayed a Base64 string.
Decoding it three times gave another URL.
Visiting that link opened a blank page that printed yet another URL in the browser console.
That new URL pointed to an SVG file of a blue circle.
Opening the SVG’s source revealed a hidden message with a free coupon:
<svg width="200" height="200" xmlns="http://www.w3.org/2000/svg"> <desc>Congratulations! Email me at contact@thecoder.cafe with the title "f63dee1e".</desc> <circle cx="100" cy="100" r="50" fill="blue"/> </svg>
So, how many people found it?
None.
How many even reached the very first URL hidden in the image?
None.

Stopping The Coder Cafe?
So, I knew I would eventually have to stop publishing daily because I would run out of time. It broke my heart for one particular reason. With free subscribers, I can explore topics. If they do not like a post, they skip it. With paying subscribers, though, I felt accountable. People spend their own money on my content, and I cannot disappoint them. The daily newsletter was a contract between them and me, and I was about to break it.
In December, my buffer was shrinking fast, and I started to think seriously about stopping everything and refunding all paid subscriptions. Then something unexpected happened.
It was close to Christmas, and the post of the day was on TDD. I was at my parents’ home when I received an email notification: a new paid subscriber had joined. And not just anyone,
himself. Funny enough, I was not even praising TDD. I said that while it makes sense in some contexts, I do not really use it.A few days later, Kent left a comment on one of my posts:
Looking back, that comment changed everything for me. It gave me confidence in myself and in my writing. If someone like Kent Beck found value in what I was doing, then maybe there was something worth continuing.
Right after that, I took the bull by the horns and published a post titled Stepping Back to Move Forward. I explained that I would stop paid subscriptions, and I also pointed out a deeper issue with my daily format.
As I explained, each week had a theme, for example, unit tests. Due to limited writing time, the daily posts were not very long. Instead of writing one in-depth article, I split the topic into four posts. Since only one of them was free, that was the one I shared on platforms like Reddit. The feedback I got was often that it lacked depth.
I could have argued online: “But the depth is spread across four posts. If you read the whole series, you’ll see it. You just have to become a paid subscriber. Blah blah blah.”
Let’s be honest. Nobody would have cared. Readers judged the content they saw. If it looked shallow, they were right, period. This made it hard to attract new people, and apart from the post that went viral, most of my content stayed relatively anonymous.
One week later, I sent a private email to all paid subscribers. I explained I was stopping paid subscriptions and issuing refunds:
On January 3rd, I had 747 free subscribers and went from 15 to 0 paid. From that moment on, The Coder Cafe became about enjoying the writing without pressure to deliver and taking the time to delve more into each topic.
What Followed
In March, I decided to stop blogging on Medium and fully switch to Substack. I feel at home here. I also wondered what would happen if I wrote more personal reflections and stories rather than concepts. So, I created a new section called Lattes & Stories (this post is in this section). I really enjoy writing in a more storytelling style.
In April, I reached the 1,000 subscriber mark. To celebrate, I organized a coding challenge and gathered around $1,000 worth of prizes from Keychron,
, JetBrains, and O’Reilly. Thanks again to the sponsors! It was a lot of fun to run. Maybe I will do another one later. $10,000 of prizes for 10,000 subs? We can still dream.Also in April, the idea of building a community around The Coder Cafe started to emerge. I wanted to create a sense of belonging, where members feel that they matter to one another and to the group. So, I created a Discord server. I’m still exploring options to spark engagement.
In May, something surreal happened: , the very newsletter that inspired me, recommended The Coder Cafe2.
In September, I converted the content of year one into a 260-page book, available on Leanpub.
Also in September, I enabled sponsorships to explore partnerships with companies interested in supporting The Coder Cafe. If you would like to partner on a post, you can learn more here.
Some stats after one year:
The Coder Cafe reached more than 3,600 subscribers across 119 countries.
I wrote 78 posts and collected 309,432 views.
Two posts stood out and together represent about one-third of total views:
So, I Wrote a Book: The Story Behind 100 Go Mistakes and How to Avoid Them. I started writing this as soon as I finished my book, but it took three years to get the perspective to complete it. This post has a special meaning for me.
Working on Complex Systems: What I Learned Working at Google. A deep dive into complex systems, written during a holiday with my brother in a city life retreat in the middle of Sweden. That trip also gave the post a special meaning.
Conclusion and Future
So, is The Coder Cafe a success story?
Financially, no. Because Stripe took fees on subscriptions, I refunded more than I received, so the balance is even negative 😅.
But in the end, after one year, money wasn’t the measure of success. Positive feedback, helping readers, and rediscovering the joy of sharing stuff mattered more. It also pushed me to explore many topics across tech and non-tech.
I haven’t let go of the dream of making this my living, just not yet. My priority now is reaching more people and building a stronger community. We will see where that journey leads.
A glimpse into the future. I will continue to write about concepts and occasionally share stories. I will also launch a new section where we will pick a system and build it from scratch, step by step, week after week. I am currently collaborating with a company to craft the content of the first series. I am looking forward to releasing it.
Speaking of collaboration, I would love to explore this aspect, whether it’s partnering with companies, inviting other writers3, or featuring people with a worthy story. We will see.
🫶 I love sharing, and you give me an audience. Thank you for that.
See you next week for a (long) post on CRDTs.
Teiva
Resources
More From the Lattes & Stories Section
Sources
❤️ If you enjoyed this post, please hit the like button.
I will revisit this tagline months later to Learn one concept with your coffee.
Substack recommendations are a feature where one newsletter can endorse another, so its readers get suggested to subscribe.