Felix Geisendörfer

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

2.6K followers141 following167 posts

My colleagues Pablo and Kemal are campaigning for a seat on the OTel GC. Pablo is a prolific contributor and GC veteran who needs no introduction. Kemal has done fantastic work on Compile-Time Instrumentation for Go. But please check out all the candidates and vote! github.com/open-telemet...

github.comcommunity/elections/2026/governance-committee-candidates.md at 9c30b48354004ef818bcf3661ece2b32ca4dd787 · open-telemetry/communityOpenTelemetry community content. Contribute to open-telemetry/community development by creating an account on GitHub.

Felix Geisendörfer 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 👋)

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

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

View full thread

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

Profiles (unlike logs, metrics and traces) are directly linked to code. Florian Lehner and I demonstrated this at KubeCon by using profiling to root cause an incident caused by a coding agent. But the reverse works too: agents can use profiles to troubleshoot or optimize code.

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.

If I had to guess, they want to avoid triggering the hook when the user is still actively watching the window. But IMO that would be better solved using terminal focus tracking 🤔

Felix Geisendörfer reposted

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

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!

Felix Geisendörfer reposted

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

Felix Geisendörfer reposted

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.

Two amazing time savings here: a) Tracing the call paths of a bunch of runtime functions to a function I know exists, but don't know the name of ("does network wakeup"). b) Writing the final analysis with code snippets and links to the Go code (permalinks at the right Go version). This is fun.

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

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 🎶

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 👍🏻

Felix Geisendörfer reposted

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!

Felix Geisendörfer reposted

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

github.comRelease v0.33.0 · jj-vcs/jjAbout 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...