Christoph Berger
banner
christophberger.com
Christoph Berger
@christophberger.com
From Code to Clarity: Making Complex Technology Accessible
When data comes in, undistilled
Get dozens of workers to build
Collect the result
When they come to a halt
And the buffer is readily filled

newsletter.appliedgo.net/archive/2025...

#golang
Map it, Reduce it, Buffer it, Profile it • The Applied Go Weekly Newsletter 2025-11-23
Map it, Reduce it, Buffer it, Profile it Hi , Processing large amounts of data within a short amount of time? This just cries for concurrency, or, more...
newsletter.appliedgo.net
November 25, 2025 at 3:47 PM
- Go turns 16
- How Go and Rust differ
- The Go ecosystem in 2025

Another Applied Go Weekly Newsletter issue!

newsletter.appliedgo.net/archive/2-4-...

#golang
2^4 • The Applied Go Weekly Newsletter 2025-11-16
2^4 Hi , Some weeks spill over with new blog posts, some not so much. I should be used to it from years of running this newsletter week by week. But this...
newsletter.appliedgo.net
November 18, 2025 at 3:28 PM
Reposted by Christoph Berger
Happy birthday to the only two women with elements named after them on the periodic table: #MarieCurie & #LiseMeitner.

As I do every year, I will once again repeat my proposal that November 7 should be International #WomenInSTEM Day!

#histSTM #chemistry #physics
#OnThisDay #OTD #PeriodicTable👩‍🔬🗃️📜
November 7, 2025 at 2:29 PM
What if you could write shell scripts like a short story (and use Go code in that process)?

I tested integrating Go into Atuin Runbooks; find the results in the latest Applied Go Weekly Newsletter.

newsletter.appliedgo.net/archive/2025...

#golang
Literate Scripting • The Applied Go Weekly Newsletter 2025-10-12
Literate Scripting Hi , A compiled language usually isn't designed to be a good scripting language. Go isn't either, but projects like Mage, Yaegi, or...
newsletter.appliedgo.net
October 14, 2025 at 2:14 PM
A plane's flight recorder is of little use for determining why the plane has been late. Go's flight recorder, on the other hand, is perfectly suited for that kind of investigation!

newsletter.appliedgo.net/archive/2025...

#golang
Enjoy The Flight! • The Applied Go Weekly Newsletter 2025-09-28
Enjoy The Flight! Hi , Q4 has begun, and the Applied Go Weekly Newsletter isn't quite dead yet. Au contraire, mon ami, I am busy optimizing my workflow to...
newsletter.appliedgo.net
October 1, 2025 at 3:51 PM
“Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius — and a lot of courage to move in the opposite direction.”
― E.F. Schumacher

newsletter.appliedgo.net/archive/2025...

#golang
Never Get Bored With The Basics • The Applied Go Weekly Newsletter 2025-09-14
Never Get Bored With The Basics Hi , Are you ready for a journey? I am planning to do a Spotlight series about building a basic SaaS platform for...
newsletter.appliedgo.net
September 16, 2025 at 2:45 PM
"We're now in a liminal moment, where our tools have outpaced our frameworks for understanding them."

– Gian Segato

giansegato.com/essays/proba....
August 24, 2025 at 2:15 PM
git commit -m...

Uh, what commit message shall I write... what could I... perhaps... ummm, what did I even change...

AI, do you have an idea?

newsletter.appliedgo.net/archive/2025...

#golang
Commit Messages That Write Themselves
Commit Messages That Write Themselves Hi , The final 🌴 Summer Break 🌴 issue is in your inbox! With this issue, I'm concluding the AI series and looking...
newsletter.appliedgo.net
August 19, 2025 at 2:42 PM
The world:

- The thing you are trying to do
- Things causing problems now
- Things that will be causing problems soon
- Things that are not causing problems

–David Adrian
Tech Debt? I don't believe it exists.
Rodents of Unusual Size? I don't believe they exist. There’s endless discourse around tech debt. Kellan has some really good categorizations of different types, Will Larson has a great explainer of organization debt in his book, and I also like the idea of product debt. Throughout my career, I’ve been an engineer complaining about tech debt, a manager prioritizing (and deprioritizing) addressing tech debt, and a product manager, where I assume I primarily inspire the creation of new tech debt.
dadrian.io
August 15, 2025 at 2:02 PM
Let the coolest backend language and the hottest AI technologies team up for raving success!

newsletter.appliedgo.net/archive/2025...

#golang
Blue Gopher Meets Stochastic Parrot • The Applied Go Weekly Newsletter 2025-08-10
Blue Gopher Meets Stochastic Parrot Hi , Geez, the previous Spotlight was a bit long and code-heavy (for a Spotlight), wasn't it? Even though this newsletter...
newsletter.appliedgo.net
August 12, 2025 at 2:43 PM
Blah blah blah... Only chatting with an app is boring. Let's give them some toys to play with!

newsletter.appliedgo.net/archive/2025...

#golang
You're Lucky: Full Moon Tonight! • The Applied Go Weekly Newsletter 2025-08-03
You're Lucky: Full Moon Tonight! Hi , This is the second of four 🌴 "Summer Break" 🌴 issues with reduced content. As you may have guessed when you read the...
newsletter.appliedgo.net
August 5, 2025 at 9:05 PM
Charm_ released Crush, an open-source, multi-model Claude Code alternative.

It's the first AI coding tool I know that comes with an honest warning message.

(Nerd sniping definition: xkcd.com/356/)

github.com/charmbracele...

#aicoding #golang
July 30, 2025 at 9:17 PM
Algorithms are precise, LLMs are wobbly, flaky, hallucinating machines. Would you want to have your code call an LLM and process its replies? Sure you would.

newsletter.appliedgo.net/archive/2025...

#golang
Let's Ask An LLM • The Applied Go Weekly Newsletter 2025-07-27
Let's ask an LLM Hi , This newsletter is in 🌴 Summer Break Mode 🌴 until August 24th, which means reduced content, and I decided to take the opportunity to...
newsletter.appliedgo.net
July 29, 2025 at 5:05 PM
Reposted by Christoph Berger
You might be over-engineering your workflow orchestration.

I just shipped a simple Go library that gives you:
- Conditional branching
- Parallel execution
- Retry management
- State management
- Embedded scripting
- Snapshotting interfaces

🚀 github.com/deepnoodle-a...

#golang
GitHub - deepnoodle-ai/workflow: An easy-to-use workflow automation library for Go. Supports conditional branching, parallel execution, embedded scripting, and execution checkpointing. Think of it lik...
An easy-to-use workflow automation library for Go. Supports conditional branching, parallel execution, embedded scripting, and execution checkpointing. Think of it like a lightweight hybrid of Temp...
github.com
July 28, 2025 at 6:43 PM
Go vs JSON: The cards are being reshuffled.

The latest Applied Go Weekly Newsletter is here!

newsletter.appliedgo.net/archive/2025...

#golang
New And Improved Formula! • The Applied Go Weekly Newsletter 2025-07-20
New And Improved Formula! Hi , In this corner: JSON, the champion of sloppy data constructs. In the opposite corner: Go, the guardian of rigid data...
newsletter.appliedgo.net
July 22, 2025 at 2:18 PM
Browsers allow any tab to use the session context of other tabs. Servers have to take measures to protect against the resulting cross-site request forgery (with the help of browsers, to be fair).

Go 1.25 makes CSRF protection considerably easier.

appliedgo.net/spotlight/cs...

#golang
Don't Mess With My Site! (New in Go 1.25: CrossOriginProtection)
Fighting cross-site request forgery (CSRF) becomes easier in Go 1.25, thanks to the new cross origin protection feature.
appliedgo.net
July 18, 2025 at 2:06 PM
Take notes, but not too many.

(Go 1.25 gets a flight recorder.)

appliedgo.net/spotlight/go...

#golang
Spotlights
Short tips, essays, and news about working with Go and software development. Most spotlights originate from my [Go newsletter](https://newsletter.appliedgo.net/archive).
appliedgo.net
July 16, 2025 at 2:35 PM
Infiltrating a web site through cross-site request forgery (CSRF) becomes harder with Go 1.25.

Wait, what?

No, protecting a web site against CSRF becomes easier with Go 1.25!

newsletter.appliedgo.net/archive/2025...

#golang
Don't Mess With My Site! • The Applied Go Weekly Newsletter 2025-07-13
Don’t Mess With My Site! Hi , There are myriad ways of attacking a web app, and cross-site request forgery is a particularly perfidious way of hijacking an...
newsletter.appliedgo.net
July 15, 2025 at 5:10 PM
WaitGroups in Go will become more convenient and beginner-friendly in Go 1.25, thanks to a small but very effective addition:

A Go() method.

No more Add()s.
No more Done()s.
Just one Go() and one Wait().

Nice!

appliedgo.net/spotlight/go...

#golang
New in Go 1.25: WaitGroup.Go()
WaitGroups are a means of synchronizing goroutines; yet the Add()/defer Done() idiom feels clumsy and is error-prone. A new method, Go(), puts an end to goroutine counting.
appliedgo.net
July 10, 2025 at 2:21 PM