---
title: "Becoming the engineering manager of the Go team"
publication: "Go Weekly"
issue: 497
published_at: "2024-02-27"
canonical_url: "https://golangweekly.com/issues/497"
---

Plus thinking about enums, colors, email testing, LLMs, and even jQuery.. |        

#​497 — February 27, 2024 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/497)  

Together with [![Ardan Labs\](https://res.cloudinary.com/cpress/image/upload/e_make_transparent/co_white,e_outline:7,q_auto/uf5bdgdgdbgcbdrzi6r7.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress)  

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/l7teswvwc8wjknycbimx.jpg)](https://go.dev/blog/generic-slice-functions)  

[Robust Generic Functions on Slices](https://go.dev/blog/generic-slice-functions) — The core library offers some great generic functions for slices, and understanding how each functions (modifies the slice, creates a new slice, etc.) is crucial to avoiding errors, especially with some of the changes in 1.22. Some good further reading is also suggested. 

Valentin Deleplace (The Go Blog)   

[Go 'Enums' Suck](https://www.zarl.dev/articles/enums) — While the title feels click-baity, and Go doesn’t _have_ true enums, the post raises some interesting points around the use cases for enums, how the workarounds are more annoying than they could be, and offers a new approach to make things a little better. 

Steven McCutcheon   [![\](https://copm.s3.amazonaws.com/1ea6f5f1.png)](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) 

[Go! Unlock Your Tech Potential with Ardan Labs Consulting](https://www.ardanlabs.com/consulting/?utm_source=cooperpress) — Struggling with skill gaps, development speed or complex tech challenges? Ardan Labs specializes in Go, Rust, Docker and K8s to accelerate your software development, optimize architecture, and manage tech debt. Let us supercharge your team! 

Ardan Labs Consulting sponsor   

[Solving the One Billion Rows Challenge in Go](https://www.bytesizego.com/blog/one-billion-row-challenge-go) — The so-called [_One Billion Rows challenge_](https://github.com/gunnarmorling/1brc) aims to see how fast Java can aggregate (min, mean, and max) 1,000,000,000 values from a text file. Here, Shraddha tries it in Go, walking through each step going from a time of over 6 minutes to just 14 seconds. 

Shraddha Agrawal   

_QUICK BITS:_ 

- Sameer Ajmani, the engineering director of the Go team at Google, has written about [his transition into management](https://ajmani.net/2024/02/22/go-2016-2019/) as someone who never wanted to be a manager. He's also written about [Go's growth between 2012-2016.](https://www.linkedin.com/pulse/gos-early-growth-2012-2016-sameer-ajmani-oxtjc/)
- The latest version of the official Go language server – [gopls 0.15.0](https://github.com/golang/tools/releases/tag/gopls%2Fv0.15.0) – has landed, with support for "zero config" gopls workspaces and improved initial behavior in more complex scenarios. It's the final release that works with Go 1.18, too.
- [Git 2.44](https://github.blog/2024-02-23-highlights-from-git-2-44/) is the first new Git release of 2024 and Taylor Blau takes a look at the enhancements.   

[TinyGo 0.31.0: Now with Go 1.22 Support](https://github.com/tinygo-org/tinygo/releases/tag/v0.31.0) — A small step for a version number, a giant leap for small Go-kind, as the _“Go compiler for small places”_ gains Go 1.22 support, a macOS arm64 native binary release build, Nim flake support, and upgrades to LLVM 17. 

Ron Evans   

▶[A Practical Look at Building REST APIs in Go 1.22](https://www.youtube.com/watch?v=tgLvIghsJFo) — Building a quick REST API in just several minutes using the new Go 1.22 approach. 

TutorialEdge   

[Add Fully-Featured Auth to Your Go App with Two Lines of Code](https://fusionauth.io?utm_medium=newsletter&utm_source=gonewsletter&utm_campaign=feb24_newsletter) — Easy, secure, and affordable: pick three. FusionAuth is auth built for devs, by devs. 

FusionAuth sponsor   

[Faster Blogging with Glee: Why a Tool Shifted from Python to Go](https://journal.hexmos.com/developer-markdown-blog-hexmos-glee/) — [Glee](https://github.com/HexmosTech/glee/) is a Python _Go_-based tool for turning Markdown files into posts for [Ghost-powered](https://ghost.org/) blogs. This post briefly touches on the (rather unsurprising) reasons they rewrote the formerly Python-based tool into Go. 

Lince Mathew   

🎨 [Adding Color to Terminal Output in Go](https://www.dolthub.com/blog/2024-02-23-colors-in-golang/) — Shows first without any dependencies at all, but then how [fatih/color](https://github.com/fatih/color) can make it tidier. 

Stephanie You  

🛠 Code & Tools  

[gemini-cli: Access Gemini Models from the Command Line](https://eli.thegreenplace.net/2024/gemini-cli-access-gemini-models-from-the-command-line/) — Eli shows of a new Go-powered CLI tool he’s built for doing data analysis work with Google’s Gemini models. 

Eli Bendersky   

[goquery: jQuery-esque HTML/DOM Manipulation Methods](https://github.com/PuerkitoBio/goquery) — A jQuery-a-like approach for working with HTML from Go. Much like jQuery itself, it’s been around for many years, but the latest release ([v1.9](https://forum.golangbridge.org/t/excelize-2-8-1-released-powerful-open-source-library-for-spreadsheet-excel-document/34582)) adds a generic `Map` function and requires Go 1.18+. 

Martin Angers and Contributors   

[Podinfo: A Go Microservice Template for Kubernetes](https://github.com/stefanprodan/podinfo) — A tiny Go-powered app to showcase best practices when running microservices within Kubernetes, including health checks, graceful shutdown, structured logging, ant building multi-arch container images. 

Stefan Prodan      

📰 Classifieds   

🪝 Reliably receive, authenticate, transform, filter, route, & deliver webhooks at scale with Hookdeck. [Try the receiving webhooks quickstart](https://hookdeck.com/docs/receive-webhooks?lang=go&ref=goweekly-497). 

--- 

📧 [Forward Email](https://forwardemail.net/en) is an email forwarding service able to boast being entirely open source. They use quantum-safe, individually encrypted SQLite mailboxes too.      

[Risor 1.4: Embeddable Scripting for Go Apps](https://risor.io/blog/release_1_4) — Risor is a fast, lightweight pure-Go scripting language targeting devops and cloud integration use cases and that interoperates with existing Go libraries ([learn more here](https://risor.io/)). v1.4 adds support for the `go` and `defer` keywords, channels, HTTP servers, and more. 

Curtis Myzie   

[Mailpit 1.14: Email and SMTP Testing Tool](https://github.com/axllent/mailpit) — Built in Go, Mailpit is a general email testing tool and API for all developers. You can use it to view emails “sent” through its mock SMTP server, store emails, and even relay them on. v1.14 introduces an optional [POP3 server](https://mailpit.axllent.org/docs/configuration/pop3/) if you want to fetch the emails into a client. 

Ralph Slooten   

- [gologin 2.5](https://github.com/dghubble/gologin) – Chainable login `http.Handler`s for numerous auth providers.
- [NutsDB 1.0.4](https://github.com/nutsdb/nutsdb) – Embeddable, persistent key/value store in pure Go.
- [Excelize 2.8.1](https://forum.golangbridge.org/t/excelize-2-8-1-released-powerful-open-source-library-for-spreadsheet-excel-document/34582) – Library for working with Excel spreadsheets.
- [Sarama 1.43](https://github.com/IBM/sarama/releases/tag/v1.43.0) – Go library for Apache Kafka.
- [zap 1.27](https://github.com/uber-go/zap) – Fast, structured, leveled logging.
- [Air 1.51](https://github.com/cosmtrek/air) – Live reload for Go apps.         

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

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

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