---
title: "Fuzzing: an introduction, plus updates coming to 1.19."
publication: "Go Weekly"
issue: 417
published_at: "2022-06-24"
canonical_url: "https://golangweekly.com/issues/417"
---

Plus Tim Bray breaks out the profiler. |        

#​417 — June 24, 2022 

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

The _Go Weekly_ Newsletter 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/bvf1kpkiuqgbfvlyfkws.jpg)](https://www.youtube.com/watch?v=-hc6LGA46Bg)  

▶[An Introduction to Fuzzing in Go](https://www.youtube.com/watch?v=-hc6LGA46Bg) — 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](https://go.dev/doc/tutorial/fuzz)). Elsewhere, Khaled Yakdan writes about **[improvements being made to fuzzing for Go 1.19](https://www.code-intelligence.com/blog/fuzzing-golang-1.19)** – a lot of work has gone into this. 

Nooras Saba (Google)   

[Making Code Faster](https://www.tbray.org/ongoing/When/202x/2022/06/10/Quamina-Optimizing) — 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   [![\](https://copm.s3.amazonaws.com/d66ea58f.png)](https://www.ardanlabs.com/careers/mid-level-and-senior-backend-engineer.html/?utm_source=Cooperpress%20PrimaryV4) 

[Gophers - Opportunity is Knocking](https://www.ardanlabs.com/careers/mid-level-and-senior-backend-engineer.html/?utm_source=Cooperpress%20PrimaryV4) — 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](https://eng.uber.com/how-we-halved-go-monorepo-ci-build-time/) — Uber rocks a [monorepo setup](https://eng.uber.com/go-monorepo-bazel/) 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](https://mdaverde.com/posts/golang-local-docs/) — 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](https://github.com/golang/go/issues/49212), Milan figured out how to do it with `pkgsite`. 

Milan X   

**Quicker bits:** 

- Two weeks ago we featured [an article about data races](https://eng.uber.com/data-race-patterns-in-go/) in Go and the authors have turned their research into [📄 an academic paper](https://dl.acm.org/doi/pdf/10.1145/3519939.3523720) (PDF) covering the same ground but with plentiful references and formatting that makes you feel smarter just by staring at it.
- A [surprising result while transpiling C to Go](https://blog.nobugware.com/post/2022/surprising-result-while-transpiling-go/).   

[A Faster Development Experience with Vite, Hugo and Preact](https://medium.com/gumgum-tech/faster-development-experience-with-vite-hugo-and-preact-c08cbcfce5fb) — [Hugo](https://gohugo.io/) is a fantastic Go-powered static site generator but sometimes you might need to wander onto the JavaScript path a little.. Dawid found [Vite](https://vitejs.dev/) to help a lot with getting everything [🎵 working together](https://www.youtube.com/watch?v=SNjVpThEEVk). 

Dawid Prośba     

Jobs  

[Senior Backend Go Engineer - Remote (US)](https://grnh.se/77fa98c14us) — 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](https://jobs.lever.co/teleport/8a3ba43b-ae42-4225-aaf0-7f54713202d6) — 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)](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   

[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    

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/sldqgkiftqi0epo4btc8.jpg)](https://github.com/sachaos/viddy)  

[Viddy: A Modern Go Alternative to `watch`](https://github.com/sachaos/viddy) — 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](https://github.com/unrolled/render) — 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](https://www.wolfssl.com/wolfssl-golang-wrapper/) — [wolfSSL](https://www.wolfssl.com/) is a lightweight, portable SSL/TLS library targeting IoT and embedded environments. The repo includes [examples](https://github.com/wolfSSL/go-wolfssl/tree/master/examples) of creating a server or client with it. 

wolfSSL   

[Keep Up with the Latest in Startups, Tech, & Programming in Just 5 Min](https://tldr.tech/signup?utm_source=go0624) 

TLDR Newsletter sponsor   

[Cobra 1.5.0: A 'Commander' for Modern Go CLI Interactions](https://github.com/spf13/cobra/releases/tag/v1.5.0) — 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](https://github.com/soypat/gopherlings) — 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](https://github.com/skx/critical/) — A learning exercise [explained here.](https://blog.steve.fi/writing_a_simple_tcl_interpreter_in_golang.html) 

Steve Kemp   

**QUICK RELEASES:** 

[Benthos 4.3](https://github.com/benthosdev/benthos) – Fancy stream processing made simple.
 [PanicParse 2.3](https://github.com/maruel/panicparse) – Parse panic stack traces.
 [phonenumbers 1.1](https://github.com/nyaruka/phonenumbers) – Parse and validate phone numbers.
 [tproxy 0.3](https://github.com/kevwan/tproxy) – CLI tool to proxy and analyze TCP connections.
 [Clash 1.11](https://github.com/Dreamacro/clash) – A rule-based tunnel built in Go.
 [Hertz 0.1](https://github.com/cloudwego/hertz) – Go framework for HTTP microservices.
 [Kagome 2.8](https://github.com/ikawaha/kagome) – Self-contained Japanese morphological analyzer.         

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

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

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