Sign in

Christoph Berger

@christophberger.com
52 followers 54 following 186 posts

From Code to Clarity: Making Complex Technology Accessible

PostsRepliesMedia
Christoph Berger @christophberger.com · 25/09/2026
Everyone's talking about how future AI will kill humanity. Trust me: Humanity doesn't need AI to wipe itself off this planet.
000
Christoph Berger @christophberger.com · 25/09/2026
Well, I *should* automate this eventually... So, here's the latest Applied Go Weekly Newsletter issue. (Subscribers receive the issue every Sunday (usually).) Here is the online version, better late than never 😬 newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
Security Fix Ahead! Upgrade or Wait? • The Applied Go Weekly Newsletter 2026-09-20
Security Fix Ahead! Upgrade or Wait? Hi , AI can be a effing nightmare ... sometimes. It turns criminals into criminals on steroids. Defense and prevention...
010
Christoph Berger @christophberger.com · 09/09/2026
The Applied Go Weekly Newsletter is back from the summer break! Amidst a flood of AI-generated code, let's not forget how satisfying manual coding can be. newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
The Joy of Hand-Knitting Go Code
The joy of hand-knitting Go code Hi , Back from the summer break (or winter break, if you live in the southern hemisphere)! The most important thing that...
011
Reposted by Christoph Berger
GoLand, a JetBrains IDE @goland.jetbrains.com · 02/09/2026
Everything you need to know about error handling in Go is now on our blog, courtesy of @christophberger.com. Read the article to learn how to properly wrap, log, and return errors, when to panic or defer, how to handle network and I/O errors, and what mistakes to avoid 👉 jb.gg/qz9w5w
jb.gg
How to Handle Errors in Go - The JetBrains Blog
Error handling is one of the biggest stumbling blocks for new Go developers – this article teaches you how to do it correctly and what mistakes to avoid.
021
Christoph Berger @christophberger.com · 19/08/2026
Go 1.27 is out! go.dev/doc/go1.27 #golang
go.dev
Go 1.27 Release Notes - The Go Programming Language
The latest Go release, version 1.27, arrives in August 2026, six months after Go 1.26. Most of its changes are in the implementation of the toolchain, runtime, and libraries. As always, the release maintains the Go 1 promise of compatibility. We expect almost all Go programs to continue to compile and run as before.
010
Christoph Berger @christophberger.com · 30/06/2026
How to protect human arts. tidal.com/ai-policy #aislop #ai #humanarts
tidal.com
tidal.com
010
Christoph Berger @christophberger.com · 23/06/2026
The beauty of tech blogging: Others describe the traps they fell into so you can learn from their experience. newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
The Smart Gopher Gets The Cheese • The Applied Go Weekly Newsletter 2026-06-21
The Smart Gopher Gets The Cheese Hi , You may know the saying: "The second mouse gets the cheese." Sure, it does—after the first mouse got killed by the...
010
Christoph Berger @christophberger.com · 16/06/2026
How to become familiar with a codebase: Option A - Stare at the code for three days Option B - Apply four easy steps before breakfast newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
The Unexamined Code • The Applied Go Weekly Newsletter 2026-06-14
The Unexamined Code Hi , Would you attempt to repair a bicycle without having an idea how the parts work, how to take them apart and put them together again?...
010
Christoph Berger @christophberger.com · 03/06/2026
AI finds new exploits by the minute. But it doesn't take a cyberattack to make an app break. Make your Go code robust against failure; here are five techniques for a start. newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
Bulletproof • The Applied Go Weekly Newsletter 2026-05-31
Bulletproof Hi , Make it work, make it robust, make it fast: The first is easy, the third is optional. Number two is underestimated until prod is down....
010
Christoph Berger @christophberger.com · 20/05/2026
Don't take things for granted. How exactly does Go compile your code into a binary? What exact error condition does this if statement evaluate? What's behind the txtar archive format? newsletter.appliedgo.net/archive/2026...
newsletter.appliedgo.net
It Works. (But Why?) • The Applied Go Weekly Newsletter 2026-05-17
It Works. (But Why?) Hi , In this week's featured articles, you can inspect the Go compiler, examine error handling gone wrong, and dissect a simple archive...
000
Christoph Berger @christophberger.com · 15/05/2026
You can't look away forever. Pretending it's not for you. Hoping you can go on as always. Just try it once. And let it blow your mind. newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
No More Excuses • The Applied Go Weekly Newsletter 2026-05-10
No More Excuses Hi , All my true readers can skip the first featured article. You don't have to be convinced anymore! For everyone else, if you're still not...
011
Christoph Berger @christophberger.com · 29/04/2026
How the %#*& does this work? Don't ask. Find out. newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
Not Magic • The Applied Go Weekly Newsletter 2026-04-26
Not Magic Hi , I bet you've had this situation more than once: Something feels like magic, until you start looking closer, peeking under the hood, and...
000
Christoph Berger @christophberger.com · 31/03/2026
When type systems bring type checkers to their limit, naming things is still an art, and tests don't target business logic, then it's time for another Applied Go Weekly Newsletter. newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
Turning Insights into Pages • The Applied Go Weekly Newsletter 2026-03-29
Turning Insights into Pages Hi , Maybe you have noticed that my courses Master Go and Concurrency Deep Dive can't be purchased anymore. This wasn't a...
110
Reposted by Christoph Berger
James Grimmelmann @jtlg.bsky.social · 29/03/2026
It may or may not be true that whether or not you race to use AI heavily right now will determine whether you’re part of a future wealthy elite ruling class or are left behind in poverty and powerlessness. But if it is true, this strikes me as a deeply immoral future worth fighting hard against.
410024
Christoph Berger @christophberger.com · 19/03/2026
The Lethal Trifecta is a systemic weakness of LLMs, but only if you let it happen. appliedgo.net/spotlight/le...
appliedgo.net
The Lethal Trifecta (and how to avoid it)
A new attack targets LLMs that can access your data and the internet. The remedy: just don't let them. It's easier than you might think.
000
Christoph Berger @christophberger.com · 25/02/2026
The perfect tool to fix old code. Ten mantras for writing perfect code. And a perfect case for dumbing down LLMs with code. newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
Perfect. • The Applied Go Weekly Newsletter 2026-02-22
Perfect. Hi , This issue is about perfect things: The perfect tool to fix old code. Ten mantras for writing perfect code. And a perfect case for dumbing down...
000
Christoph Berger @christophberger.com · 17/02/2026
Go 1.26 is out, and what I like most (so far) is the brand new `go fix` command. Forget all you know about the old `go fix` (if you even have been aware of its existence). newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
If It Ain't Broken, Go Fix It! • The Applied Go Weekly Newsletter 2026-02-15
If It Ain't Broken, Go Fix It! Hi , The new go fix command of Go 1.26 should have really been named go polish or go beef-it-up. What go fix, you ask? Well,...
000
Christoph Berger @christophberger.com · 12/02/2026
Newsletter = Issue { [ ',' Issue ] } . Issue = Title Content . Title = '# ' Words . Content = Words . Words = { Word [ PS ] } . Word = Letter [ { Letter } ] . Letter = `[A-Za-z]` . PS = '.' | ',' | ' ' | '\n' newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
What Came First: The Token or The Egg? • The Applied Go Weekly Newsletter 2026-02-08
What Came First: The Token or The Egg? Hi , Imagine you write a specification, you pass it as input to a MACHINE, and the MACHINE spits out working code! I'm...
000
Christoph Berger @christophberger.com · 03/02/2026
A client judges a contractor by their output, not by how they achieve that output. Your unit tests should do that, too. newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
Test Your Contracts • The Applied Go Weekly Newsletter 2026-02-01
Test Your Contracts Hi , I have a new Spotlight for you! For newer readers, I write occasional mini-articles for this newsletter. Today's spotlight discusses...
010
Christoph Berger @christophberger.com · 27/01/2026
- The Go Developer Survey - How to mock dependencies without a mocking library - Write a compiler The latest Applied Go Weekly Newsletter is here! newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
The Shift That Did Not Come (Yet) • The Applied Go Weekly Newsletter 2026-01-25
The Shift That Didn't Come (Yet) Hi , The Go developer survey 2025 results are out, and one thing that caught my attention is how the Go community (or...
010
Christoph Berger @christophberger.com · 20/01/2026
Nah, the gems in the latest Applied Go Weekly Newsletter issue aren't hidden; they're in plain sight. The hidden ones are in the first featured article. newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
Hidden Gems • The Applied Go Weekly Newsletter 2026-01-18
Hidden Gems Hi , How many times have you invoked go run, go build, go test and other Go tools? Every time, you can trust the toolchain to do its job....
110
Christoph Berger @christophberger.com · 15/01/2026
Make better AI with Go. Make better Go apps with AI. (Heck, or just make silly AI and silly Go apps—just have fun!) appliedgo.net/spotlight/ai... #golang
appliedgo.net
AI and Go in 2026
AI for Go development, in Go apps, and written in Go. A list.
020
Christoph Berger @christophberger.com · 14/01/2026
A programming language's version number that corresponds to the last two digits of the year the version is released is like a blue moon, just rarer. newsletter.appliedgo.net/archive/2026... #golang
newsletter.appliedgo.net
2026 And Go 1.26 • The Applied Go Weekly Newsletter 2026-01-11
2026 and Go 1.26 Hi , Welcome to 2026, and welcome back to The Applied Go Weekly Newsletter! Back from the winter break, let's look forward to Go 1.26 and...
020
Christoph Berger @christophberger.com · 05/01/2026
I knew you can't trust those AI bros!
Boris Cherny:
I hope this was helpful! What are your tips for using Claude Code? What do you want to hear about next?

Mike Khristo:
dude i thought you could be trusted, but light mode in terminal?

Boris Cherny:
Engineers literally stop by my desk to make fun of me

Mike Khristo:
"thanks for changing the field of engineering, Boris Lightmode"
100
Christoph Berger @christophberger.com · 16/12/2025
I'm not saying this Gin rant will start a flame war, but I've prepared popcorn just in case. 🍿 newsletter.appliedgo.net/archive/2025... #golang
newsletter.appliedgo.net
Spilling the Gin • The Applied Go Weekly Newsletter 2025-12-14
Spilling The Gin Hi , Once upon a time, when HTTP routing packages were still rare, there was a new project named Martini. Quickly, it grew popular but also...
100
Christoph Berger @christophberger.com · 09/12/2025
For convenient coding, you need an interpreted language. For writing fast apps, you need a low-level system language. Excuse me, that's complete rubbish. newsletter.appliedgo.net/archive/2025... #golang
newsletter.appliedgo.net
From Slow To Go • The Applied Go Weekly Newsletter 2025-12-07
From Slow To Go Hi , What's your most-loved feature of Go? I have quite a few, but there is one that has repeatedly made a difference after switching to Go:...
130
Christoph Berger @christophberger.com · 03/12/2025
If you want to write good, performant software, become friends with the hardware. No, I'm not talking about the Stockholm Syndrome. newsletter.appliedgo.net/archive/2025... #golang
newsletter.appliedgo.net
Mechanical Sympathy • The Applied Go Weekly Newsletter 2025-11-30
Mechanical Sympathy Hi , There are two things in Go that probably don't grab a newcomer's immediate attention: The mechanics of heap allocation and data...
000
Christoph Berger @christophberger.com · 25/11/2025
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
newsletter.appliedgo.net
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...
020
Christoph Berger @christophberger.com · 18/11/2025
- 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
newsletter.appliedgo.net
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...
030
Christoph Berger @christophberger.com · 11/11/2025
Learning by Reading: Go Projects to learn from newsletter.appliedgo.net/archive/2025... #golang
newsletter.appliedgo.net
Buil[d|t] To Learn • The Applied Go Weekly Newsletter 2025-11-09
Buil[d|t] To Learn Hi , Sometimes, building a project is the best way to learn a particular topic. As a close second, inspect projects built by others to...
000
Christoph Berger @christophberger.com · 09/11/2025
Matcha FTW! newsletter.appliedgo.net/archive/2025... #golang
newsletter.appliedgo.net
Go Faster With Green Tea • The Applied Go Weekly Newsletter 2025-11-02
Go Faster With Green Tea Hi , Go's garbage collector has gone through a remarkable journey. In Go 1.5, the Go team implemented a tri-color concurrent...
020
Reposted by Christoph Berger
Ben Gross @bhgross144.bsky.social · 07/11/2025
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👩‍🔬🗃️📜
The squares for Curium and Meitnerium from periodictable.com, featuring portraits of their respective namesakes, are presented above a caption "Only two women have chemical elements named after them.
Both were born on November 7th."

(I'm aware that there was some ambiguity surrounding Lise Meitner's birthday, but Ruth Lewin Sime's biography notes that Meitner celebrated the occasion on November 7.)
420283
Christoph Berger @christophberger.com · 28/10/2025
Use these tips and your Go code ships. newsletter.appliedgo.net/archive/2025... #golang
newsletter.appliedgo.net
Practice Best Practices • The Applied Go Weekly Newsletter 2025-10-26
Practice Best Practices Hi , Hey, psst! Wanna have some tips for writing better Go? Here you are: Two articles about enhancing your coding, one about making...
000
Christoph Berger @christophberger.com · 14/10/2025
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
newsletter.appliedgo.net
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...
121
Christoph Berger @christophberger.com · 07/10/2025
Dependencies: Avoid or not? newsletter.appliedgo.net/archive/2025... #golang
newsletter.appliedgo.net
The Cost Of (Avoiding) Dependencies • The Applied Go Weekly Newsletter 2025-10-05
The Cost Of (Avoiding) Dependencies Hi , From custom SQL backends to time as a performance bottleneck: Another week of Go (and not-so-Go-ish) news. Enjoy!...
000
Christoph Berger @christophberger.com · 01/10/2025
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
newsletter.appliedgo.net
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...
000
Christoph Berger @christophberger.com · 16/09/2025
“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
newsletter.appliedgo.net
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...
020
Christoph Berger @christophberger.com · 06/09/2025
Better late than never: The latest Applied Go Weekly Newsletter is here! newsletter.appliedgo.net/archive/2025... #golang
newsletter.appliedgo.net
So you don't like Go? • The Applied Go Weekly Newsletter 2025-08-31
So You Don't Like Go? Hi , Awww, the 2nd issue after the summer break! I wanted to use the break for streamlining and automating my newsletter editing...
010
Christoph Berger @christophberger.com · 24/08/2025
"We're now in a liminal moment, where our tools have outpaced our frameworks for understanding them." – Gian Segato giansegato.com/essays/proba....
000
Christoph Berger @christophberger.com · 19/08/2025
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
newsletter.appliedgo.net
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...
030
Christoph Berger @christophberger.com · 15/08/2025
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
dadrian.io
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.
000
Christoph Berger @christophberger.com · 12/08/2025
Let the coolest backend language and the hottest AI technologies team up for raving success! newsletter.appliedgo.net/archive/2025... #golang
newsletter.appliedgo.net
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...
020
Christoph Berger @christophberger.com · 05/08/2025
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
newsletter.appliedgo.net
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...
000
Christoph Berger @christophberger.com · 30/07/2025
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
Warning: Productivity may increase when using Crush and you may find yourself nerd sniped when first using the application.
If the symptoms persist, join the Discord and nerd snipe the rest of us.
030
Christoph Berger @christophberger.com · 29/07/2025
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
newsletter.appliedgo.net
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...
000
Reposted by Christoph Berger
Curtis Myzie @mzcr.bsky.social · 28/07/2025
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.com
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...
142
Christoph Berger @christophberger.com · 22/07/2025
Go vs JSON: The cards are being reshuffled. The latest Applied Go Weekly Newsletter is here! newsletter.appliedgo.net/archive/2025... #golang
newsletter.appliedgo.net
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...
010
Christoph Berger @christophberger.com · 18/07/2025
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
appliedgo.net
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.
100
Christoph Berger @christophberger.com · 16/07/2025
Take notes, but not too many. (Go 1.25 gets a flight recorder.) appliedgo.net/spotlight/go... #golang
appliedgo.net
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).
001
Christoph Berger @christophberger.com · 15/07/2025
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
newsletter.appliedgo.net
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...
000