|8:30 – 9:30||Registration and Breakfast|
|9:30 – 10:00||State of Go by Steve Francia|
|10:05 – 10:35||A Python and a Gopher Walk into a Bar by Massimiliano Pippi|
|10:35 – 11:05||Break (30 mins)|
|11:05 – 11:35||Closures are the Generics of Go by Jon Bodner|
|11:40 – 12:10||A Go implementation of the Skylark Configuration Language by Alan Donovan|
|12:10 – 1:40||Lunch (90 mins)|
|1:40 – 2:10||Monitoring and Tracing Your Go Services by Aditya Mukerjee|
|2:15 – 2:45||Calling Rust from Go, without cgo by Filippo Valsorda|
|2:45 – 3:25||Break (40 mins)|
|3:25 – 3:55||Implicitly Impacting the Cloud with Go by Kris Nova|
|4:00 – 4:30||From Frontend Engineer to Go Core Team member by Andrew Bonventre|
|6:00||Lyft Party at the Watson (1st Floor Bar Area)|
|8:30 – 9:30||Registration and Breakfast|
|9:30 – 10:00||Keynote: The Legacy of Go, Part 2 by Carmen Andoh|
|10:05 – 10:35||Performance Optimisation: How Do I Go About It? by Kat Zien|
|10:35 – 11:25||Break (50 mins)|
|11:25 – 11:55||Making Code Write Itself: How To Build Code Generation Tools in Go by Bouke van der Bijl|
|12:00 – 12:30||Building a Distributed Serverless Platform from Scratch by Tim Marcinowski|
|12:30 – 2:00||Lunch (90 mins)|
|2:05 – 2:35||I Will Debate Mark Bates About All of the Controversial Issues in Go by Sean Kelly and Mark Bates|
|2:35 – 3:05||Becoming a Go Contributor by Kevin Burke|
|3:05 – 3:50||Break (45 mins)|
|3:50 – 4:20||Building a Multiplayer New York Times Crossword by JP Robinson|
|4:25 – 4:55||Internals of the Go Internal Linker by Jessica Frazelle|
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.
Jess Frazelle works with Linux and Containers at Microsoft. She loves all things involving Linux namespaces and cgroups and is probably most well known for running desktop applications in containers. Jessica has been a maintainer of Docker and a contributor to RunC, Kubernetes, Linux, and Golang, among other projects, maintained the AppArmor, Seccomp, and SELinux bits in Docker, and is quite familiar with locking down containers.
This talk will cover how the internal Go linker works. It will also describe some awesome hacks with the external linker and LDFLAGS. Take a deep dive into how the Go toolchain works to create binaries.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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).
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.
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.
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.
Kevin Burke likes building great experiences. He helped scale Twilio and Shyp, and currently runs a software consultancy. Kevin once accidentally left Waiting for Godot at the intermission.
Contributing to the Go project and associated tools can look really intimidating. I’ll share how I went from being a part time Go hacker to a contributor, and discuss how you can get started contributing to Go!
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.
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.
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. I can ops. Open source advocate and active contributor, documentation fanatic, speaker at conferences (for the ❤ of sharing). I wrote a book once.
Currently at Datadog, where I’m allowed to play with high scalable systems, a wide number of different technologies, open source stuff, Python and Golang.
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.
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.
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.
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.
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.
Aditya Mukerjee is a systems engineer at Stripe on the Observability team, based in New York City. He studied statistics at Columbia and computer science at Cornell, and has been writing Go professionally for the past four years. When not defending users against online fraudsters, he spends his free time playing German-style board games and listening to embarrassing music.
“If a Go microservice falls down in the middle of a server farm, does my pager make a sound?”
If your service is automatically monitored, then the answer is “yes!”. But what if your service isn’t monitored yet? Or what if your monitors alert you when the server is offline, but not on subtler problems like latency spikes or CPU load?
Fortunately, there’s a quick and easy way to get high-resolution metrics for monitoring your services. The Go standard library now contains the basic building blocks for application tracing. When you combine these tools with Veneur, a pure Go distributed metrics aggregator, you can easily answer the questions you care about, like “Which servers are currently running near maximum capacity?”, or “Can our infrastructure handle tomorrow’s product launch?”.
Mark Bates is the co-founder of PaperCall.io, a platform for connecting technical events with high quality content and speakers. Mark is also a partner at Gopher Guides, the industry leader for Go training and conferences.
In his spare time Mark leads development of the Go web framework Buffalo.