🇺🇦 #​406 — April 1, 2022

Unsubscribe  |  Read on the Web

🤞 Fingers crossed.. but this issue should be an April Fools' free zone, unless we've been pranked too, of course.. :-)

The Go Weekly Newsletter

Generics Can Make Your Go Code Slower (Sometimes...) — It’s not as negative as it sounds. This is a deep and informative article that looks at compiler output for various generic and non-generic examples along with benchmarks that lead to a solid list of ‘dos and don’ts’ when it comes to using generics in your Go code.

Vicent Marti (PlanetScale)

Writing a Document Database From Scratch in Go — Now this is what we’re always here to see. A data tooling expert (who also happens to have once worked at Oracle) digging into the fundamentals of creating a database in Go. Get inspired, get building, and join the pantheon of database creators.

Phil Eaton

The Modern Guide to OAuth - Free eBook — Learn how OAuth is actually used in the real world. We cover topics like the eight common OAuth modes, how to use the Authorization Code grant, and why you should never use the implicit grant. Become an OAuth expert today.

FusionAuth sponsor

How Go Mitigates Supply Chain Attacks — Packaging systems are increasingly becoming a vector for security vulnerabilities and attacks, as perhaps most often seen recently in the JavaScript / npm ecosystem (example). Go isn’t immune to this but has some qualities that “help mitigate risk at various stages”, as explained here.

Filippo Valsorda

Quick bits:

Jobs

Golang Engineers — 100% Remote (North/South America & Europe) — We’ve got several opportunities for Go devs (some working directly with Bill Kennedy!) and would love to hear from those looking for new challenges in distributed systems projects.
Ardan Labs

Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on long-term projects for Riot Games, FOX, Sony, Coinbase, and more.
X-Team

Find a Job Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.
Hired

Using the GPU Cores on Apple's M1 from Go — The hacker spirit is immediately on display here: “Since I paid for those extra GPU cores, I thought I should know how to use them…”

Adrian Hesketh

Building Microservices in Go with FiberFiber is a Fasthttp-powered Go web framework inspired directly by Node’s Express.js (and therefore, indirectly, Ruby’s Sinatra).

Subha Chanda

▶  Making the Command Line Glamorous with Go — Toby Padilla is the founder of Charm, a company focused entirely on building tools to ‘make the command line glamorous’, and Go is the language they do it in (Bubble Tea is one of their projects).

The Changelog Podcast podcast

How We Used Go 1.18 When Designing Our Identifiers — This isn’t something that demands generics, but they found them a way to improve an abstraction.

Dominic Black

Some Thoughts on Go's 'Unusual' Approach to Identifier Visibility
Chris Siebenmann

Creating Microservices in Go with gRPC, API Gateway, and Auth
Kevin Vogel

🛠 Code & Tools

Ffuf 1.4.0: Fast Web Fuzzer Written in Go — This is for testing systems/apps of your own, of course, but will let you quickly fuzz POST data, URL parameters, paths, and more. (Fantastic logo, BTW.)

Joona Hoikkala

TableFlip: Graceful Process Restarts in Go — You’ve got an app running as a service and you want to restart it without disrupting existing connections – here’s one way to pull it off.

Cloudflare

Debug Go Apps Without Stopping Them in Prod. Try Rookout Free Today

Rookout sponsor

Thanos: A Prototype Ruby to Go Transpiler — Very early days here but I like the idea (yes, we have a sibling Ruby newsletter which makes this particularly special!)

Jonathan Paul Lukens

usql 0.10.0: A Universal CLI Tool for Databases — It’s inspired by psql, but adds some more features and supports tons of databases, both relational and NoSQL.

Kenneth Shaw

go-version: A Version Number Parsing and Verification Library — This is for when you need to do things like verify version numbers against constraints (e.g. is 1.2 >= 1.0, < 1.4). It can also parse, sort, and compare version numbers.

HashiCorp

😎 Did You Know..?

As much as we enjoy making this newsletter, we also publish a handful of others you might not know about. You can see the latest issues of them all directly on their homepages:

💛 JavaScript Weekly covers all things JavaScript, but also the JS ecosystem more broadly, including TypeScript, WebAssembly, Vue.js, build tools, and Svelte.

⚛️ Just round the corner from JS is React Status covering, unsurprisingly, the React world and Node Weekly which goes deeper into Node.js, the npm ecosystem, and other server-side JS platforms like Deno.

👩‍💻 Frontend Focus, once known as HTML5 Weekly, covers everything that appears in a browser! CSS, HTML, accessibility, WebGL – it's all in there.

ƛ Serverless Status is the baby of our newsletter family and focuses entirely on the idea of functions as a service, serverless platforms, and the increasing number of new places serverless ideas keep popping up.

🐘 Postgres Weekly and JAMstacked then round out the collection, leaving us just with Golang Weekly which is.. ah yes, I think we're done 😁

__
Peter Cooper, your editor