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
Before:
- Manufacturing Observability at Apple
- Co-founder at Transloadit
- Node.js Core Dev
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...
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
"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/archive/i-wa...
Reposted by Felix Geisendörfer
I see a future in #jj-vcs: steveklabnik.com/writing/i-se...
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
I see a future in #jj-vcs: steveklabnik.com/writing/i-se...
Watching "stupid jj tricks" from JJ con 2025 live right now. Tune in:
www.youtube.com/watch?v=WWNh...
www.youtube.com/watch?v=WWNh...
JJ Conference 2025
YouTube video by GerritForge TV
www.youtube.com
September 28, 2025 at 6:17 PM
Watching "stupid jj tricks" from JJ con 2025 live right now. Tune in:
www.youtube.com/watch?v=WWNh...
www.youtube.com/watch?v=WWNh...
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.
The kind of stuff goroutines get up to behind the scenes can be truly fascinating.
September 17, 2025 at 1:02 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.
The kind of stuff goroutines get up to behind the scenes can be truly fascinating.
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.
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
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.
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.
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
#golang
Go Developer Survey 2025
Share your feedback about developing software with Go.
google.qualtrics.com
September 16, 2025 at 8:38 PM
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
#golang
Reposted by Felix Geisendörfer
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 😂.
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
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 😂.
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 🎶
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
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 🎶
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 👍🏻
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
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 👍🏻
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 👍🏻
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
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!
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...
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
“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...
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...
Reposted by Felix Geisendörfer
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.
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
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.
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.
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
NULL BITMAP: Using Huffman Coding for Sampling Discrete Distributions: buttondown.com/jaffray/arch...
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
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
⏳ 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
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
Having fun using pikchr to generate diagrams for my critical path analysis talk at GopherCon US.
August 16, 2025 at 8:46 PM
Having fun using pikchr to generate diagrams for my critical path analysis talk at GopherCon US.
Reposted by Felix Geisendörfer
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).
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).
🎊 Go 1.25.0 is released!
📝 Release notes: https://go.dev/doc/go1.25
⬇️ Download: https://go.dev/dl/#go1.25.0
#golang
📝 Release notes: https://go.dev/doc/go1.25
⬇️ Download: https://go.dev/dl/#go1.25.0
#golang
August 12, 2025 at 10:14 PM
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).
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).
Reposted by Felix Geisendörfer
🎊 Go 1.25.0 is released!
📝 Release notes: https://go.dev/doc/go1.25
⬇️ Download: https://go.dev/dl/#go1.25.0
#golang
📝 Release notes: https://go.dev/doc/go1.25
⬇️ Download: https://go.dev/dl/#go1.25.0
#golang
August 12, 2025 at 9:58 PM
🎊 Go 1.25.0 is released!
📝 Release notes: https://go.dev/doc/go1.25
⬇️ Download: https://go.dev/dl/#go1.25.0
#golang
📝 Release notes: https://go.dev/doc/go1.25
⬇️ Download: https://go.dev/dl/#go1.25.0
#golang
Reposted by Felix Geisendörfer
Excellent blog post about hooking up Go into Java for erasure coding:
kohlschuetter.github.io/blog/posts/2...
kohlschuetter.github.io/blog/posts/2...
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.
kohlschuetter.github.io
August 11, 2025 at 4:10 PM
Excellent blog post about hooking up Go into Java for erasure coding:
kohlschuetter.github.io/blog/posts/2...
kohlschuetter.github.io/blog/posts/2...
Reposted by Felix Geisendörfer
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
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
August 5, 2025 at 5:37 PM
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
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
Reposted by Felix Geisendörfer
🧭 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
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
August 1, 2025 at 5:39 PM
🧭 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
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
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.
July 30, 2025 at 5:00 AM
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.