Engineering · · 8 min

Why Go can't be monkey-patched (and what people do about it)

Start a Java service with one extra flag and it gets traced, with no source change and no rebuild: 1 java -javaagent:agent.jar -jar app.jar The JVM offers each class’s bytes to the agent’s ClassFileTransformer before it defines the class, so the agent can rewrite a method on its way in. Python lets you swap a method at runtime, which is the monkey-patching of the title. That flag is Java’s agent slot, and Python doesn’t even need one. Go has no such slot, and that follows from how Go was designed. ...

July 2, 2026 · 8 min · 1595 words · Kemal Akkoyun
Engineering · · 8 min

Benchmarking Go, quickly

We’re going to write one small benchmark, run it, and read every word of what comes back. By the end you’ll know where ns/op comes from, what -count and -benchtime change, what the -16 is, and how to ask the compiler and the profiler what the benchmark really did. Here is the line we’ll be decoding: 1 BenchmarkMakeBuffer-16 99632604 18.53 ns/op 64 B/op 1 allocs/op This is a primer before part 1 of Why Your Go Benchmarks Are Lying, the written companion to my GopherCon UK talk, Why Your Go Benchmarks Are Lying. The series argues about numbers like the one above, so it helps to know how they are made first. If you have run go test -bench before, skim. ...

June 30, 2026 · 8 min · 1509 words · Kemal Akkoyun
Bloomberg Engineering logo
Engineering · · 8 min

Mentorship in Open Source — Part 3: Stewardship Inside OpenTelemetry

The first post in this thread was about why I keep saying yes to mentorship. The second was the playbook for mentees. This one is for the people on the other side of the table: the maintainers, the SIG leads, the engineers in companies that depend on a project and are starting to wonder whether dependency is enough. The frame I’m borrowing comes from a piece my colleagues at Bloomberg published with the CNCF in March: Sustaining OpenTelemetry: Moving from Dependency Management to Stewardship (also on Bloomberg’s company stories). The phrase has stuck with me. It names something I’ve been trying to articulate for years, and gives me a concrete vocabulary for talking about what mentorship is for inside a project the size of OpenTelemetry. ...

June 5, 2026 · 8 min · 1552 words · Kemal Akkoyun
CNCF LFX Mentorship logo
Blogmentation · · 13 min

Mentorship in Open Source — Part 2: The Mentee Playbook

Last time I wrote about why I keep saying yes to open-source mentorship. This post is the how: specifically, how to be a mentee in 2026. I’ve spent the last few years on the mentor side of CNCF LFX LFX Mentorship — the Linux Foundation’s structured mentorship program. Cohorts run quarterly, projects are scoped to ~12 weeks, and mentees receive a stipend. , Google Summer of Code ( GSoC A Google-funded program where students contribute to open-source projects over the summer, paired with mentors from those projects. ), and GoBridge, through Thanos, Prometheus, and now OpenTelemetry projects. Every cohort I’ve run, the same questions keep coming up from people who want to apply but don’t know how to start. ...

May 29, 2026 · 13 min · 2576 words · Kemal Akkoyun
Reflection · · 5 min

Why I Keep Mentoring in Open Source

There’s a moment that keeps happening to me. Someone I mentored two or three years ago shows up in a SIG call, on a maintainers’ list, on a stage at KubeCon. They’ve shipped something I couldn’t have shipped alone. They’re answering questions I once answered for them. And the part that gets me: they’re already mentoring someone else. That moment is the thing. why why It’s also the only honest answer to “why do you keep doing this when it’s not your job?” The loop closes, and you get to watch. ↩ Everything else I write here is a footnote to that moment. ...

May 22, 2026 · 5 min · 943 words · Kemal Akkoyun