A meetup group to discuss the Go Programming Language.

Related tags
Unknown author on

Godebug and the Wonders of Code Generation

Debuggers are great, but none of the existing Go debuggers worked in Jeremy Schlatter's environment. And so he wrote his own.

godebug doesn't inspect binary files or depend on low-level OS operations. Instead, it modifies your program's source code and runs it as a normal executable.

This talk covers:
• An outline of godebug
• Using the Go standard libraries to generate code
• How to trace individual goroutines as they execute a program
• What goes wrong when you generate functions that wrap existing code
• Inserting code inside else-if/switch initializers, the easy way and the hard way

Slides available here
Project link: https://github.com/mailgun/godebug

This video was recorded at the GoSF meetup at Thumbtack in SF.

Small 39b7a68b6cbc43ec7683ad0bcc4c9570 Paul Dix on

Refactoring InfluxDB: From Go to Go

Over the past 4 months, Paul Dix and his team completely rewrote InfluxDB: from Go to Go. In this talk, he gives a quick overview of InfluxDB and shows how it's useful for metrics, analytics, and sensor data.

Paul also dives into the history of the project and why they chose to rewrite their previous Go implementation into the implementation they have now. He shows pain points with their legacy codebase and gives examples of how rewriting the code from scratch gave them the ability to do things they couldn't have done otherwise.

Paul closes out with some comparisons on usability, readability, and performance of the previous version against the new rewritten version.


This video was recorded at the GoSF meetup at Chain in SF.

Unknown author on

Getting Started with GopherJS

GopherJS is a compiler from Go to JavaScript. By now, it supports "nearly everything," including goroutines. It provides an opportunity to write front-end code in Go which will run in all browsers, enabling you to share data structures, code, and libraries from your back-end Go code, with benefits of having gofmt/goimports, godoc, static type checking, and helpful compilation error messages.

Dmitri Shuralyov, software engineer at Triggit shares his experiences, tips, and tricks using GopherJS and demonstrates what is possible today and how GopherJS might be used for production-quality apps now or in the future.

This talk covers getting started and introduction to basics; accessing the DOM using JavaScript calls as well as via Go bindings; using other web APIs such as XHR, WebSockets, WebGL; and using popular pure Go libraries for front-end processing. Dmitri also discusses the advantages and disadvantages, performance, size of generated code, general observations, and status of its use in production apps.

This video was recorded at the GoSF meetup at Chain in SF.

Small 419909 Tv on

Go-nuts and Bolts: An Introduction to BoltDB

BoltDB is a pure Go key-value store  inspired by Howard Chu's and the LMDB project. The goal of the project is to provide a simple, fast, and reliable database for projects that don't require a full database server such as Postgres or MySQL.

In this talk, Tommi Virtanen explains its architecture, use cases and API. From this talk, you should learn when Bolt is a good fit for your application and how to use it.

Slides here.

This video was recorded at the GoSF meetup at Chain in SF.

Small 21367 Robert Winslow on

Flatbuffers for Golang: Fast and Fun Serialization

Robert Winslow talks about FlatBuffers, an efficient cross platform serialization library for C++, Java, C#, and Go. It was created at Google specifically for game development and other performance-critical applications. It provides access to serialized data without parsing/unpacking, while also still supporting data structure evolution (forwards/backwards compatibility).


Winslow is a consulting CTO to early stage startups. "I like math, long walks on the beach, and large markets."

This video was recorded at the GoSF meetup at Galvanize in SF.

Unknown author on

Scaling a Go Codebase

Ted Kornish (engineer) and Ryan Atallah (co-founder) from Arktos talk about the considerations in creating a Go codebase that's built to last. Specifically, how to keep your codebase type safe and maintainable. It may take more consideration from the start, but infrastructure is an investment in the future that will let you spend less time debugging and more time developing features. Ted and Ryan walk through how to invest in your infrastructure by making your Go codebase extendable, DRY, type safe, testable and with minimal code bottlenecks.

Slides available here.

This talk was given at the GoSF meetup at New Relic.

Small ben sigelman Ben Sigelman on

Distributed Systems in Go: The Good, The Bad, and The Otherwise

Building large-scale distributed systems is a challenge in any language: what about Go makes distributed system-building easier, what makes it harder, and what won't work at all? Former Google software engineer Ben Sigelman answers these questions in his talk about creating distributed systems in Go. He also addresses the fundamentals of healthy distributed systems and the joys and pitfalls of building them in Go.


View Ben's slides here.

This talk was given at the GoSF meetup at Pivotal.

Small 51323 Patrick Reilly on

Building Applications with Containers, Kubernetes, and Mesos

Patrick Reilly (Technology Strategist at Mesosphere, Inc.) gives an in-depth talk on Kubernetes and discuss how it can serve as the foundation for high-level tools, automation systems, and API layers.

Kubernetes is an open source implementation of container cluster management across multiple hosts. It uses Docker to package, instantiate, and run containerized applications and provides a basic mechanisms for deployment, maintenance, and scaling of applications.


This talk was given at the GoSF meetup at Pivotal.

Small 600 405704322 Kyle Dinh on

AngularJS + Go : A Lean Combination

Full-stack developer Kyle Dinh talks about how to use AngularJS + Go. He explains the tools he uses and how he organizes his projects: Angular to build the front end and Go as a RESTful API server.

In this talk, Kyle walks through how he uses:

  • Vagrant to build an Ubuntu dev instance

  • Grunt/NodeJS to build the Angular front end

  • Grunt to admin the Postgres DB

  • Grunt to run Go unit tests and Selenium tests


This talk was recorded at the GoSF meetup at Thumbtack.

Code from the talk here

Join Us