Go Talk recordings from meetups and conferences during Q4 2017

Go Talks Q4 2017This is my first post covering Go events on MeetupFeed: a collection of 37 Go talks recorded at meetups and conferences such as GothamGo, DotGo and GolangSyd (with Rob Pike!). This issue includes everything I could find from the last quarter of 2017. Special thanks to the speakers for helping me out with descriptions!

If you found it interesting, consider subscribing to the MeetupFeed monthly newsletter: the April issue will come with the latest Go talks from Q1, April’s talks will be in the May issue and so on. One email per month, 1-click unsubscribe (Mailchimp), only categorized dev talks and nothing else.

Support us with a retweet in case you liked this post.

GothamGo (New York, NY)

The Legacy of Go, Part 2 (20:36)

Carmen Andoh (Travis CI)

Carmen Andoh lives in New York and is an Infrastructure Engineer on the Build Infrastructure team at Travis CI. She is active in the NYC Go community, is an organizer of both the Go Language NYC and the WomenWhoGo NYC meetups, and is a member of Golang’s New Developer experience Working Group.

From Frontend Engineer to Go Core team member (28:12)

Andrew Bonventre
I cut my teeth early on in my career doing frontend engineering, and I’ve been gradually moving down the stack ever since. In July 2017 I joined the Go Core team at Google. I will share my experiences and tips for pushing out of your comfort zone and overcoming impostor syndrome along the way.

Andrew Bonventre is a senior engineer on the Go team at Google. He is the creator of Google Forms and led the recent UI overhaul of Gerrit, the code review system used by the majority of open source projects at Google (including Go).

Implicitly Impacting the Cloud with Go (33:51)

Kris Nova

In this talk we look at how Go has forever changed the cloud for better and for worse. We draw on real world examples and meaningful data sets. We look at concrete examples in OSS that reflect the constraints and features of Go, and explore how it has implicitly shaped the cloud and tech forever.

Kris Nova lives and breathes open source. She is transgender, and is transparent about all things in her life. She believes in advocating for the best interest of the software, and keeping the design process open and honest. She is a backend infrastructure engineer, with roots in Linux, and C. She has a deep technical background in the Go programming language, and has authored many succesful tools in Go. She is a Kubernetes maintainer, and the creator of kubicorn, a successful Kubernetes infrastructure management tool. She organizes a special interest group in Kubernetes, and is a leader in the community. Kris understands the grievances with running cloud native infrastructure via a distributed cloud native application, and is authoring an O’Reilly book on the topic called Cloud Native Infrastructure.

A Go implementation of the Skylark Configuration Language (26:03)

Alan Donovan (Google)

Skylark is a dialect of Python originally developed for the Bazel build system. It has several features that make it attractive for embedding within larger applications: it has the simplicity of Python and the familiarity of imperative programming, yet it supports highly parallel execution with no possibility of data races. In this talk, I will announce the launch of a new, high-quality Go implementation of Skylark, present the main features of the language and its implementation, and show you how you can use it in your own projects.

Alan Donovan is a Staff Engineer in Google’s infrastructure division, specializing in software development tools. Since 2012, he has been working on the Go team, designing libraries and tools for static analysis. He is the author of the oracle, godoc -analysis, eg, and gorename tools. Alan is also a co-author of the Go Programming Language book.

Closures are the Generics of Go (27:21)

Jon Bodner (Capital One)

Generics are probably the most contentious topic in Go community. Every other modern typed language has them. The recently announced Go 2.0 will probably adopt them. In the meantime, you can get most of the functionality of generics today by taking advantage of a feature that Go does have: closures.

Jon Bodner is part of the Technology Fellows Program at Capital One, currently working on a fork of the LGTM project that will be open sourced soon. Jon’s team is helping to transform Capital One through introduction and integration of new technologies, working to shorten release cycles, and generally pushing forward an “open source first” culture. Jon is a software engineer, lead developer, and architect and enjoys presenting and discussing open source, technology trends, and the future of software engineering. Over the past 20 years, Jon has worked in just about every corner of the software industry including on-line commerce, education, finance, government, healthcare, and internet infrastructure.

Learn more about Closures on Jon’s Medium: https://medium.com/capital-one-developers/closures-are-the-generics-for-go-cb32021fb5b5

A Python and a Gopher Walk into a Bar – Embedding Python in Go

Massimiliano Pippi (Datadog)

Success stories about rewriting Python applications in Go are not big news anymore. The pros and cons are well known, best practices are in place, and the standard library is there to help. But what if you want to keep some of your Python code? When we chose to port the Datadog Agent to Go, we needed to maintain support for our existing library of plugins written in Python. During the talk we will share lessons learned from our experiences with cgo, the GIL and the quest for performance as we bridge multiple languages in a single application.

Massimiliano Pippi is a software developer for over 10 years, more than half spent working on scientific visualization and backend software for a private company, using C++ and Qt technologies. Then a lot of Python, Django and web related applications. Open source advocate and active contributor, documentation fanatic, speaker at conferences (for the ❤ of sharing). He wrote a book once. Currently at Datadog, where allowed to play with high scalable systems, a wide number of different technologies, open source stuff, Python and Golang.

The State of the Go Nation

Steve Francia (Google)

Steve Francia leads product, strategy and devrel for the Go Language Team at Google.

Steve is the creator of Hugo, Cobra, spf13-vim, and is an author and frequent speaker. Prior to Google, Steve served as the Chief Operator of Docker, and the Chief Developer Advocate of MongoDB. Steve loves creating software and is thrilled to be able to work on it full time and then some. He is a very active member of the Go community and has been an organizer of GopherCon and GothamGo.

Calling Rust from Go, without cgo

Filippo Valsorda

Calling Rust from Go would let us replace unreadable assembly for tasks like crypto. But cgo is too slow, and we’ll see why. It has to do with goroutine stacks, panics and the GC. Instead, with knowledge of the Go calling convention and build system, we can use assembly to call Rust directly. Filippo’s accompanying blog post: https://blog.filippo.io/rustgo/

Filippo Valsorda works on cryptography and systems engineering. He’s been the main developer of the pure-Go Cloudflare DNS server, and designed its DNSSEC implementation. Then he deployed the crypto/tls and net/http based TLS 1.3 reverse proxy for the Cloudflare edge. He often writes about Go on his blog, talks about security and programming, and builds Go tools like gvt, hellogopher, the Heartbleed test and the whoami SSH server.

Performance Optimisation: How Do I Go About It?

Kat Zien (Brightpearl)

Every developer should be confident that their code is efficient and safe to run in production. But it can be hard to get started. What tools to use? What do the graphs mean? What to look at first? Let’s answer those questions by analysing a simple app using Go tools and some open source projects.

Kat Zien writes Go, Ruby, bash and PHP at Brightpearl. Working remotely from Bristol, UK or anywhere with wifi. Her main interests include automating #allthethings, sorting out legacy code and making things simpler and faster. She’s co-organising and giving talks at Golang Bristol++ and PHPSW. Kat loves travelling and keeping active, appreciates good coffee and is a big Lego fan. She will be cycling from Copenhagen to Berlin in September to raise money for Room To Read.

Making Code Write Itself

Bouke van der Bijl (Shopify)

Go’s built-in templating system is powerful and easy to use, but has the problem of interpreting templates at runtime. I created Statictemplate, a tool that performs static compilation to improve performance. I will show both the results, and how you can write a tool in Go that generates code.

Bouke van der Bijl is a jack of all trades, master of some at Shopify. He uses Go in his day-to-day work, has written multiple blog posts on the subject, and published multiple semi-serious packages for Go, including one that allows you to monkey patch Go functions (don’t use it).

Building a Distributed Serverless Platform from Scratch

Tim Marcinowski (Capital One)

A discussion of existing serverless solutions, design patterns considered, lessons learned from learning Go and a code walkthrough with the libraries and technologies used on a weekend project that uses Go to build a client, master/slave agents, code executor for Go / python, and replicated filesystem using FUSE & Cassandra.

Tim Marcinowski is part of the Technology Fellows Program at Capital One, currently working on cloud architecture, container infrastructure, and evangelizing Go. Tim has over ten years of experience in large scale operations, development, and open source communities. Before working for Capital One, Tim worked for Puppet, FINRA, CFPB, General Dynamics, and US Navy.

I Will Debate Mark Bates

Sean Kelly (Komand Security)

Mark Bates – A name known throughout the community for terrible opinions. I will have an open debate with Mark, as a sequel to our famous Boston Go/Ruby cross meetup Go VS Ruby debate (where Mark chose Ruby, AND LOST). I’m not going to say that Mark performed shamefully – but the audience was thinking it. Go is a great language, with a great community. But there are a good number of “controversial” issues in the community that you see flare up from time to time, with a lot of impassioned people taking up sides on how things should be done “in the go way”. I will debate Mark on these controversial opinions (dependency management/vendoring, logging, handling errors, frameworks, “just use the stdlib”, and others) in a quick lightning debate, where we inject a little levity into the situation and remind people that it’s ok to laugh at ourselves in good fun. Also, It’s good to laugh at Mark, which I assume everyone will be doing as I mercilessly destroy him in front of his own audience. The dude has no idea what is about to hit him, and no silly batman costume will save him from me.

Sean Kelly (affectionately known as Stabby) is a Principal Software Engineer for Komand Security. A simple man with a dog for an avatar, he enjoys learning new things, helping / mentoring others, and posting photos of his dog on the internet. When he’s not giving talks about his many failures, he enjoys spending time at home with his wife, and coming up with new projects to work on that he will never actually finish.

Building a Multiplayer New York Times Crossword

JP Robinson (The New York Times)

At The New York Times, we’ve been using Go along with Google’s tools to rebuild the platform behind the crossword product. Recently we’ve been experimenting in adding realtime (and offline) collaborative crossword play and we’re ready to share some of the details of our implementation. We’ll walk through building a realtime collaborative crossword game that uses App Engine, Firebase’s Realtime Database and other Google Cloud Platform tools for matchmaking, streaming game progress and aggregating game statistics.

JP Robinson is a Principal Software Engineer at The New York Times where he has been using and evangelizing Go for over 4 years. When he’s not walking around the office beating the drum to lead coworkers towards serenity with Gophers and Google Cloud, he can be found lounging with his fat cat, enjoying the amazing food of NYC or attempting (and failing) to get the high score on Joust at Barcade.

Silicon Valley Code Camp 2017 (San Jose, CA)

Getting Started with The Go Programming Language

Todd McLeod (Greater Commons)

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software. Go provides the ability for “server-side” programming. Traditional choices for server-side languages have included PHP, ASP, and JSP. Currently popular server-side programming languages include Ruby, Python, and Node.js. While there are advantages and disadvantages to all languages, no server-side language is going to be faster than “Go.” Couple the speed of Go with Google App Engine and Cloud Storage, and you are now using the exact same architecture as Google. This means that your web apps are going to be incredibly fast and will easily scale to millions of users. Go is an amazing choice for a server-side language as it was developed by some of the same individuals who created the C programming language and Unix, two of the most influential languages of all time. Robert Griesemer, Rob Pike, and Ken Thompson created Go to be a modern language that easily uses multiple cores, easily implements concurrency, easily works in distributed environments, and easily allows the programmer to write programs – it has a very lean and user-friendly syntax! Come learn about one of the greatest languages ever created. You will leave with resources and code samples to start making all of your software and apps really go.…

Chester Devs (Chester, UK)

Going Golang 1

Jordan Dolan

“Go is such a refreshing language to program in, there is very little clutter just the stuff you need to get the job done” – Matt West “Go is not meant to innovate programming theory. It’s meant to innovate programming practice.” – Samuel Tesla Want to learn a new language for 2018? Fancy understanding some of the fundamental concepts of programming in Go? Interested in an open source language with strong concurrency patterns built for the modern web? Join us for a 1 hour presentation during which we will discuss, at an introductory level, the history, philosophy and basic technical foundations of Go with live code examples and use cases. Increasingly used by many projects such as Docker, Bitcoin, Google, Netflix, Uber and others, we will discuss some of the ever-welcome features of the language and cover some of the surprising but purposeful limitations.

Going Golang 2

Jordan Dolan

London Node.js User Group (London, UK)

Scalable Scraping in Node and a bit of GO

Bartlomiej Specjalny

A story of moving a monolithic Python Twisted application into NodeJs and micro services. Will discuss what problems we have faced, how we resolved particular issues and arrived at truly modular structure on AWS. Will highlight pain points and place we see for future improvements.

Bartlomiej Specjalny, Lead NodeJs Software Engineer at Pad Innovation Limited, a fullstack software engineer with background in computer graphics and multimedia.

Google Dev Fest 2017 (Colombo, Sri Lanka)

Introduction to Golang

Hasitha Liyanage (Sysco Labs)

Go is an open source programming language created at Google in 2007 by Robert Griesemer. At the recently held Google Dev Fest 2017, Hasitha Liyanage, Director – Technology and Architecture at Sysco Labs, gives us a practical demo of Golang.

Vilnius Golang (Vilnius, Lithuania)

JSON+Go in practice

Aurelijus Banelis (NFQ)

Practical tips and tricks using JSON to communicate between Golang and not Golang services. Pluses and minuses of using JSON for testing and debugging.

dotGo (Paris, France)

Managing Package licenses in Go

Fabio Rapposelli

Any sizeable Go project uses a multitude of external packages, which have licenses that are not always compatible with each other, or are licensed under terms that don’t fit with your company guidelines.

Go’s work stealing scheduler

Jaana B. Dogan (Google)

Go scheduler’s job is to distribute runnable goroutines over multiple worker OS threads that runs on one or more processors. With its work stealing strategy and spinning threads, it does a lot to minimize context switches and aim better CPU utilization. JBD dives into the runtime scheduler and all the additional flavors it implements to make your programs more performant.

Unmasking netpoll.go

Cindy Sridharan

Cindy dives into Go’s network poller, how networking works in Go, and how the network poller works with Go’s m:n threading model as well as the work stealing userland scheduler.

Simulating a real-world system in Go

Sameer Ajmani (Google)

Go’s concurrency model makes it easy to develop scalable servers and data pipelines. Many of the patterns we use in developing concurrent code mirror structures in real-world systems. In this talk, Sameer presents a simulation of a small real world system and shows how variations in the design impact the system’s performance.

Machine Learning and Go

Francesc Campoy Flores (source{d})

All the cool kids are doing Machine Learning, but they are all doing it in Python! Should we change that? Can we solve ML problems in Go? What are the libraries out there? Is it fast enough? Follow Francesc on a trip that will take us from Machine Learning and Matrix Multiplications, through Tensorflow and Python, to finish with Go and cgo on the GPU.

Go, C++ or Java for DNA sequencing?

Pascal Costanza

While Go is not designed for parallel programming, it nevertheless has features that are beneficial for parallelism, especially a work-stealing scheduler for goroutines and a concurrent, parallel garbage collector. Pascal presents an evaluation of programming languages for expressing DNA sequencing pipelines, with Go along C++ and Java. Go hits a sweet spot of performing really well with little programming effort.

The Art of Testing

Mat Ryer

Testing code feels like science; we setup expectations, control the environment, run repeatable experiments, make assertions about the outcome. Yet in reality, it’s much more like an artform. Mat explores the subject and looks at some practical ways we can make sure we are testing the right things.

Reducing Go programs

Daniel Martí

Program reducing is useful to get the smallest version of some code that reproduces a certain behaviour, like a compiler crash or an obscure run-time error. Following the ideas of C-Reduce – introduced in 2012 – Go now has its own program reducer too, making use of the go/* family of packages. Daniel covers the basics of how Go program reducing works and how it can be useful to Go developers, from Go compiler developers to newcomers.

Exposing Go code to Android and Python

Laurent Lévêque

Building a library in Go that can be used in Python or Android can be difficult. Building one that can be used for both at the same time is really hard. Laurent presents a way to simplify the problem and automate most of the process, letting you focus on your business logic.

The Functional Design of Dep

sam boyer (Stripe)

Go is not a functional language. Not by a long shot. But that doesn’t mean we can’t leverage principles from the domain of functional programming when designing our Go programs. Sam demonstrates this by laying out the foundational design principles behind dep, which is built atop concepts of memoization and immutability.

Go for Real Time Streaming Architectures

Mickaël Rémond (ProcessOne)

Streaming applications are at the core of realtime information system. With microservices streaming components are becoming increasingly important. With the rise of cloud architecture, it is now easier and more elegant to use Go to write realtime high-performance components for streaming architecture than to use traditional tools. Mickaël explains what are streaming architectures and demonstrates the benefits of using Go to build such platforms.

Handling slow requests in your Go web server

Jaime Silvela

A common pattern when serving slow web requests is to send to a queue, such as beanstalkd, and then handle the work in async fashion. In Go we can implement a queue with channels or forget the queue idea completely. Either way, we don’t need to serialize/deserialize requests any more.

Rethinking Errors in Go

Marcel van Lohuizen

The Go team is starting to think about Go 2. Marcel addresses some of the current issues with handling errors in Go and introduces a burner package that addresses these issues by introducing a unified model of error, defer, and panic. Although this package can simplify Go code today, he hopes that experience with this package can help us understand how error handling can be improved at the language level.

Debuggers from scratch

Liz Rice (Aqua Security)

Liz explains how a debugger works by building one in a few lines of Go. This includes mapping between Go source code and the machine code instructions it compiles to, and using the ptrace system call to set break points and examine and modify the running process.

Behavior Of Channels

William Kennedy (Ardan Labs)

Bill learned over time that it’s best to forget about how channels are structured and focus on how they behave. So now when it comes to channels, he thinks about one thing: signaling. A channel allows one goroutine to signal another goroutine about a particular event. Signaling is at the core of everything you should be doing with channels. Thinking of channels as a signaling mechanism will allow you to write better code with well defined and more precise behavior.

Go Lift

John Cinnamond

John explains how Category Theory can help you write better code, but without using the words “Category” or “Theory” (or monad or functor or any of the scary terminology). The idea behind “Errors are Values” from the Go blog can be applied to different kinds of programming problems, and we can make our code easier to compose by moving units of control flow into types.

Open Source Summit Europe 2017 (Prague, Czehia)

Develop Your Embedded Applications Faster: Comparing C and Golang

Marcin Pasinski (Mender.io)

As a strategy, time-to-market for embedded applications is nearly as obvious as maximizing scoring in a sports game. Thus we will focus on a more pragmatic approach for delivering applications faster while maintaining a quality-first approach. Specifically, we will compare and contrast Golang and C as programming languages for developing embedded applications. We will also cover the learning curve for C programmers, as well as the key similarities and differences of C and Golang to provide context for developers considering a new language. We will also demonstrate an example of a small embedded application with Go on a Yocto distribution with the BeagleBone with a new image deployment. As with any decision, it is rarely black-and-white and we will cover the trade-offs, to make sure you have the most critical information needed to decide.

GolangSyd (Sydney, Australia)


Rob Pike

When did you last… • download a file just to upload to another device? • download a file from one web service just to upload to another? • make a file public just to share it with one person? • forget who you shared a file with? • accidentally make something visible to the wrong people? Upspin is an attempt to address problems like these, and many more. This talk will introduce the system and how to use it. Rob Pike is the co-creator of Go



Leave a Reply

Your email address will not be published. Required fields are marked *