Ainsley Clark (@ainsleydev) header
Ainsley Clark (@ainsleydev) profile picture

Go Developer Advocate & @jetbrains - Speaker, Engineer & Mentor | https://xitter.twitterapi.xyz/t.co/CoEU81XTvK

London, England
Joined September 2020
Photo by Ainsley Clark (@ainsleydev)Photo by Ainsley Clark (@ainsleydev)Photo by Ainsley Clark (@ainsleydev)Photo by Ainsley Clark (@ainsleydev)Photo by Ainsley Clark (@ainsleydev)Photo by Ainsley Clark (@ainsleydev)Photo by Ainsley Clark (@ainsleydev)Photo by Ainsley Clark (@ainsleydev)Photo by Ainsley Clark (@ainsleydev)Photo by Ainsley Clark (@ainsleydev)
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
1
1
14
335
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
1
1
12
332
Ainsley Clark retweeted
“Go Turns 17” by Austin Clements, for the Go team — go.dev/blog/17years #golang
19
141
29
819
40,767
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 👇
2
6
90
4,044
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:
5
7
1
155
6,180
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
Go is the 🐐
For Go’s 17th birthday, we asked Gophers why they keep choosing Go. They seemed pretty unanimous! What would your answer be? 💬
5
5
63
1,508
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
8
5
1
86
3,613
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
51
175
57
1,308
97,813
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…
2
9
1
153
9,170
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
15
112
3,887
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…
2
18
472
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
1
6
368
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
4
14
194
4,641
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
2
6
1
70
2,066