#227 — September 6, 2018

Read on the Web

Golang Weekly

▶  Building a Production-Ready Go Service in 30 Minutes — A well-recorded live coding session from GopherCon UK where a production-ready service is built from scratch and deployed with Docker.

Florin Patan

Responses to the Go 2.0 Generics Draft Proposal — An incredibly comprehensive look at the generics draft proposal (featured last week) from a Googler who is in support of the idea. On the flip side, Jason Moiron is against the idea but accepts it'll probably happen anyway and rounds up the pros, cons and considerations in this interesting writeup. Interesting times for Go indeed.

Emily Maier and Jason Moiron

Try Powerful CI/CD Pipelines in Semaphore 2.0 — Semaphore 2.0 makes it extremely easy to set up and visualize continuous delivery for your whole organization. Model your custom workflow with powerful pipelines, from commit to deploy. Request access and be one of the first to try it.

Semaphore sponsor

A Gentle Introduction to Go Modules“Modules give more control to you, the programmer, by enabling more configuration options. This control comes with complexity and responsibility; seen in Minimal Version Selection and Semantic Version Importing”

Ukiah Smith

Implementing a Network Protocol in Go — A live blog of a GopherCon 2018 session by Matt Layher. It definitely reads like a stream of notes, so you may have to look up some terms, but there’s a lot of info here.

Beyang Liu

More Talk Liveblogs from GopherCon 2018 — A lot of the talks from last week’s GopherCon were ‘live blogged’ which will give you a good feel for what was covered.


Maybe Adding Generics to Go IS About Syntax After All“The great irony is, after years of my bloviation that “adding generics to Go has nothing to do with the syntax”, it turns out that, actually, yes, the syntax is crucial.” And another interesting take.

Dave Cheney

💻 Jobs

Sr. Software Developer at CrowdStrike (Multiple Locations) — CrowdStrike stops hackers using a massive micro services architecture written in Golang.


Find A Go Job Through Vettery — Create a profile to connect with inspiring companies seeking Go devs.


📘 Tutorials

Building a Calculator with Go WebAssemply — A nice tutorial that starts very simply and builds out a small calculator using Go 1.11.

Elliot Forbes

How to Use the Official MongoDB Go Driver — Including using Go 1.11’s module features and performing CRUD-style operations.

Wembley G. Leach, Jr.

Need Help in Go? Training, Consulting, Development

Ardan Labs sponsor

The Pain That Minimal Version Selection Solves“When installing or updating dependencies, minimal version selection always selects the minimal (oldest) module version that satisfies the overall requirements of a build.”

Nick Snyder

One Attendee's Recap of GopherCon 2018 — A solid look at one person’s experience of the various talks attended.

Frew Schmidt

'How We Massively Reduced Our AWS Lambda Bill With Go'

Hairless Yaks, Inc.

Cloudflare's Journey Porting Its Software to ARM64 — Which includes its Go code.

Alexander Huynh

Accessing Data in Go — Three iterations that show an evolving approach to accessing data cleanly when writing web applications. This is a useful post.

Piotr Husiatyński

🔧 Tools & Code

bytebuf: A bytes.Buffer Replacement for Perf-Sensitive Code — A small change that results in a non-trivial performance gain. Unfortunately, it can’t be merged into the standard library as-is without breaking changes.

Intel Go Team

Monitoring and Distributed Tracing for Go Apps — Get full-stack monitoring and alerting for Go apps and 250+ infrastructure integrations. Try Datadog free.

Datadog sponsor

Go Report Card: Project Code Quality Report Cards — Enter a URL to a Go repo and get a report card that checks format, linting, and other issues.

Go Report Card

gval: Expression Evaluation in Go — Evaluate logical and arithmetical expressions with parameters, parse expressions once and then reuse them, or write your own custom functions.

Paessler AG

SciPipe: A Workflow Library for Agile Development of Complex and Dynamic Bioinformatics Pipelines — Initially created for problems in bioinformatics but is suitable for any problem involving pipelines of CLI apps.


QLoo: A GraphQL Server Built on Top of Gloo and Envoy — Dubbing itself as a “codeless” GraphQL Engine, QLoo makes it very easy to discover serverless functions on many platforms and create GraphQL schemas to front those functions.


Requests: An HTTP Library for Go Similar to Python's 'Requests'


Catch Go Errors Before Users Do

ROLLBAR sponsor

Noti: Monitor a Process and Trigger a Notification When Complete — A neat little tool built in Go.

Jaime Piña