Felix Geisendörfer
felixge.de
Felix Geisendörfer
@felixge.de
Working at Datadog on Go Profiling, Performance, OpenTelemetry and more.

Before:
- Manufacturing Observability at Apple
- Co-founder at Transloadit
- Node.js Core Dev
Reposted by Felix Geisendörfer
My colleague Sanjay Ghemawat & I have done a fair bit of performance tuning of various pieces of code. We wrote an internal Performance Hints document ~2 years ago as a way of identifying some general principles & we've recently published a version of it externally.

Doc: abseil.io/fast/hints.h...
December 19, 2025 at 10:25 PM
Reposted by Felix Geisendörfer
Profiling Request Latency with Critical Path Analysis, @felixge.de @ GopherCon 2025 www.youtube.com/watch?v=BayZ...
GopherCon 2025: Profiling Request Latency with Critical Path Analysis - Felix Geisendörfer
YouTube video by Gopher Academy
www.youtube.com
December 15, 2025 at 9:34 AM
The talk @florianl.bsky.social and I submitted has been accepted at KubeCon 2026 in Amsterdam. 🎉

Small wrinkle: The talk says that the profiling signal is in alpha … which is not true yet. Fear driven development will continue until reality and talk description are aligned!
December 16, 2025 at 10:13 AM
A small productivity hack I use every day.

gist.github.com/felixge/ce96...
December 10, 2025 at 8:03 PM
Reposted by Felix Geisendörfer
Accepted! Go 1.26 will introduce per-state goroutine metrics: running, waiting, in syscalls, etc.

Developers can use them to catch problems early without needing full traces.

antonz.org/accepted/gor...
Go proposal: Goroutine metrics
Export goroutine-related metrics from the Go runtime.
antonz.org
November 26, 2025 at 12:17 PM
Reposted by Felix Geisendörfer
Small contribution just before the Go 1.26 freeze: go.dev/cl/610815 removes the hard-coded 100ms sleep from the CPU profiler for most platforms. This will make it more efficient and unblock deeper call stacks. As a bonus, uncovered and fixed an 8 year old bug in the profiler go.dev/cl/722940 :)
November 23, 2025 at 6:48 PM
Reposted by Felix Geisendörfer
My talk from GopherCon 2025 about Green Tea is up on YouTube! www.youtube.com/watch?v=gPJk...
GopherCon 2025 - Advancing Go Garbage Collection with Green Tea - Michael Knyszek
YouTube video by Gopher Academy
www.youtube.com
November 20, 2025 at 12:33 AM
Reposted by Felix Geisendörfer
"It has, with generative code, become harder and harder to strive towards the lions because the models produce code that is, quite literally, mid" - beautiful post by @vickiboykis.com

newsletter.vickiboykis.com/archive/i-wa...
I want to see the claw
I respect quality software and the people who write it. And, I’ve invested years of my life in working on becoming one of these people (even if the journey...
newsletter.vickiboykis.com
October 25, 2025 at 8:21 PM
Reposted by Felix Geisendörfer
I see a future in jj
Blog post: I see a future in jj by Steve Klabnik
steveklabnik.com
October 22, 2025 at 5:22 PM
Reposted by Felix Geisendörfer
Watching "stupid jj tricks" from JJ con 2025 live right now. Tune in:

www.youtube.com/watch?v=WWNh...
JJ Conference 2025
YouTube video by GerritForge TV
www.youtube.com
September 28, 2025 at 6:17 PM
I need to start a critical path analysis art gallery soon.

The kind of stuff goroutines get up to behind the scenes can be truly fascinating.
September 17, 2025 at 1:02 PM
I'm starting to get better at leveraging AI agents for the kind of low-level stuff I'm doing sometimes.

Example: Asked opus to explain some runtime internals, and then turn the analysis into a nice human-readable markdown output that I can use to explain a code change I'm making to a colleague.
September 17, 2025 at 11:25 AM
Reposted by Felix Geisendörfer
Hi folks, it’s survey time! We’d love to learn more about how you use Go and what could be improved. Share your feedback via our annual developer survey at google.qualtrics.com/jfe/form/SV_.... It should take 10 - 20 minutes to complete, and will be open through September 30. Thank you!

#golang
Go Developer Survey 2025
Share your feedback about developing software with Go.
google.qualtrics.com
September 16, 2025 at 8:38 PM
Reposted by Felix Geisendörfer
Profile.
September 11, 2025 at 7:29 AM
My usual workflow is firing off the same query in ChatGPT 5 and Gemini 2.5 Pro these days.

Typically they align, but one answer is better than the other.

But it turns out no amount of AI can solve the "too many chefs in the kitchen" problem 😂.
September 11, 2025 at 9:59 AM
This is a fantastic week. A lot of stuff I've been hoping to accomplish, and wasn't sure if I could, seems to finally be coming together.

And to top it off, Spotify just pulled an incredible "Discover Weekly" playlist out of the hat.

Good times 🎶
September 11, 2025 at 5:34 AM
Managed to write a reproducer for a non-trivial bug last night.

Old me would have been excited and stayed up late trying to fix it.

These days I know this is the best time to go to sleep. And indeed, the solution came to me while falling asleep.

Wrote it up this morning - works 👍🏻
September 11, 2025 at 3:45 AM
Reposted by Felix Geisendörfer
I'm excited to see that github.com/florianl/go-tc reached 500 stars on GitHub! It all began as a way for me to explore loading an eBPF program in pure Go via the traffic control API of the Linux kernel, and it's awesome to see so many people finding it useful. Thanks everyone!
September 6, 2025 at 1:35 PM
Reposted by Felix Geisendörfer
“jj undo can now undo multiple operations progressively by calling it
repeatedly, whereas previously, running jj undo twice was previously a no-op (it only undid the last change).”

😮 It seems Christmas came early this year.

github.com/jj-vcs/jj/re...
Release v0.33.0 · jj-vcs/jj
About jj is a Git-compatible version control system that is both simple and powerful. See the installation instructions to get started. Release highlights jj undo is now sequential: invoking it m...
github.com
September 4, 2025 at 12:39 PM
Reposted by Felix Geisendörfer
Gotta say @felixge.de has very top notch diagrams in this presentation! #golang #gopherCon
August 28, 2025 at 2:24 PM
I just took my jj game to the next level by adopting the megamerge workflow.

What it allows me to do is split a lot of my work into independent PRs (CLs), but work on a local tree that reflects the state of the repo as if all of them had already been merged.
August 21, 2025 at 7:40 AM
Reposted by Felix Geisendörfer
NULL BITMAP: Using Huffman Coding for Sampling Discrete Distributions: buttondown.com/jaffray/arch...
August 18, 2025 at 6:29 PM
Reposted by Felix Geisendörfer
⏳ ONE. WEEK. TO. GO. 🎉

The countdown is officially ON—#GopherCon is just around the corner!

Don’t wait until the last minute—lock in your pass now and get ready to join us in NYC for the biggest #golang celebration of the year!

👉 www.gophercon.com

#GopherConOrBust #GophersUnite
August 18, 2025 at 8:01 PM
Having fun using pikchr to generate diagrams for my critical path analysis talk at GopherCon US.
August 16, 2025 at 8:46 PM