#​362 — May 14, 2021

Unsubscribe  |  Read on the Web

Go Weekly

Thoughts on How to Structure Go Code — Many languages have conventions on how to structure files and directories for an application, but Go leaves it up to you. This is mostly a good thing, right?

Jon Calhoun

Reflecting on Half a Million Lines of Go — Back in 2019, Kevin Dangoor of Khan Academy wrote about how KA was embarking on an effort to rebuild its server software with Go. And.. they did just that, with the end result being more than 500,000 lines of Go now running in production. Here’s a brief update of how it’s feeling to them.

Kevin Dangoor (Khan Academy)

Remote Instructor-Led Go, Docker, Kubernetes & Python Training — We offer live-streaming remote training sessions for individual engineers and companies that want to augment their knowledge in Go, Docker, Kubernetes and Python. We’ve trained over 10,000 engineers via our carefully crafted classes.

Ardan Labs sponsor

pprof++: A Go Profiler with Hardware Performance Monitoring — Uber takes us on a ride to create a better profiler that taps into hardware performance monitoring features of modern CPUs and is more accurate than pprof at scale. It’s powerful, but a big downside (amongst a few explained here) is it requires a fork of the compiler and runtime to operate.

Milind Chabbi (Uber Engineering)

A Go Modules Cheat Sheet — If you have to keep looking up what’s needed to work with dependencies, this page brings all the basics into one place (which you could even print out if you wanted). It’s not exhaustive, just the essentials.

André Eriksson

REST Servers in Go: Authentication — Eli returns with part six of his epic blog series on creating REST-oriented servers with Go. This time he focuses on HTTP basic auth over HTTPS.

Eli Bendersky

How to Do Enums in Go — Go doesn’t natively have an enum type like you might see in some languages, but iota can go a long way to helping out.

Marco Franssen

Observability Won’t Replace Monitoring (Because It Shouldn’t)

Lightstep sponsor

▶  printf vs Delve for Debugging Go Tests — A five-minute video that shows how easy it is to run and debug tests with Delve.

Felix Geisendörfer

The Story of Building a Serverless CRUD App with AWS Lambda and Go
Arjit Jaiswal

🛠 Code & Tools

Bloom 3.0: A Package for Implementing Bloom Filters — Bloom filters are memory efficient data structures for determining set membership with a defined potential rate of false positives. They have numerous use cases including in caching, spell checking, and rate limiting.

Will Fitzgerald

Echo 4.3: A High Performance, Minimalist Web Framework — A framework aimed at building REST APIs complete with a router, middleware framework, HTTP/2 support, automatic TLS with Let’s Encrypt, and more.

LabStack LLC

[Free Download] Guide to Effective Feature Management — Learn feature management practices to accelerate release cycles and deploy every 6 hours, instead of every 6 weeks.

LaunchDarkly sponsor

Heimdall 7.0: An Enhanced HTTP Client for Go — Designed for making large numbers of requests, including a built in circuit breaker to control failing requests, multiple and custom retry strategies, plus a fluent API.


EliasDB: A Graph-Based Database Written in Go — We first linked to this 5 years ago but the project is still going and getting updates with v1.2.0 released this week. You get a GraphQL interface or a REST API and data is stored within a indexed key-value store.

Matthias Ladkau

v8go 0.6.0: Execute JavaScript from Go(lang) — Lets you create V8 contexts and run code eval-style. This latest release upgrades V8 to 9.0, offers a static binary for Windows, and other tweaks.

Roger Chapman

Mangadesk: A Terminal Client for MangaDex — You could write everything I know about manga on the back of a postage stamp but this looks useful if you’re into it(?)


Secure: HTTP Middleware for Some 'Quick Security Wins' — Covers areas like content security policy, SSL redirects, allowing certain hosts, setting a referrer policy, etc.

Cory Jacobsen


Backend Engineer at Cross River Bank (Remote) — Enjoy designing APIs with Go on AWS? Join us in making banking more accessible with the best banking platform for fintechs.
Cross River Bank

Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring — Like coding in Go? We do too. Stream is hiring in Amsterdam. Apply now.

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.