Konrad Reiche

Konrad Reiche

@konradreiche.com

Writing ⌯Go at Reddit konradreiche.com

187 followers122 following208 posts

Konrad Reiche reposted

Got the beta access. Spent way more time on Superlogical Rex than I prolly should have. Ended up building herdr-reviwr for it. The server API makes it way to easy to build extensions around it. You can write exts in any language since you'd just be talking with the server API. #Go works great!

Throwback to September, when I spoke at GopherCon Latam in Brazil 🇧🇷 Afterwards, I gave a short interview about why I gave this talk again and whether Go's principle of writing code for the reader, not the writer, still matters when AI is writing most of the code.

Randomly stumbled upon 97 Things Every Software Architect Should Know as an audiobook and it's too painful to listen to. Every statement is concise and hits home that I'm still processing one statement when the next one drops!

Konrad Reiche reposted

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 👋)

Konrad Reiche reposted

#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!

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.

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.

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.

Martin Fowler@martinfowler.com

Rachel's Ramblings: Maybe We Shouldn't Be Reviewing All This Code: Or, perhaps the problem isn't that AI has broken code review, maybe it’s that we've been using code review to solve the wrong problems martinfowler.com/rachels-ramb...

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.

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.

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.

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 🌎

Konrad Reiche reposted

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

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.

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.

I don’t care whether an agent wrote your code. But please please please write the readme yourself. At least the first part—the “what does it do and why do I care” part.

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.

It's a debate on making nil checks obsolete, but both, boundary checks and optional types, require you to understand the domain. The type system can't do the thinking for you. Encode optionality without understanding what can be nil and you've just moved the bad decision into the type signature.

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.comExcessive nil pointer checks in GoLet’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...

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.

Konrad Reiche reposted

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.

Konrad Reiche reposted

Konrad Reiche reposted

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.comproposal: runtime/pprof: add a rss profile type · Issue #79179 · golang/goThis 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...

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.

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.

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.