#​440 — December 9, 2022

Unsub  |  Web Version

Together with  Ardan Labs

The Go Weekly Newsletter

A Look Back at 2022 for Go Gamedev with Ebitengine™ — Formerly known as Ebiten, newly trademarked Ebitengine™ is a popular 2D game engine for Go and one of our favorite Go projects generally. It’s had a good year with improved Windows support, full games published and released on the Nintendo Switch, and productive game jams.

Ebitengine Team

New in Go 1.20: Wrapping Multiple Errors — The final release of Go 1.20 (draft release notes) is still a while away, but comes with a change that can improve error wrapping, as demonstrated in this post.

Lukáš Zapletal

💡 If you want to play with Go 1.20, the first release candidate came out yesterday.

Gophers - Opportunity is Knocking — We’re a premier software engineering firm looking for mid to senior level engineers to help us develop advanced software solutions and applications in Go. Got at least 1 year of professional Go experience and located in the Americas or Western Europe? We want to hear from you.

Ardan Labs sponsor

Some Useful Patterns for os/exec — These patterns are great if you’re invoking OS commands for running tests, connecting tools together, etc. Covers things like capturing output, piping, and process groups.

Aaron Son (Dolt)

New Language Issue: Runtime: Diagnostics Improvements — A group of Gophers is focusing on improving runtime diagnostics starting with runtime traceability and heap analysis tooling, which is exciting for anyone that uses the trace command. This link tracks their progress and meeting minutes.

Michael Knyszek (Google)

IN BRIEF:

Functional Table-Driven Tests in Go — The tables in table driven tests can become cumbersome and hard to read when complex structs get involved. What to do? Get functional and build those data structures more dynamically.

Fatih Arslan

▶  Writing Apps More Securely with Go — A brief introduction to vulnerability management coupled to a less brief live coded demo of Go 1.18’s fuzz testing feature.

Cody Oss (Google)

Forget Everything You Know About SSH — Say goodbye to managing SSH keys. Tailscale SSH works where Tailscale works & is free for personal use up to 20 devices.

Tailscale sponsor

When to Use gRPC vs GraphQL — A fair comparison of two popular API protocols to see where each works best.

Loren Sands-Ramshaw

▶  Building a CLI Tool with Go that Calls Stripe's HTTP API — Built upon Cobra. (26 minutes.)

Maximilien Andile

🛠 Code & Tools

D2: Declarative Diagramming System — A particularly featureful ‘text to diagram’ system. Declarative because you describe what you want to see, and D2 does the work. The output looks fresh, clean and modern – no janky old Unix rendering style here. v0.1 just dropped with Windows support, sequence diagrams, and even LaTeX formula support. GitHub repo.

Terrastruct Inc.

Marmot: A Distributed SQLite Replicator atop NATS — There are lots of interesting SQLite replication projects right now (such as Litestream) but this one takes an interesting approach by being built on top of NATS.

Zohaib Sibte Hassan

Argo CD Architectures, Solved! — Explore the pros and cons of the three most common architectures when implementing Argo CD.

Akuity sponsor

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

Site Reliability Engineer — Join our "kick ass" team. Our software team operates from 17 countries and we're always looking for more exceptional engineers.
Sticker Mule

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