
Go Developer Advocate & @jetbrains - Speaker, Engineer & Mentor | https://xitter.twitterapi.xyz/t.co/CoEU81XTvK
London, England
Joined September 2020
- Tweets371
- Following69
- Followers401
- Likes1.1K
string(9786) isn't "9786". It's 🙂
Go 1.28 removes string(int). Only a byte, a rune or a rune constant like 'a' converts.
go vet has flagged it since Go 1.15. Rob Pike proposed it in 2012, "in some remote future".
go.dev/issue/3939 #golang
DRAM nearly doubled in price in a single quarter this year, which is mad.
Now the Go team says reducing Go's memory footprint is "one of our major priorities for the coming year".
Q1 2026 DRAM contract prices: up about 93-98% on the quarter (TrendForce).
Should we be choosing languages based off cost? Maybe?
go.dev/blog/17years
#golang #ai #dram
“Go Turns 17” by Austin Clements, for the Go team — go.dev/blog/17years
#golang
This is how a security release should feel - boring.
#golang 1.27.4 and 1.26.11. 12 CVEs, pre-announced 5 days ago with IDs only. Fixes and details landed together today.
The net/http race was interesting, so I animated it 👇
It only affects you if you run a HTTP/1 server with http.MaxBytesReader or http.MaxBytesHandler, and the handler reads the body concurrently with writing the response header.
If that's you, update.
1
1
170
The other 11 fixes are all in the toolchain. Details below.
But the bit I like most is how it was handled. Pre-announced on 5 Nov with CVE IDs only, no details. Fixes and write-ups landed together today.
After PHP2Shell's broken embargo last month, this is how it should feel - BORING.
go.dev/doc/devel/release#go1…
1
142
#golang is growing up. And so are its developers, but nobody’s replacing them?
Go devs, 2024 → 2026:
- 6+ years’ experience: 52% → 66%
- 1–2 years: 14% → 9%
And it’s not just Go. Entry-level tech hiring is down ~65% at big tech since 2019 (SignalFire).
Why should you care:
Every senior was a junior once. Someone took you under their wing and taught you the craft.
A tool can’t replace banter after a crap day, a pick-me-up when you’re burnt out, or a Friday rant.
So keep hiring juniors. Keep investing in people.
1
19
708
The very talented Dominika Stankiewicz put together The State of Go in 2026 on the @jetbrains blog. #goland 👇
blog.jetbrains.com/go/2026/1…
Heavy weekend? Strong Monday coffee not enough? Try some fresh @jetbrains Air to perk you up.
@GoLandIDE 2026.3 has our new AI agentic experience, Air. And a tonne of new features, plus a powerful new profiling skill. More to commeee!
blog.jetbrains.com/go/2026/1…
#golang
If you know map, you know hashed Map
It’s also been accepted this week, for golang.org/x/exp/collection/….
You supply the hashing and the equality, so keys can be case-insensitive strings, slices, or anything where == isn’t the equality you want.
go.dev/issue/69559
#golang
Goodbye map[string]struct{} 👋
Go's generic set proposal was just accepted. set.Set is still a map underneath, so range just works, but you get Insert, Contains, Union, Difference and more.
It lands first in golang.org/x/exp/collection/…
go.dev/issue/69230
Ainsley Clark retweeted
Most programming languages let you stash content in the resulting binary, but Go's approach is simple, powerful, and somewhat unique. I like that //go:embed lets me embed a folder too. And all with the standard library!
@ainsleydev explores: internals-for-interns.com/po…
Ainsley Clark retweeted
How does `//go:embed` actually work under the hood?
Find out by reading @ainsleydev's post on the Internals for Interns blog. In it, he explains all the associated runtime mechanics, traps, and trade-offs, and shares some top architecture tips for working with `//go:embed` 👇
jb.gg/r6wz7t
It took me years to get comfortable with a blank canvas. 33 Go developers in Nairobi @gophers_africa did it in 80 minutes with the help of AI.
Mad what we can design these days with a prompt, check them out below 👇
showcase.ainsleyclark.com/go…
Curious about how #golang embed works under the hood?
Happy to contribute to such an esteemed blog. Thanks @jespinog 🤝
internals-for-interns.com/po…
Today is guess day in my blog. Please welcome @ainsleydev, Go Developer Advocate at @JetBrains, founder of the agency ainsley.dev, and the person behind the GoDaily newsletter. Today he follows `//go:embed` all the way from a comment in your source to bytes in your binary.
He guide us throgh the different components of the go toolchain.
- The go command (runs once) spots your `//go:embed` comments, expands patterns like `assets/*` into real files on disk and store that.
- The compiler validates the directive, reads each file and lays its bytes out as read-only data.
- The linker joins everything with the runtime, and your file ends up in the binary's read-only data section.
He also covers the runtime side plus the tradeoffs, like why you should never embed secrets.
Read it here: internals-for-interns.com/po…
#Golang
Ainsley Clark retweeted
⚙️ High-performance Go starts with understanding what's under the hood!
A big thank you to Jesús Espino for diving into memory allocations, stack vs. heap, and goroutine scheduling.
A great hands-on exploration of Go's runtime! 🚀 #GoLab2026
Ainsley Clark retweeted
This Saturday I'm not working on my next blog post, because this week Internals for Interns has a guest!
@ainsleydev (DevRel at @jetbrains) is joining to explain how something works under the hood, in true Internals for Interns style. The topic: how the //go:embed directive gets your files inside your Go binary.
Like many things in Go, it isn't one piece doing all the work. It's a collaboration between different parts of the toolchain:
- The go command finds where you're embedding files and works out which files match.
- The compiler reads that list, checks it, and generates the static data.
- The linker puts everything together into one binary, with your file bytes sitting in the read-only data section (rodata).
Article drops Monday!
Want these articles directly in your inbox? Subscribe to the newsletter: internals-for-interns.com/ne…
#Golang











