Sign in

Konrad Reiche

@konradreiche.com
186 followers 124 following 205 posts

Writing ⌯Go at Reddit konradreiche.com

PostsRepliesMedia
Konrad Reiche @konradreiche.com · 18/09/2026
Code has become cheap. Code review is becoming cheap. So what is still scarce? Good decisions and good taste.
110
Konrad Reiche @konradreiche.com · 14/09/2026
I don't use panic much, so I didn't notice that you can pass any value to it and get that value back via recover. See for example in the Go standard library go.dev/src/go/parse... That doesn't mean I'd recommend making extensive use of it 😉
000
Reposted by Konrad Reiche
thepudds @thepudds.bsky.social · 10/09/2026
I’m very, very happy to share that I have just joined the core Go team at Google to work on the Go runtime and compiler! I’ve been pitching in as an external contributor since 2018, but now my very enjoyable hobby is becoming my day job 😅 (Also, my name is PJ 👋)
121868
Reposted by Konrad Reiche
GopherCon Japan @gophercon.jp · 08/09/2026
#GopherConJP [📣 Announcement 📣] GopherCon Japan 2027 date & venue are officially set! 🎉🇯🇵 🗓️ Date: Feb 13–14, 2027 (Sat–Sun) 🏢 Venue: Abema Towers More details, including CFPs, will be announced shortly. Stay tuned for more!
153
Konrad Reiche @konradreiche.com · 08/09/2026
One of my blog posts was discussed on r/golang and some readers described opening my blog as getting flashbanged 💥 A good time to add color preference support.
131
Konrad Reiche @konradreiche.com · 06/09/2026
Genuinely surprised by how well using the CSS property filter: invert(1) hue-rotate(180deg) works as a band-aid for dark mode across different images.
000
Konrad Reiche @konradreiche.com · 04/09/2026
Code review to find bugs should disappear. Let it validate decisions, e.g. does the chosen implementation add painful complexity? Code review gets a bad reputation when draft work is submitted restating the code. Reviews shine with why the code is needed and why the specific approach was chosen.
010
Reposted by Konrad Reiche
Gergely Orosz @gergely.pragmaticengineer.com · 03/09/2026
Write about how software engineering is changing inside your company / team / project. Don’t use AI. Win $10K and get published in The Pragmatic Engineer. You have a month: submit by 4 October. Details: blog.pragmaticengineer.com/how-software...
4427
Konrad Reiche @konradreiche.com · 03/09/2026
Excellent point from @eltonminetto.dev in his closing keynote at GopherCon Latam. The tooling we build to help humans also gives agents what they need, a fast feedback loop. Compile, test, lint, benchmark, repeat. We should automate, step by step, the same process a human would follow.
040
Reposted by Konrad Reiche
Diego Ferreira @katesclau.bsky.social · 02/09/2026
At GopherconLatam, watching @konradreiche.com 's talk
GopherconLatam talk on Go Style, by Konrad Reiche
021
Konrad Reiche @konradreiche.com · 02/09/2026
Great talk from @alexrios.me on spin locks in Go at GopherCon Latam. They can outperform sync.Mutex, but only under a narrow set of conditions: a critical section under 100 ns, proven contention, multi-core deployment, and why Go generally favors safety, portability, and fairness over exposing them.
031
Konrad Reiche @konradreiche.com · 02/09/2026
Oi, GopherCon Latam! I made it to Florianópolis 🇧🇷 Looking forward to giving my talk "When Go Style Stops Being Style", where I'll dissect Go conventions we've found to scale well in large repositories and why conventions still matter in the age of AI.
040
Reposted by Konrad Reiche
Go @golang.org · 27/08/2026
Congrats to Go co-creator Rob Pike on receiving the 2026 USENIX Lifetime Achievement Award (The Flame)! 🔥 Rob’s impact spans Go, UTF-8, Plan 9, & Unix programming classics. 📺 Watch acceptance speech: youtu.be/wSXATB0H1DY 📖 USENIX citation: www.usenix.org/about/awards...
youtu.be
Acceptance video for the 2026 USENIX Lifetime Achievement Award (the "Flame")
YouTube video by Rob Pike
08016
Konrad Reiche @konradreiche.com · 27/08/2026
Excited to be heading to GopherCon Latam in Florianópolis, Brazil 🇧🇷 Looks like I'm willing to travel 6,600 miles to talk about Go, my furthest one so far. See you there 🌎
030
Reposted by Konrad Reiche
Daniel Lemire @lemire.bsky.social · 10/08/2026
Profile-guided optimization in Go lemire.me/blog/2026/08/09/profile-g…
043
Reposted by Konrad Reiche
apenwarr @apenwarr.ca · 01/08/2026
Evidence so far suggests that it’s easier to discover previously unknown proofs in math and make new scientific discoveries than it is to make UI tests in Xcode pass reliably
323322
Konrad Reiche @konradreiche.com · 20/07/2026
I haven't found a good answer to this yet. When exposing a seed for a PCG RNG, is it better to accept both the state seed and stream value or accept one seed and derive the other? I'm using it for a finite Zipf generator.
000
Konrad Reiche @konradreiche.com · 14/07/2026
A great take. Why should we care? Why are we here? Many will think AI does a better job at this, but chances are you haven't told it why.
000
Konrad Reiche @konradreiche.com · 10/07/2026
The Electron era of CLIs
020
Reposted by Konrad Reiche
Paweł Grzybek @pawelgrzybek.com · 05/07/2026
Another great post by @rednafi.com for go lang devs. This time all about modernizers and `go fix` CLI tool. "Modernizers & go fix" rednafi.com/go/gofix/ #golang
rednafi.com
Modernizers & go fix
Go 1.26 rebuilt go fix on the analysis framework. It modernizes your code and respects the Go version your module declares. The post covers the modernizers, the bigger x/tools suite, and what //go:fix inline can and can't migrate.
085
Konrad Reiche @konradreiche.com · 03/07/2026
Co-worker asked what programming languages I learned in high school. I said Borland Delphi and they asked if I went to high school in the 90s. A fair but devastating burn.
130
Reposted by Konrad Reiche
Felix Geisendörfer @felixge.de · 30/06/2026
Sorry for the delay, here is the link. docs.google.com/presentation...
docs.google.com
2026-06-16 The Heap Profile is a Lie (GopherConEU)
The heap profile is a lie* Felix Geisendörfer, Datadog Hello, and welcome to my presentation: The heap profile is a lie. My name is Felix Geisendörfer … 1 * Truthful, but not burdened by the whole tru...
183
Reposted by Konrad Reiche
Dave Cheney @dave.cheney.net · 29/06/2026
[ ] I’m in this photo and I don’t like it
0194
Reposted by Konrad Reiche
Jim Calabro ♟️ @calabro.io · 25/06/2026
used this for the first time today and it rocks. incredibly powerful go.dev/blog/synctest
go.dev
Testing concurrent code with testing/synctest - The Go Programming Language
Go 1.24 contains an experimental package to aid in testing concurrent code.
1334
Konrad Reiche @konradreiche.com · 22/06/2026
Enjoyed my post being discussed on Hacker News. Consensus on the principle, then turned into a fight over whether Go's type system should have optional types. Also an opinion that null dereferences are rare and that complex type systems freeze semantics too early news.ycombinator.com/item?id=4858...
110
Konrad Reiche @konradreiche.com · 16/06/2026
Most nil checks I see in Go aren't defensive programming. They're a sign that the code lost track of what can and cannot be nil. A nil check is good when it enforces a real boundary. It's suspicious when it silently handles a state your program claims is impossible konradreiche.com/blog/excessi...
konradreiche.com
Excessive nil pointer checks in Go
Let’s talk about nil pointer checks in Go. You want to prevent panics in production, but that doesn’t start with a deferred recover. It starts with defensive programming. Check your inputs, check your...
081
Konrad Reiche @konradreiche.com · 14/06/2026
Google Maps the moment you start directions: "There's a 20 minute delay, but you're still on the fastest route." Nothing you can do about it. Just thought you should know.
020
Reposted by Konrad Reiche
William (Bill) Kennedy @goinggo.net · 11/06/2026
I got to meet Steve Yegge in Montreal. Super nice guy and we had a short but interesting conversation. TL;DR We need to recognize developers are writing code even when a tool is performing the work. Engineering means the developer steers the model, not the other way around.
051
Reposted by Konrad Reiche
WebDesignMuseum @webdesignmuseum.org · 11/06/2026
Getting Started with Windows 2000 Professional
Getting Started with Windows 2000 Professional
3247253
Reposted by Konrad Reiche
Charity Majors @charity.wtf · 03/06/2026
i wrote a post about the growing divide between AI skeptics and AI enthusiasts. wins and costs are both real, but too often fall on different groups of people. when you're only experiencing half the story, it's too easy to write each other off. charitydotwtf.substack.com/p/ai-enthusi...
charitydotwtf.substack.com
AI enthusiasts are in a race against time, AI skeptics are in a race against entropy
Both sides are grappling with a real existential threat, and both sides feel like they are screaming into the void. Here's how to close the gap and get everyone pulling in the same direction.
109434
Konrad Reiche @konradreiche.com · 27/05/2026
Sway 1.12 is out, and we're getting showered in features: HDR10 output, individual window capture, a friendlier approach to NVIDIA GPUs, and new Wayland protocol support tying together color management, workspaces, and more github.com/swaywm/sway/...
github.com
Releases · swaywm/sway
i3-compatible Wayland compositor. Contribute to swaywm/sway development by creating an account on GitHub.
020
Reposted by Konrad Reiche
Felix Geisendörfer @felixge.de · 04/05/2026
I just published a proposal for a new RSS profile type for Go. It aims to solve the issue that the heap profile typically shows < 50% of process RSS, which is very confusing. It should also help to quickly identify when memory usage is dominated by cgo. github.com/golang/go/is...
github.com
proposal: runtime/pprof: add a rss profile type · Issue #79179 · golang/go
This is a proposal to introduce a new "rss" profile type to runtime/pprof to provide Go users with a holistic breakdown of their program's memory usage. Problem Statement As part of incident respon...
2255
Konrad Reiche @konradreiche.com · 21/05/2026
We need to talk about excessive nil pointer checks in Go. Writing code that's safe and prevents panics is excellent, but when we reach the point where no pointer can be trusted, we've dug ourselves into a hole.
110
Reposted by Konrad Reiche
Robert Burke @lostluck.dev · 19/05/2026
It's only a discussion right now but opaque + sum types = efficient oneofs github.com/golang/go/is...
github.com
proposal: sum types as a non-interface union type · Issue #76920 · golang/go
This is an issue to discuss yet another form of sum type to Go. This is not a full proposal, and not a language change that I expect will be adopted in the near future. I am filing this issue as a ...
011
Konrad Reiche @konradreiche.com · 19/05/2026
Interesting finding from benchmarks, protobuf's Go opaque API was a win for elementary fields, but the gains fell off once those fields were wrapped in oneof.
110
Reposted by Konrad Reiche
Alan Donovan @adonovan.bsky.social · 18/05/2026
What's new in gopls 22: go.dev/gopls/release/v0.22.0 Please try it out: $ go install golang.org/x/tools/gopls@latest
go.dev
Gopls release v0.22.0 (May 2026) - The Go Programming Language
0171
Konrad Reiche @konradreiche.com · 16/05/2026
Ideally, middleware execution order shouldn't matter, but consider caching, error wrapping, and concurrency limiting. go-redis changed: 2020 FIFO to LIFO: github.com/redis/go-red... 2023 LIFO to FIFO: github.com/redis/go-red... The lesson: in lack of order-invariance, have a test to check for it.
000
Konrad Reiche @konradreiche.com · 14/05/2026
Quality-of-life improvement: adding a test helper package that lets you construct context variants in one line, without anonymous functions in table-driven tests: ctxtest.New(t, ctxtest.WithCanceled(true)) The kind of package you create after wishing it existed for the fifth time.
000
Konrad Reiche @konradreiche.com · 13/05/2026
Remember when it was called source code, not just code?
010
Konrad Reiche @konradreiche.com · 12/05/2026
I don't always make open source contributions, but when I do, it feels like this.
030
Konrad Reiche @konradreiche.com · 12/05/2026
One of my favorite Go proverbs: write code, don't design types.
010
Konrad Reiche @konradreiche.com · 08/05/2026
I find it increasingly judgmental to state that something is an anti-pattern without additional context. It moves the conversation to: you're obviously doing it wrong. I think we can do a lot better.
020
Konrad Reiche @konradreiche.com · 05/05/2026
Before concluding that the fix for issues seen with agentic programming is design by contract, or focusing on writing clear specs that can be thrown over the wall, it is worth revisiting the history of the waterfall model.
151
Konrad Reiche @konradreiche.com · 04/05/2026
How many files is too many for one Go package?
100
Konrad Reiche @konradreiche.com · 04/05/2026
The longer you maintain a large Go codebase with lots of contributors, the more appealing gofumpt gets. Fewer choices, fewer style nit comments, less time wasted.
031
Konrad Reiche @konradreiche.com · 04/05/2026
Just released a new version of my PID controller library in Go. When used well, it can help backend systems adapt smoothly to changing conditions. This release adds metrics and options for easier inspection, tuning, and stabilization github.com/konradreiche...
github.com
GitHub - konradreiche/pid: 🔁 A PID controller implementation for feedback-driven systems in Go.
🔁 A PID controller implementation for feedback-driven systems in Go. - konradreiche/pid
000
Konrad Reiche @konradreiche.com · 24/04/2026
"This interruption of consciousness is costly... the most serious effect may well be the decay of grasp of all that is going on in a complex system." What happens to that grasp in agentic programming, when we're waiting on agents, or coordinating many in parallel?
120
Konrad Reiche @konradreiche.com · 21/04/2026
I used to think maximum function length in Go just depended on context. Now, if it doesn't fit on the screen, it's too long. Before anyone objects, buying a larger monitor would not count as refactoring 🖥️
010
Konrad Reiche @konradreiche.com · 20/04/2026
"The hardest part of the software task is arriving at a complete and consistent specification, and much of the essence of building a program is in fact the debugging of the specification."
000
Konrad Reiche @konradreiche.com · 19/04/2026
I reread Brooks' No Silver Bullet and found it incredibly refreshing how well its arguments, analogies, and walkthroughs of different technologies still map onto today, 40 years later.
010