---
title: "It's Go developer survey time"
publication: "Go Weekly"
issue: 385
published_at: "2021-10-29"
canonical_url: "https://golangweekly.com/issues/385"
---

Plus expectations for generics, using Go on the newest Raspberry Pi, and why a developer turns syntax highlighting off when designing a Go API. |        

#​385 — October 29, 2021 

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

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/yeug53t3ovhgc02r89k3.jpg)](https://go.dev/blog/survey2021)  

[Announcing the 2021 Go Developer Survey](https://go.dev/blog/survey2021) — Our favorite 10-minute survey is back this year with some new questions so add your thoughts and help shape the language – your responses are hugely appreciated by the Go team but also by us as they make for some interesting stories :-) [Direct survey link](https://google.qualtrics.com/jfe/form/SV_0BwHwKSaeE9Cx2S). 

Alice Merrick (Go)   

[A Comprehensive Guide to `go generate`](https://eli.thegreenplace.net/2021/a-comprehensive-guide-to-go-generate/) — Eli covers the basics of Go generators, points out several uses of them in Go, and covers command and advanced features of code generation. 

Eli Bendersky   [![\](https://copm.s3.amazonaws.com/6f7744ff.png)](https://about.sourcegraph.com/batch-changes/?utm_medium=text&utm_source=go-weekly&utm_campaign=batch-changes&content=primary) 

[Automate Large-Scale Code Changes with Batch Changes](https://about.sourcegraph.com/batch-changes/?utm_medium=text&utm_source=go-weekly&utm_campaign=batch-changes&content=primary) — Search, define, execute, and track code changes like never before. With Batch Changes, you can automatically track changeset lifecycle status from creation to merge. See how developers are using Batch Changes from configuration, refactoring and more. 

Sourcegraph sponsor   

[Expectations for Generics in Go 1.18](https://groups.google.com/g/golang-dev/c/iuB22_G9Kbo/m/7B1jd1I3BQAJ?pli=1) — Russ explains how the maps and slices generic code will be in the experimental package to start, along with appropriate warnings around using generics in production too soon. 

Russ Cox (golang-dev)    

"The most important thing everyone here can do is write some generic code and let us know if you find bugs, unclear compiler errors, and so on." 

___
Russ Cox     

**QUICK BITS:** 

- Learn why Jaana Dogan [turns off syntax highlighting](https://twitter.com/rakyll/status/1453818247501934603) when designing an API in Go.
- [golang.dk](https://www.golang.dk/) is Markus Wüstenberg's new Go training/online course site.
- Bill Kennedy, perhaps best known for his Go workshops, is [offering personal help and advice](https://twitter.com/goinggodotnet/status/1451637617368383493) to anyone new to Go who wants to figure out how to build production level services with it.   

[Go 1.18 Will Embed Source Version Information Into Binaries](https://utcc.utoronto.ca/~cks/space/blog/programming/GoVersionOfYourSource) — The addition adds information about the state of the source from which the binary was built, bringing it in line with module information already stored there. 

Chris Siebenmann   

[First Impressions with the Raspberry Pi Zero 2 W](https://blog.alexellis.io/raspberry-pi-zero-2/) — Alex, the creator of [OpenFaaS](https://www.openfaas.com/), plays with the latest Raspberry Pi device – a tiny $15 four core 64 bit board. He has a try at using Go on it, including compiling programs, and the performance is certainly hugely improved over previous boards. 

Alex Ellis   

[What Could Go Wrong with a Mutex, or the Go Profiling Story](https://evilmartians.com/chronicles/what-could-go-wrong-with-a-mutex-or-the-go-profiling-story) — How to hunt down issues in production, without tools like pprof, just using stack dumps and open-source tools. 

Vladimir Dementyev (Evil Martians)   

[Sorting a Dependency Graph in Go](https://kendru.github.io/go/2021/10/26/sorting-a-dependency-graph-in-go/) — Directed Acyclic Graphs (DAGs) have a ton of applications so understanding them can be foundational in your ability to solve higher-order problems (or to talk about them in an interview…) 

Andrew Meredith   

[Organizing Postgres Queries using Templates in Go](https://www.migops.com/blog/2021/10/22/organizing-postgresql-codebase-using-templates-in-golang/) — Here, they store SQL queries in template files that are read in by the binary, separating the SQL and Go source. This has several pros and cons, and probably generates strong opinions. 

Michael Suman      

Jobs  

[Senior Software Engineer, Platform | Remote within US Timezones | Full-Time](https://grnh.se/caf836d01us) — Build the platform our teams use to ship innovative telehealth and workflow tools for over 1.8 million clinicians. 
Doximity   

[Senior Golang Engineer (Cloud, Microservices, REST APIs) (Romania Remote)](https://crowdstrike.wd5.myworkdayjobs.com/en-US/crowdstrikecareers/job/Romania---Remote/Sr-Software-Engineer--Discover---Romania-or-Germany--Remote-_R5191?_ga=2.254546824.1415722864.1632139815-699343068.1543847975) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks. 
Crowdstrike   

[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  

[Blunder: A Chess Engine Written in Go](https://github.com/algerbrex/blunder) — The name certainly reflects how I feel about most of my moves when I play chess :-) One of the nicest things about this project is the focus on code readability. 

Christian Dean   

[ksuid: K-Sortable Globally Unique IDs (KSUIDs)](https://github.com/segmentio/ksuid) — A kind of globally unique identifier similar to a RFC 4122 UUID, built to be “naturally” sorted by generation timestamp without any special type-aware logic. 

Segment   

[An Engineering Leader’s Guide to OpenTelemetry](https://go.lightstep.com/register-engineering-leaders-guide-to-opentelemetry-co21?utm_campaign=golang&utm_source=cooper&utm_medium=Email) 

Lightstep sponsor   

[Gofire: A Command Line Interface Generator Tool](https://github.com/1pkg/gofire) — Inspired by a similar tool from the Python world, Gofire takes your functions and provides the ‘plumbing’ needed in front of them to create a CLI app. 

Kostiantyn Masliuk   

[Micro 3.6.0: A Platform for Cloud Native Microservice Development](https://github.com/micro/micro) — A popular way to build scalable microservices in Go. 

Micro   

[govalidator: Package of Validators and Sanitizers for Strings, Numerics, Slices and Structs](https://github.com/asaskevich/govalidator) 
Alex Saskevich     

🕰 **ICYMI** _(Some older stuff that's worth checking out...)_ 

- A thorough, and perhaps even classic, [explanation of creating data pipelines](https://go.dev/blog/pipelines), managing multiple sources/producers, and making sure to close your channels the right way.
- Marko Milojevic explores [how to write your own Go module proxy](https://t.co/dipaQIhwRG?amp=1) — and it's easier than you might guess.
- [Here's an introduction to Go Kubernetes' Informers](http://macias.info/entry/202109081800_k8s_informers.md), which allow you to index and retrieve a mapping of your k8s resources.         

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
