#263 — May 23, 2019

Read on the Web

Golang Weekly

Opinion Alert:  'Go Is Google's Language, Not Ours' — Every language goes through periods where contrasts between the leadership (de facto or otherwise) and the community get analyzed. This opinion piece addresses how much Google and the Go core team listen to the community and who ‘owns’ the language. It inspired an extensive discussion on Hacker News.

Chris Siebenmann

Understanding Real-World Concurrency Bugs in Go, Analyzed — An analysis of a paper on real world concurrency issues (we linked to the paper in issue 251) and how it’s still easy to run into concurrency bugs, even in a language like Go.

The Morning Paper

Do You Need Help Migrating / Building an Application? — When it comes to building, maintaining and deploying production level software in Go, there are few companies that have the level of expertise and experience Ardan Labs has. Let’s talk to see if we can augment your development team or help you build a product.

Ardan Labs sponsor

go-i18n 2.0: Translate Your Go Program Into Multiple Languages — A package and tool for translating Go programs into different (natural) languages. v2.0 just came out.

Nick Snyder

Why Go Fuzzing?“Why we need to make fuzzing a standard practice in Go development backed by the Go toolchain.”

Dmitry Vyukov and Romain Baugue

“[M]y napkin math w/ git log + ~glassdoor salaries puts Google-paid accumulated salaries alone at least $45 million since 2009 [for people working on the Go project].”

On Twitter, Brad Fitzpatrick responded to a suggestion that the development of Go didn't cost millions of dollars when it easily did.

💻 Jobs

Product-Focused & Driven Frontend Engineers in Stockholm — Join our 30-person team of A-players, solve problems at global scale & help us become the most trustworthy online health company.

Diet Doctor Sweden AB

Find a Go Job on Vettery — Vettery specializes in tech roles and is completely free for job seekers.


📘 Articles & Tutorials

Understanding Boolean Logic in Go — Math is fun…damental! Also, there are truth tables in this post.


Go Has No Types for Types — The designers of Go opted not to make types visible as explicit entities in their own right. There are other ways to access information about types, however, as Chris notes here.

Chris Siebenmann

Testing Go Services using Interfaces — Interfaces and generated mocks can make it easier to test your code.

Sebastian Coetzee (Deliveroo)

Get the Fastest App Deployments. Get Started Free — Learn the most effective way to build better apps faster.

Buddy sponsor

Reverse Geocoding NEO 6M GPS Positions with Go and a Serial UART Connection — This is firmly in the “almost none of you need to do this, but it’s just cool!” family of links.

Nic Raboy

▶  Discussing Go Modules and the Athens Project — The Go Time podcast panelists discuss Go modules and the Athens project, a proxy server for Go module downloads.

Go Time

🔧 Tools & Code

PegoMock: A Powerful Yet Simple Mocking Framework — pegomock brings a dynamic-feeling (and, dare we say, Ruby-esque) DSL to mocking. You can do stubbing and argument matching, as well.

Peter Götz

Limiter: Dead Simple Rate Limiting Middleware — Use as middleware with http, Gin, Beego, and Chi. Uses Redis (optionally).


Automate Your Code Reviews, Directly from Your Current Workflow

Codacy sponsor

Minify: Go Minifiers for Web Formats (CSS, HTML, JSON, etc.)

Taco de Wolff

uint128: A Package for 128-bit Wide Integers — Just in case you need to work with numbers up to around 39 digits long(!) Possibly useful for measuring node_modules folder sizes.

Luke Champine

go-jira 1.0: A Go Client Library for Atlassian JIRAJIRA is a popular agile software development management tool.

Andy Grunwald

ws 1.0.1: Tiny WebSocket Library for Go

Sergey Kamardin

gRPCurl: Like curl, But for gRPC

Engineering at FullStory