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

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...

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...

github.com

The OpenTelemetry Profiles Signal is now in Alpha 🚀 This is a big step towards making Continuous Profiling in production available to the whole industry. And given the rise of AI coding, this couldn't come at a better moment in time ... 🧵

Florian Lehner and Felix Geisendörfer presenting "The Fourth Pillar Arrives: OpenTelemetry Profiling Alpha in Action" at KubeCon EU

I’m headed to KubeCon Amsterdam where I’ll be talking about the otel profiling signal graduating to alpha stability. HMU if you want to chat about otel, go, o11y, profiling or anything else. I’m in town until Thursday night.

.git/info/exclude is one of my favorite git features, but I'm always surprised when I talk to people who never heard about it. It basically allows you to add stuff to .gitignore without modifying the file. Great for ad-hoc ignoring some files created during debugging.

I used vim exclusively for 10+ years. But when LLMs came up, I ditched it for VS Code and later Cursor as it was the path of least resistance. But given the advancements of claude et al, it's time to go back. neovim + tmux + jjui - let's go.

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...

Bild

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!

Bild

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

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.

BildBild

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 😂.

BildBild

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 🎶