Sign in

Felix Geisendörfer

@felixge.de
2.7K followers 141 following 163 posts

Working at Datadog on Go Profiling, Performance, OpenTelemetry and more. Before: - Manufacturing Observability at Apple - Co-founder at Transloadit - Node.js Core Dev

PostsRepliesMedia
Reposted by Felix Geisendörfer
thepudds @thepudds.bsky.social · 10/09/2026
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 👋)
121868
Felix Geisendörfer @felixge.de · 02/06/2026
If anybody with connections to the V8/Chrome team is reading this, my colleague Attila is trying to find a reviewer for a patch to improving profiling. Many thanks in advance for any leads 🙇🏻‍♂️ chromium-review.googlesource.com/c/v8/v8/+/78...
chromium-review.googlesource.com
Gerrit Code Review
010
Felix Geisendörfer @felixge.de · 06/05/2026
PSA: Green Tea GC in go1.26 is incredible 🚀 This is what we saw for two big Go services. We'll try to gather more data and share it soon.
3377
Felix Geisendörfer @felixge.de · 04/05/2026
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.com
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...
2255
Felix Geisendörfer @felixge.de · 30/04/2026
In exchange for 18 minutes of your time, you can get an elevator pitch about why you should be using pi (instead of claude) and perhaps more importantly, one of the sanest takes on using AI effectively 🔥 www.youtube.com/watch?v=Rjfb...
youtube.com
Building pi in a World of Slop — Mario Zechner
YouTube video by AI Engineer
2286
Felix Geisendörfer @felixge.de · 31/03/2026
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
2161
Reposted by Felix Geisendörfer
Paul Bauer @bauer.codes · 25/03/2026
People that strip debug symbols are not to be trusted.
021
Felix Geisendörfer @felixge.de · 22/03/2026
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.
070
Felix Geisendörfer @felixge.de · 10/03/2026
.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.
2252
Felix Geisendörfer @felixge.de · 07/03/2026
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.
2260
Reposted by Felix Geisendörfer
Johannes Bechberger @mostlynerdless.de · 13/02/2026
Redact sensitive data from Java Flight Recorder and JVM crash logs with jfr-redact, a tool for safely sharing profiling and error files: mostlynerdless.de/blog/2026/02...
mostlynerdless.de
Redacting Sensitive Data from Java Flight Recorder Files - Mostly nerdless
Redact sensitive data from Java Flight Recorder and JVM crash logs with jfr-redact, a tool for safely sharing profiling and error files.
073
Felix Geisendörfer @felixge.de · 29/01/2026
I'll be speaking at the Datadog User Group Berlin today. Expect live demos of our Continuous Profiler product, root causing an incident caused by an LLM-assisted refactoring. www.meetup.com/datadog-berl...
meetup.com
Observe event-driven systems | Zendesk Customer Success Story | Cont. Profiling, Thu, Jan 29, 2026, 6:00 PM | Meetup
I'm excited to announce another meetup! If you're interested in give a talk, feel free to reach out to me at marcel.drechsler@andsafe.de \-\-\- All talks will be **presen
072
Reposted by Felix Geisendörfer
Jake Bailey @jakebailey.dev · 07/01/2026
My GopherCon talk was just posted!
youtu.be
GopherCon 2025: Porting the TypeScript Compiler to Go for a 10x Speedup V2 - Jake Bailey
YouTube video by Gopher Academy
27819
Felix Geisendörfer @felixge.de · 06/01/2026
Just spend like 20 minutes debugging why claude code notifications don't work. Turns out they fire after a hard coded 60 second timeout. I don't get it, I thought I'm supposed to feed this thing with input as fast as possible? github.com/anthropics/c...
github.com
[FEATURE] Configurable timeout for idle_prompt notification hook · Issue #13922 · anthropics/claude-code
Preflight Checklist I have searched existing requests and this feature hasn't been requested yet This is a single feature request (not multiple features) Problem Statement The idle_prompt notificat...
130
Reposted by Felix Geisendörfer
Jeff Dean @jeffdean.bsky.social · 19/12/2025
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...
213225
Reposted by Felix Geisendörfer
VLDMR VRNKN @vladimir.varank.in · 15/12/2025
Profiling Request Latency with Critical Path Analysis, @felixge.de @ GopherCon 2025 www.youtube.com/watch?v=BayZ...
youtube.com
GopherCon 2025: Profiling Request Latency with Critical Path Analysis - Felix Geisendörfer
YouTube video by Gopher Academy
1174
Felix Geisendörfer @felixge.de · 16/12/2025
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!
162
Felix Geisendörfer @felixge.de · 10/12/2025
A small productivity hack I use every day. gist.github.com/felixge/ce96...
050
Reposted by Felix Geisendörfer
Anton Zhiyanov @antonz.org · 26/11/2025
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...
antonz.org
Go proposal: Goroutine metrics
Export goroutine-related metrics from the Go runtime.
1225
Reposted by Felix Geisendörfer
Nick Ripley @nsrip.com · 23/11/2025
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 :)
0354
Reposted by Felix Geisendörfer
Michael Knyszek @michael.express · 20/11/2025
My talk from GopherCon 2025 about Green Tea is up on YouTube! www.youtube.com/watch?v=gPJk...
youtube.com
GopherCon 2025 - Advancing Go Garbage Collection with Green Tea - Michael Knyszek
YouTube video by Gopher Academy
13511
Reposted by Felix Geisendörfer
Neal Lathia @neallathia.bsky.social · 25/10/2025
"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...
newsletter.vickiboykis.com
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...
2285
Reposted by Felix Geisendörfer
Steve Klabnik @steveklabnik.com · 22/10/2025
I see a future in #jj-vcs: steveklabnik.com/writing/i-se...
steveklabnik.com
I see a future in jj
Blog post: I see a future in jj by Steve Klabnik
6738448
Reposted by Felix Geisendörfer
Michael Pratt @prattmic.com · 02/10/2025
jj v0.34 is out, including Gerrit upload support! github.com/jj-vcs/jj/re...
github.com
Release v0.34.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 Support for uploading changes to Gerrit ...
1153
Felix Geisendörfer @felixge.de · 28/09/2025
Watching "stupid jj tricks" from JJ con 2025 live right now. Tune in: www.youtube.com/watch?v=WWNh...
youtube.com
JJ Conference 2025
YouTube video by GerritForge TV
061
Felix Geisendörfer @felixge.de · 17/09/2025
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.
070
Felix Geisendörfer @felixge.de · 17/09/2025
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.
140
Reposted by Felix Geisendörfer
Go @golang.org · 16/09/2025
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
google.qualtrics.com
Go Developer Survey 2025
Share your feedback about developing software with Go.
05731
Reposted by Felix Geisendörfer
Ari Arnbjörnsson @flassari.bsky.social · 11/09/2025
Profile.
8795153
Felix Geisendörfer @felixge.de · 11/09/2025
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 😂.
010
Felix Geisendörfer @felixge.de · 11/09/2025
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 🎶
140
Felix Geisendörfer @felixge.de · 11/09/2025
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 👍🏻
1120
Reposted by Felix Geisendörfer
florianl @florianl.bsky.social · 06/09/2025
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!
142
Reposted by Felix Geisendörfer
Michael Pratt @prattmic.com · 04/09/2025
“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.com
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...
1152
Reposted by Felix Geisendörfer
deadprogram @deadprogram.com · 28/08/2025
Gotta say @felixge.de has very top notch diagrams in this presentation! #golang #gopherCon
1131
Felix Geisendörfer @felixge.de · 21/08/2025
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.
4120
Reposted by Felix Geisendörfer
Justin @jaffray.bsky.social · 18/08/2025
NULL BITMAP: Using Huffman Coding for Sampling Discrete Distributions: buttondown.com/jaffray/arch...
1135
Reposted by Felix Geisendörfer
GopherCon @gophercon.com · 18/08/2025
⏳ 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
0125
Felix Geisendörfer @felixge.de · 16/08/2025
Having fun using pikchr to generate diagrams for my critical path analysis talk at GopherCon US.
2290
Reposted by Felix Geisendörfer
Filippo Valsorda @filippo.abyssdomain.expert · 12/08/2025
The Go 1.25 change I am most excited about is the new synctest package. How I think about it is as a way to deflake tests by simulating an infinitely fast processor (because time doesn’t move until all work is done), and then shorten them by compressing time (because time jumps once it moves).
27713
Reposted by Felix Geisendörfer
Go @golang.org · 12/08/2025
🎊 Go 1.25.0 is released! 📝 Release notes: go.dev/doc/go1.25 ⬇️ Download: go.dev/dl/#go1.25.0 #golang
$ go install golang.org/dl/go1.25.0@latest
$ go1.25.0 download
Downloaded   0.0% (       0 / 58130695 bytes) ...
Downloaded  50.0% (29065347 / 58130695 bytes) ...
Downloaded 100.0% (58130695 / 58130695 bytes)
Unpacking go1.25.0.freebsd-arm.tar.gz ...
Success. You may now run 'go1.25.0'
$ go1.25.0 version
go version go1.25.0 freebsd/arm
418954
Reposted by Felix Geisendörfer
Klaus Post @klauspost.com · 11/08/2025
Excellent blog post about hooking up Go into Java for erasure coding: kohlschuetter.github.io/blog/posts/2...
kohlschuetter.github.io
Faster Reed-Solomon Erasure Coding in Java with Go & FFM
Backblaze’s Java-based Reed-Solomon Erasure Coding library is great tech, but comparatively slow. Let’s add some optimized Go, and get a whopping speedup.
073
Reposted by Felix Geisendörfer
GopherCon @gophercon.com · 05/08/2025
Why is your code allocating memory? How does the Go compiler see the world? Join Go contributor @thepudds.bsky.social for a deep dive into escape analysis—the part of the compiler that decides whether your data stays on the stack or takes the more expensive trip to the heap. 🎟️ www.gophercon.com
064
Reposted by Felix Geisendörfer
GopherCon @gophercon.com · 01/08/2025
🧭 CPU profiling isn’t telling you the whole story. Let’s fix that! Join @felixge.de as he introduces a novel approach to analyzing Go request latency using critical path analysis—one that goes beyond traditional CPU profiling, logs, or traces. 🎟️ www.gophercon.com #GopherConOrBust #golang
0102
Felix Geisendörfer @felixge.de · 31/07/2025
Wrote up a small proposal to make it easier to test code that is processing #golang execution traces using the x/exp/trace package.
170
Felix Geisendörfer @felixge.de · 30/07/2025
Few things are more cursed than the way VS Code extensions determine which local development tools to use. This is especially true when using remote hosts via ssh.
110
Felix Geisendörfer @felixge.de · 28/07/2025
Check out this new blog post outlining how profiling is becoming the fourth pillar of observability 🚀. www.datadoghq.com/blog/continu...
datadoghq.com
Why continuous profiling is the fourth pillar of observability | Datadog
Learn how modern continuous profilers have transformed profiling into a core observability practice.
0126
Felix Geisendörfer @felixge.de · 21/07/2025
German word of the day: Verschlimmbessern = "Trying to make something better, but actually making it worse in the process" A lot of engineering work falls into this category. Sometimes the answer is that there is value in leaving a problem unsolved.
2436
Felix Geisendörfer @felixge.de · 20/07/2025
Is anybody here able to put me in touch with somebody at Apple who could help with fixing setitimer(2) on macOS or figure out another approach to CPU profiling for Go and other user space programs? github.com/golang/go/is...
github.com
cmd/pprof: macOS 12.6.1 profile overcounts system calls (again) · Issue #57722 · golang/go
What version of Go are you using (go version)? $ go version go version go1.19.4 darwin/arm64 This is on macOS 12.6.1 with an M1 chip, but the problem seems to affect Intel as well. Does this issue ...
0104
Felix Geisendörfer @felixge.de · 18/07/2025
Fantastic new blog post from my colleague Nayef. If you're into Go internals, check it out! www.datadoghq.com/blog/enginee...
datadoghq.com
How we tracked down a Go 1.24 memory regression across hundreds of pods | Datadog
We rolled out Go 1.24 and saw a memory regression. Here's how we dug into system metrics, uncovered a bug in the runtime allocator, and worked with the Go team to help fix it.
14611