Sign in

Michael Pratt

@prattmic.com
1.6K followers 213 following 243 posts

Hacking on the Go runtime and gVisor. 🏳️‍🌈

PostsRepliesMedia
Reposted by Michael Pratt
Go @golang.org · 24/09/2026
“Platform-independent SIMD in Go” by David Chase and Junyang Shao — go.dev/blog/simd-experiment #golang
0358
Michael Pratt @prattmic.com · 18/09/2026
Time to set up gVisor to sandbox even the GUI applications I run? Back when we started gVisor I never imagined we'd run anything this complex. It's amazing to see how far the project has come! gvisor.dev/blog/2026/09...
gvisor.dev
Who needs VMs? Run systemd and full Linux desktop apps in gVisor
1130
Reposted by Michael Pratt
Go @golang.org · 16/09/2026
“Size-Specialized Memory Allocation” by Michael Matloob — go.dev/blog/size-specialized-alloca… #golang
0236
Reposted by Michael Pratt
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
Reposted by Michael Pratt
Bryan Cantrill @bcantrill.bsky.social · 05/09/2026
The revolt of the reader bcantrill.dtrace.org/2026/09/05/t...
bcantrill.dtrace.org
The revolt of the reader | The Observation Deck
1112331
Reposted by Michael Pratt
rain 🌦️ @sunshowers.io · 04/09/2026
One recently-added section to our RFD 576 says that in public writing it's worth avoiding even the appearance of AI slop -- both at the content and at the text level
rfd.shared.oxide.computer
576 - Using LLMs at Oxide | RFD | Oxide
4697
Reposted by Michael Pratt
Go @golang.org · 02/09/2026
“Goroutine Leak Profiles” by Vlad Saioc — go.dev/blog/goroutine-leak-profiles #golang
0235
Reposted by Michael Pratt
Anton Zhiyanov @antonz.org · 27/08/2026
I've updated the "Go features by version" list with the latest changes from 1.27. This is not a replacement for release notes, but rather a quick summary of major features in any given Go version. antonz.org/go-features/...
1243
Reposted by Michael Pratt
Anton Zhiyanov @antonz.org · 25/08/2026
The new JSON package is finally production-ready in Go 1.27, so I've updated my JSON v2 guide. It explains all the main differences between the json and json/v2 packages, with interactive examples for each one. Check it out! antonz.org/go-json-v2
antonz.org
JSON evolution in Go: from v1 to v2
Reviewing the key changes in json/v2.
2427
Reposted by Michael Pratt
Markus 🤓✨ @markus.maragu.dev · 19/08/2026
No more creating non-nil empty lists for JSON. 🥳
061
Michael Pratt @prattmic.com · 19/08/2026
Generic methods! encoding/json/v2! goroutine leak profiles! Dare I say this is the best Go release yet?
2233
Reposted by Michael Pratt
Anton Zhiyanov @antonz.org · 17/08/2026
The goroutine leak detector will become generally available in Go 1.27. But did you know you can also use synctest (Go 1.25+) to catch goroutine leaks in tests? See how the two approaches compare: antonz.org/detecting-go...
antonz.org
Detecting goroutine leaks with synctest/pprof
Explore different types of leaks and how to detect them in modern Go versions.
072
Reposted by Michael Pratt
Daniel Lemire @lemire.bsky.social · 15/08/2026
Go 1.27 will make some allocations cheaper lemire.me/blog/2026/08/15/go-1-27-w…
1204
Reposted by Michael Pratt
Daniel Lemire @lemire.bsky.social · 10/08/2026
Profile-guided optimization in Go lemire.me/blog/2026/08/09/profile-g…
043
Michael Pratt @prattmic.com · 09/08/2026
I just finished Toward Eternity by @antonhur.com. Beautiful story and definitely my favorite book I've read this year. And I found it thanks to BlueSky!
1173
Reposted by Michael Pratt
Liz Rice 💛💙🐝 @lizrice.com · 03/08/2026
🪫Anyone else finding that their #iPhone is draining battery a lot faster than usual? Mine has been going into adaptive power mode every day for at least the last week or so and barely makes it through the day without a recharge, even though battery health is reported as 100%
6113
Reposted by Michael Pratt
Phil Eaton @eatonphil.bsky.social · 24/07/2026
I wrote an article about Go's new Green Tea garbage collector. Paywall has expired, give it a read. theconsensus.dev/p/2026/07/19...
0396
Reposted by Michael Pratt
ICFP Programming Contest 2026 @icfpcontest.bsky.social · 24/07/2026
This year's ICFP programming contest has begun! To get started, read the textbook: icfpcontest2026.com/textbook
075
Reposted by Michael Pratt
GopherCon @gophercon.com · 15/07/2026
What does it take to build a language that lasts? ∞ Join Austin for the Opening Keynote as they explore how Go is evolving for the decades ahead while staying true to what made it successful. See how language evolution, AI, and an open governance model are shaping Go's future. 🛸 🎟️ gophercon.com
081
Reposted by Michael Pratt
roland.zone @roland.zone · 08/07/2026
excited to talk about the (mostly) boring vulns we have, with a slight digression about how LLMs have completely turned the way vulns are found upside down 🙃
0254
Reposted by Michael Pratt
Russ Cox @swtch.com · 08/07/2026
TypeScript is now officially written in Go.
29015
Reposted by Michael Pratt
Go @golang.org · 07/07/2026
🎊 Go 1.27 Release Candidate 2 is released! 🔐 Security: Includes 2 security fixes to the standard library. 🏃‍♀️ Run it in dev! Run it in prod! File bugs! go.dev/issue/new 📣 Announcement: groups.google.com/g/golang-ann... 📦 Download: go.dev/dl/#go1.27rc2 #golang
$ go install golang.org/dl/go1.27rc2@latest
$ go1.27rc2 download
Downloaded   0.0% (       0 / 68280950 bytes) ...
Downloaded  50.0% (34140475 / 68280950 bytes) ...
Downloaded 100.0% (68280950 / 68280950 bytes)
Unpacking go1.27rc2.freebsd-386.tar.gz ...
Success. You may now run 'go1.27rc2'
$ go1.27rc2 version
go version go1.27rc2 freebsd/386
0408
Reposted by Michael Pratt
Aditya Mukerjee 🦦 🏳️‍🌈 @chimeracoder.bsky.social · 23/06/2026
Election Day is a good day to remind you that you can now request a mail ballot for the general election (or all elections this calendar year, including special elections). No need to wait in line at the polls next time! You can request it online - it takes 30 seconds! requestballot.vote.nyc
Screenshot of the Request Early Mail Ballot page
164
Reposted by Michael Pratt
Go @golang.org · 18/06/2026
🎊 Go 1.27 Release Candidate 1 is released! 🏃‍♂️ Run it in dev! Run it in prod! File bugs! go.dev/issue/new 🔈 Announcement: groups.google.com/g/golang-announce… 📦 Download: go.dev/dl/#go1.27rc1 #golang
$ go install golang.org/dl/go1.27rc1@latest
$ go1.27rc1 download
Downloaded   0.0% (       0 / 66941862 bytes) ...
Downloaded  50.0% (33470931 / 66941862 bytes) ...
Downloaded 100.0% (66941862 / 66941862 bytes)
Unpacking go1.27rc1.linux-arm64.tar.gz ...
Success. You may now run 'go1.27rc1'
$ go1.27rc1 version
go version go1.27rc1 linux/arm64
26114
Reposted by Michael Pratt
Ben K. @benjaminkabak.com · 18/06/2026
Keep it that way.
314517
Reposted by Michael Pratt
Jake Bailey @jakebailey.dev · 15/06/2026
This is a fun one: I just sent go.dev/cl/790740, which elides method wrappers for embedded types at offset zero, common for mixins/inherited data types. Doing this removes 60 _thousand_ method wrappers from tsgo's AST package, dropping the compilation of our main exe from 49s to 28s on my machine.
Benchmark 1: go build -a ./cmd/tsgo
  Time (mean ± σ):     48.992 s ±  0.274 s    [User: 345.152 s, System: 12.545 s]
  Range (min … max):   48.702 s … 49.478 s    10 runs
 
Benchmark 2: ~/work/go/bin/go build -a ./cmd/tsgo
  Time (mean ± σ):     28.323 s ±  0.133 s    [User: 141.277 s, System: 4.853 s]
  Range (min … max):   28.075 s … 28.555 s    10 runs
 
Summary
  ~/work/go/bin/go build -a ./cmd/tsgo ran
    1.73 ± 0.01 times faster than go build -a ./cmd/tsgo
3656
Michael Pratt @prattmic.com · 25/05/2026
New rule dropped: anything above 11239 isn't the real Brooklyn.
030
Michael Pratt @prattmic.com · 18/05/2026
apnews.com/article/mamd... NY to tax second homes in NYC worth >$5M Real internet commenter: “This will disproportionately negatively affect middle-class people and families” LMAO
apnews.com
New York to tax luxury second homes in NYC but stops short of hiking income taxes on the wealthy
New York state lawmakers are expected to place a new tax on luxury second homes in New York City, appeasing Mayor Zohran Mamdani and his progressive base as he moves to fund his ambitious agenda on th...
191
Reposted by Michael Pratt
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
Reposted by Michael Pratt
Jake Bailey @jakebailey.dev · 06/05/2026
My talk was accepted to GopherCon 2026 in Seattle! I'm back with more TypeScript+Go goodness, this time with another year's worth of experience under our belt. I had a blast at last year's conference, so here's to yet another one! www.gophercon.com/agenda/speak...
Jake Bailey
Principal Software Engineer
Microsoft
Jake is a programming language lover and Principal Software Engineer at Microsoft. He currently works on TypeScript, mainly focusing on performance, infrastructure, and the ecosystem, along with side adventures in Go (especially compiler and runtime changes in Go and TinyGo!).
Blog: jakebailey.dev
SESSIONS
Wed Aug 05, 5:15 PM - 5:40 PM PDT   (25 min)
State of TypeScript 7: Beyond the Port - Speaker
Last year, we shared the story of TypeScript's port to Go. A lot has happened since then: we've shipped TypeScript 6.0 as a bridge release, watched our native preview grow past 5 million weekly downloads. The port is done, but the work didn't stop there.

In this talk, we'll go beyond the port itself. We'll cover the new API surfaces we've built on top of the Go codebase, including a snapshot-based language server, cross-language IPC, and Wasm. We'll talk about how the community has adopted the new compiler, how we've ensured stability at scale, and what surprises and compromises came up along the way. We'll also share our continued experience writing Go; where the language and toolchain have gotten better for us, and where they sometimes haven't.

Talk/Attendee Level: Intermediate

Finneran Ballroom 2, Level 5, SCC | Summit
1463
Reposted by Michael Pratt
Filippo Valsorda @filippo.abyssdomain.expert · 28/04/2026
A bit over two years after starting to work on it... Go is officially FIPS 140-3 certified 💥 csrc.nist.gov/projects/cry... I am pretty confident Go is now one of the most—if not the most—seamless and complete FIPS 140-3 compliance solutions... with a single env var, out of the box.
928962
Reposted by Michael Pratt
Carmen H. Andoh @carmatrocity.bsky.social · 27/04/2026
csrc.nist.gov/projects/cry... CMVP has (finally!) Validated the Go Crytogrpahy Module for FIPS 140-3. Congrats and Thank you to @geomys.org and @filippo.abyssdomain.expert
csrc.nist.gov
Cryptographic Module Validation Program | CSRC | CSRC
Welcome to the CMVP The Cryptographic Module Validation Program (CMVP) is a joint effort between the National Institute of Standards and Technology under the Department of Commerce and the Canadian C...
093
Reposted by Michael Pratt
Liz Rice 💛💙🐝 @lizrice.com · 26/04/2026
@philpearl.bsky.social looked at #golang Swiss tables performance ⭐️ philpearl.github.io/post/swissing_a_table/
philpearl.github.io
Swissing a table · Phil Pearl's Blog
Moving step by step from a simple hash table to a “swiss table” — the design behind Go’s new map implementation.
0102
Reposted by Michael Pratt
Mekka Okereke @mekka.mekka-tech.com · 12/04/2026
Here's an example. Average rent in LA for a 1 BR is $2500. A woman that lives in LA and earns an hourly wage, knows that if she can't work for a month, she needs to come up with $2500 or she will be homeless. After bills, she has only $200 left over. She saves almost all of it, and doesn't eat out.
1333
Reposted by Michael Pratt
Damien Neil @misago.org · 08/04/2026
Holy cheese my untyped composite literal proposal from 2015 just got accepted. #golang github.com/golang/go/is...
github.com
proposal: spec: type inferred composite literals · Issue #12854 · golang/go
Composite literals construct values for structs, arrays, slices, and maps. They consist of a type followed by a brace-bound list of elements. e.g., x := []string{"a", "b", "c"} I propose adding unt...
4314
Reposted by Michael Pratt
David Buchanan @retr0.id · 29/03/2026
>benchmark perf improvements >it's slower
41287
Reposted by Michael Pratt
Quim Muntal @qmuntal.bsky.social · 27/03/2026
Compiler nerd joy: making some #golang switch statements ~2.5x faster ⚡ go.dev/cl/756340
go.dev
Gerrit Code Review
1242
Reposted by Michael Pratt
Go @golang.org · 24/03/2026
“Type Construction and Cycle Detection” by Mark Freeman — go.dev/blog/type-construction-and-c… #golang
0259
Reposted by Michael Pratt
Alan Donovan @adonovan.bsky.social · 11/03/2026
Find out how the source-level inliner in Go 1.26 can help you with API migrations. go.dev/blog/inliner
go.dev
//go:fix inline and the source-level inliner - The Go Programming Language
How Go 1.26's source-level inliner works, and how it can help you with self-service API migrations.
15513
Reposted by Michael Pratt
Go @golang.org · 11/03/2026
“//go:fix inline and the source-level inliner” by Alan Donovan — go.dev/blog/inliner #golang
0325
Reposted by Michael Pratt
Mayor Zohran Kwame Mamdani @mayor.nyc.gov · 28/02/2026
Additionally, I want to speak directly to Iranian New Yorkers: you are part of the fabric of this city — you are our neighbors, small business owners, students, artists, workers, and community leaders. You will be safe here.
5099271412
Reposted by Michael Pratt
Go @golang.org · 27/02/2026
“Allocating on the Stack” by Keith Randall — go.dev/blog/allocation-optimizations #golang
1447
Reposted by Michael Pratt
jub0bs @jub0bs.com · 26/02/2026
🚀 "spec: generic methods for Go" has been accepted! You will soon (1.27?) be able to declare (on concrete types only) methods that introduce type parameters, i.e. type parameters other than the ones (if any) that come from the method's receiver. github.com/golang/go/is... #golang
github.com
spec: generic methods for Go · Issue #77273 · golang/go
Proposal: Generic Methods for Go A change of view. Background For clarity, in the following we use the term concrete method (or just method when the context is clear) to describe a non-interface me...
3113
Michael Pratt @prattmic.com · 24/02/2026
My phone is now hot but the best part is I’m not sure if that is from the CPU emulator or from GitHub trying to render the 14k source file when I went to see how this works.
2100
Reposted by Michael Pratt
Filippo Valsorda @filippo.abyssdomain.expert · 20/02/2026
Dependabot security alerts have terrible signal-to-noise ratio, especially for Go vulns. That hurts security! Just turn it off and set up a pair of scheduled GitHub Actions, one running govulncheck and the other running CI with the latest version of your deps. Less work, less risk, better results!
words.filippo.io
Turn Dependabot Off
I recommend turning Dependabot off and replacing it with a pair of scheduled GitHub Actions, one running govulncheck, and the other running CI against the latest version of your dependencies.
49220
Reposted by Michael Pratt
Go @golang.org · 17/02/2026
“Using go fix to modernize Go code” by Alan Donovan — go.dev/blog/gofix #golang
06122
Reposted by Michael Pratt
Anton Zhiyanov @antonz.org · 11/02/2026
Go 1.26 is out, and the announcement says: "Over the next few weeks, follow-up blog posts will cover some of the topics in more detail. Check back later." So you can wait a few weeks OR you can read my interactive Go 1.26 tour right away: antonz.org/go-1-26
antonz.org
Go 1.26 interactive tour
New with expressions, type-safe error checking, and faster everything.
15214
Reposted by Michael Pratt
Jake Bailey @jakebailey.dev · 11/02/2026
Some pretty awesome improvements in 1.26 for compiling/testing typescript-go. With a clean build/test cache, running the full test suite used to take 3m45s, but now takes just 2m10s.
go version go1.25.7 linux/amd64
[11:09:32.210] [0] $ gotestsum --format-hide-empty-pkg --hide-summary skipped -- ./...
[11:13:16.754] [0] ✔ (done in 3m 44.5s)
✓  internal/vfs/osvfs (7ms)
✓  internal/vfs/cachedvfs (7ms)
✓  internal/tspath (14ms)
✓  internal/tsoptions (37ms)
✓  internal/vfs/vfstest (175ms)
✓  internal/testrunner (18.551s)

DONE 142758 tests, 2805 skipped in 97.329s
Finished test in 3m 45.1s
Completed test in 3m 45.1s
go version go1.26.0 linux/amd64
[11:13:18.483] [0] $ gotestsum --format-hide-empty-pkg --hide-summary skipped -- ./...
[11:15:27.835] [0] ✔ (done in 2m 9.3s)
✓  internal/project/ata (1.064s)
✓  internal/fourslash/tests/manual (1.223s)
✓  internal/project (2.253s)
✓  internal/parser (4.865s)
✓  internal/fourslash/tests/gen (5.858s)
✓  internal/testrunner (21.411s)

DONE 142758 tests, 2805 skipped in 31.448s
Finished test in 2m 10s
Completed test in 2m 10s
2635
Reposted by Michael Pratt
Go @golang.org · 10/02/2026
“Go 1.26 is released” by Carlos Amedee, on behalf of the Go team — go.dev/blog/go1.26 #golang
16217
Michael Pratt @prattmic.com · 10/02/2026
🍵
0231