Reposted by Felix Geisendörferthepudds @thepudds.bsky.social · 10/09/2026I’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/2026If 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.comGerrit Code Review 010
Felix Geisendörfer @felixge.de · 06/05/2026PSA: 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/2026I 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... 2255
Felix Geisendörfer @felixge.de · 30/04/2026In 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.comBuilding pi in a World of Slop — Mario ZechnerYouTube video by AI Engineer 2286
Felix Geisendörfer @felixge.de · 31/03/2026The 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 ... 🧵 2161
Reposted by Felix GeisendörferPaul Bauer @bauer.codes · 25/03/2026People that strip debug symbols are not to be trusted. 021
Felix Geisendörfer @felixge.de · 22/03/2026I’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/2026I 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örferJohannes Bechberger @mostlynerdless.de · 13/02/2026Redact 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.deRedacting Sensitive Data from Java Flight Recorder Files - Mostly nerdlessRedact 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/2026I'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.comObserve event-driven systems | Zendesk Customer Success Story | Cont. Profiling, Thu, Jan 29, 2026, 6:00 PM | MeetupI'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örferJake Bailey @jakebailey.dev · 07/01/2026My GopherCon talk was just posted!youtu.beGopherCon 2025: Porting the TypeScript Compiler to Go for a 10x Speedup V2 - Jake BaileyYouTube video by Gopher Academy 27819
Felix Geisendörfer @felixge.de · 06/01/2026Just 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-codePreflight 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örferJeff Dean @jeffdean.bsky.social · 19/12/2025My 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örferVLDMR VRNKN @vladimir.varank.in · 15/12/2025Profiling Request Latency with Critical Path Analysis, @felixge.de @ GopherCon 2025 www.youtube.com/watch?v=BayZ...youtube.comGopherCon 2025: Profiling Request Latency with Critical Path Analysis - Felix GeisendörferYouTube video by Gopher Academy 1174
Felix Geisendörfer @felixge.de · 16/12/2025The 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/2025A small productivity hack I use every day. gist.github.com/felixge/ce96... 050
Reposted by Felix GeisendörferAnton Zhiyanov @antonz.org · 26/11/2025Accepted! 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.orgGo proposal: Goroutine metricsExport goroutine-related metrics from the Go runtime. 1225
Reposted by Felix GeisendörferNick Ripley @nsrip.com · 23/11/2025Small 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örferMichael Knyszek @michael.express · 20/11/2025My talk from GopherCon 2025 about Green Tea is up on YouTube! www.youtube.com/watch?v=gPJk...youtube.comGopherCon 2025 - Advancing Go Garbage Collection with Green Tea - Michael KnyszekYouTube video by Gopher Academy 13511
Reposted by Felix GeisendörferNeal 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.comI want to see the clawI 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örferSteve Klabnik @steveklabnik.com · 22/10/2025I see a future in #jj-vcs: steveklabnik.com/writing/i-se...steveklabnik.comI see a future in jjBlog post: I see a future in jj by Steve Klabnik 6738448
Reposted by Felix GeisendörferMichael Pratt @prattmic.com · 02/10/2025jj v0.34 is out, including Gerrit upload support! github.com/jj-vcs/jj/re...github.comRelease v0.34.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 Support for uploading changes to Gerrit ... 1153
Felix Geisendörfer @felixge.de · 28/09/2025Watching "stupid jj tricks" from JJ con 2025 live right now. Tune in: www.youtube.com/watch?v=WWNh...youtube.comJJ Conference 2025YouTube video by GerritForge TV 061
Felix Geisendörfer @felixge.de · 17/09/2025I 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/2025I'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örferGo @golang.org · 16/09/2025Hi 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! #golanggoogle.qualtrics.comGo Developer Survey 2025Share your feedback about developing software with Go. 05731
Felix Geisendörfer @felixge.de · 11/09/2025My 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/2025This 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/2025Managed 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örferflorianl @florianl.bsky.social · 06/09/2025I'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örferMichael 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.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... 1152
Reposted by Felix Geisendörferdeadprogram @deadprogram.com · 28/08/2025Gotta say @felixge.de has very top notch diagrams in this presentation! #golang #gopherCon 1131
Felix Geisendörfer @felixge.de · 21/08/2025I 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örferJustin @jaffray.bsky.social · 18/08/2025NULL BITMAP: Using Huffman Coding for Sampling Discrete Distributions: buttondown.com/jaffray/arch... 1135
Reposted by Felix GeisendörferGopherCon @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/2025Having fun using pikchr to generate diagrams for my critical path analysis talk at GopherCon US. 2290
Reposted by Felix GeisendörferFilippo Valsorda @filippo.abyssdomain.expert · 12/08/2025The 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örferGo @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 418954
Reposted by Felix GeisendörferKlaus Post @klauspost.com · 11/08/2025Excellent blog post about hooking up Go into Java for erasure coding: kohlschuetter.github.io/blog/posts/2...kohlschuetter.github.ioFaster Reed-Solomon Erasure Coding in Java with Go & FFMBackblaze’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örferGopherCon @gophercon.com · 05/08/2025Why 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örferGopherCon @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/2025Wrote 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/2025Few 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/2025Check out this new blog post outlining how profiling is becoming the fourth pillar of observability 🚀. www.datadoghq.com/blog/continu...datadoghq.comWhy continuous profiling is the fourth pillar of observability | DatadogLearn how modern continuous profilers have transformed profiling into a core observability practice. 0126
Felix Geisendörfer @felixge.de · 21/07/2025German 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/2025Is 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.comcmd/pprof: macOS 12.6.1 profile overcounts system calls (again) · Issue #57722 · golang/goWhat 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/2025Fantastic new blog post from my colleague Nayef. If you're into Go internals, check it out! www.datadoghq.com/blog/enginee...datadoghq.comHow we tracked down a Go 1.24 memory regression across hundreds of pods | DatadogWe 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