---
title: "Brian Kernighan shares 50 years of wisdom"
publication: "Go Weekly"
issue: 406
published_at: "2022-04-01"
canonical_url: "https://golangweekly.com/issues/406"
---

Plus a Ruby to Go transpiler, how Go mitigates supply chain attacks, and GopherCon UK is back. |        

🇺🇦 #​406 — April 1, 2022 

[Unsubscribe](https://golangweekly.com/leave/*|UID|*)|[Read on the Web](https://golangweekly.com/issues/406)   

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

The _Go Weekly_ Newsletter 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/je8ygkgsxpzclueosrkx.jpg)](https://planetscale.com/blog/generics-can-make-your-go-code-slower)  

[Generics Can Make Your Go Code Slower (Sometimes...)](https://planetscale.com/blog/generics-can-make-your-go-code-slower) — 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](https://notes.eatonphil.com/documentdb.html) — 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   [![\](https://copm.s3.amazonaws.com/2f8ff158.jpg)](https://fusionauth.io/learn/expert-advice/oauth/modern-guide-to-oauth?mtm_campaign=go-newsletter&mtm_source=email) 

[The Modern Guide to OAuth - Free eBook](https://fusionauth.io/learn/expert-advice/oauth/modern-guide-to-oauth?mtm_campaign=go-newsletter&mtm_source=email) — 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](https://go.dev/blog/supply-chain) — Packaging systems are increasingly becoming a vector for security vulnerabilities and attacks, as perhaps most often seen recently in the JavaScript / npm ecosystem ([example](https://jfrog.com/blog/large-scale-npm-attack-targets-azure-developers-with-malicious-packages/)). Go isn’t _immune_ to this but has some qualities that _“help mitigate risk at various stages”_, as explained here. 

Filippo Valsorda   

**Quick bits:** 

- 🎧 Brian Kernighan (co-author of both the _C Programming Language_ and _Go Programming Language_ books) [▶️ went on the _Changelog_ podcast](https://changelog.com/podcast/484) to share wisdom from his over 50 years in software development.
- Could [Go 1.19 see the introduction of](https://twitter.com/inancgumus/status/1508776538665328648) a (much) faster [race detector?](https://go.dev/blog/race-detector)
- 📅 [GopherCon UK](https://www.gophercon.co.uk/) is back, live and in person, this August in London, UK. The [call for papers](https://www.gophercon.co.uk/speakers/cfp/) is open till the end of April.
- I again want to thank Egon Elbre for their collection of [fantastic, CC0-licensed Go gopher images](https://github.com/egonelbre/gophers) (as used in the heading graphic at the top of this issue.)     

Jobs  

[Golang Engineers — 100% Remote (North/South America & Europe)](https://www.ardanlabs.com/careers/mid-level-and-senior-backend-engineer.html) — 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)](https://x-team.com/remote-go-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=cooperpress-go&utm_content=go) — 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](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-golangweekly%29&utm_content=find-your-next-job) — 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](https://adrianhesketh.com/2022/03/31/use-m1-gpu-with-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 Fiber](https://blog.logrocket.com/building-microservices-go-fiber/) — [Fiber](https://gofiber.io/) 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](https://changelog.com/gotime/222) — Toby Padilla is the founder of [Charm](https://charm.sh/), a company focused entirely on building tools to ‘make the command line glamorous’, and Go is the language they do it in ([Bubble Tea](https://github.com/charmbracelet/bubbletea) is one of their projects). 

The Changelog Podcast podcast   

[How We Used Go 1.18 When Designing Our Identifiers](https://encore.dev/blog/go-1.18-generic-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](https://utcc.utoronto.ca/~cks/space/blog/programming/GoOnIdentifierVisibility) 
Chris Siebenmann   

[Creating Microservices in Go with gRPC, API Gateway, and Auth](https://levelup.gitconnected.com/microservices-with-go-grpc-api-gateway-and-authentication-part-1-2-393ad9fc9d30) 
Kevin Vogel  

🛠 Code & Tools  

[Ffuf 1.4.0: Fast Web Fuzzer Written in Go](https://github.com/ffuf/ffuf) — 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](https://github.com/cloudflare/tableflip) — 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](https://www.rookout.com/solutions/live-debugger?utm_campaign=Go&utm_source=nl&utm_medium=cooper) 

Rookout sponsor   

[Thanos: A Prototype Ruby to Go Transpiler](https://github.com/redneckbeard/thanos) — Very early days here but I like the idea (yes, we have [a sibling Ruby newsletter](https://rubyweekly.com/) which makes this particularly special!) 

Jonathan Paul Lukens   

[usql 0.10.0: A Universal CLI Tool for Databases](https://github.com/xo/usql) — 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](https://github.com/hashicorp/go-version) — 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](https://javascriptweekly.com/) 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](https://react.statuscode.com/) covering, unsurprisingly, the React world and [Node Weekly](https://nodeweekly.com/) which goes deeper into Node.js, the npm ecosystem, and other server-side JS platforms like Deno. 

👩‍💻 [Frontend Focus](https://frontendfoc.us/), once known as _HTML5 Weekly_, covers everything that appears in a browser! CSS, HTML, accessibility, WebGL – it's all in there. 

ƛ [Serverless Status](https://serverless.email/) 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](https://postgresweekly.com/) and [JAMstacked](https://jamstack.email/) then round out the collection, leaving us just with _Golang Weekly_ which is.. ah yes, I think we're done 😁 

__
_Peter Cooper, your editor_         

Curated by [Glenn Goodrich](https://twitter.com/ruprict) and [Peter Cooper](https://twitter.com/peterc). 

[Change your email address](https://golangweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
