#417 — June 24, 2022
The Go Weekly Newsletter
▶ An Introduction to Fuzzing in Go — An official, three-minute, introductory video from Google on getting started with Go’s newest fuzz testing features (or, if you prefer, a written tutorial). Elsewhere, Khaled Yakdan writes about improvements being made to fuzzing for Go 1.19 – a lot of work has gone into this.
Nooras Saba (Google)
Making Code Faster — When someone with Tim’s experience talks about improving code performance, it never makes for a bad read. Here he shares a story of profiling some Go code. His approach is simple: Test, Benchmark, Refactor, Iterate.
Tim Bray
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
How Uber Halved Its Go Monorepo CI Build Time — Uber rocks a monorepo setup for its Go-based back-end services and libraries and a downside was a cascade of checks and complexity when making changes to widely used dependencies within the monorepo. This post digs into the problem and how Uber works around it (to some extent, anyway).
French, Rukas, Tan (Uber)
How to Build Your Package Docs Locally — It started with an aim: "I wanted to see a rendering of my module docs as they would on pkg.go.dev locally before publishing" – and since godoc is deprecated, Milan figured out how to do it with pkgsite.
Milan X
Quicker bits:
-
Two weeks ago we featured an article about data races in Go and the authors have turned their research into 📄 an academic paper (PDF) covering the same ground but with plentiful references and formatting that makes you feel smarter just by staring at it.
A Faster Development Experience with Vite, Hugo and Preact — Hugo is a fantastic Go-powered static site generator but sometimes you might need to wander onto the JavaScript path a little.. Dawid found Vite to help a lot with getting everything 🎵 working together.
Dawid Prośba
Jobs
Senior Backend Go Engineer - Remote (US) — Petabytes of data, millions of requests a second! Help us build our AdTech platform. Go, GCP, gRPC, Bigquery, Bigtable, Spanner.
MadHive
Senior Backend Software Engineer - Remote — Hiring experienced Go developers interested in building open source software around networking, security and distributed systems.
Teleport
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
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
🛠 Code & Tools
Viddy: A Modern Go Alternative to watch — It’s not every day we see a Clockwork Orange themed project. The idea here is viddy can execute commands on a periodic basis but you get niceties like ‘time travel’, attractive output, and paging.
Takumasa Sakao
Render 1.5: Easily Render JSON, XML, Binary Data, and HTML Template Responses — A package for rendering various types of output in a more structured way if you’re putting together a Go-powered HTTP service, say.
Cory Jacobsen
A wolfSSL Wrapper for Lightweight SSL/TLS in Go — wolfSSL is a lightweight, portable SSL/TLS library targeting IoT and embedded environments. The repo includes examples of creating a server or client with it.
wolfSSL
Keep Up with the Latest in Startups, Tech, & Programming in Just 5 Min
TLDR Newsletter sponsor
Cobra 1.5.0: A 'Commander' for Modern Go CLI Interactions — A popular toolset for creating flexible Go-based CLI apps. v1.5 introduces the ability to mark flags/options are required or exclusive as a group (e.g. needing --username and --password to both be present).
Steve Francia
Gopherlings: Learn Go by Fixing Tiny Incorrect Programs — 18 very simple programs to fix, but it’s an interesting format and would be fun to see at a larger scale or for specific niches?
Patricio Whittingslow for beginners
A Simple/Minimal Tcl Interpreter Written in Go — A learning exercise explained here.
Steve Kemp
QUICK RELEASES:
Benthos 4.3 – Fancy stream processing made simple.
PanicParse 2.3 – Parse panic stack traces.
phonenumbers 1.1 – Parse and validate phone numbers.
tproxy 0.3 – CLI tool to proxy and analyze TCP connections.
Clash 1.11 – A rule-based tunnel built in Go.
Hertz 0.1 – Go framework for HTTP microservices.
Kagome 2.8 – Self-contained Japanese morphological analyzer.