Speakers

Speaker

Adrian Cockroft

TBD

Coming soon.

Adrian Cockcroft has had a long career working at the leading edge of technology. He’s always been fascinated by what comes next, and he writes and speaks extensively on a range of subjects. At Battery, he advises the firm and its portfolio companies about technology issues and also assists with deal sourcing and due diligence.

Before joining Battery, Adrian helped lead Netflix’s migration to a large scale, highly available public-cloud architecture and the open sourcing of the cloud-native NetflixOSS platform. Prior to that at Netflix he managed a team working on personalization algorithms and service-oriented refactoring.

Adrian was a founding member of eBay Research Labs, developing advanced mobile applications and even building his own homebrew phone, years before iPhone and Android launched. As a distinguished engineer at Sun Microsystems he wrote the best-selling “Sun Performance and Tuning” book and was chief architect for High Performance Technical Computing.

He graduated from The City University, London with a Bsc in Applied Physics and Electronics, and was named one of the top leaders in Cloud Computing in 2011 and 2012 by SearchCloudComputing magazine. He can usually be found on Twitter @adrianco.

Speaker

Bernerd Schaefer

Go Without the Operating System

Go lets you to compile your program into stand-alone binaries which can be safely shared across systems without worrying about a missing dependency.

But there’s one thing even a stand-alone executable depends on: the operating system. What if you could remove that dependency, too?

AtmanOS is a project built to explore that question.

It allows you to compile ordinary Go programs and run them on cloud providers like Amazon’s EC2, without a traditional operating system.

Let’s explore how it works, how to use it, and some considerations for putting it into production.

Bernerd leads the team at thoughtbot in Portland, where he helps clients build great digital products.

He prefers to spend his nights and weekends hiking in Forest Park and cooking up tasty meals at home, as well as hacking on personal projects like AtmanOS.

Speaker

Alan Donovan

Navigating unfamiliar code with the Go Oracle

In this talk, I will present the Go oracle, an “editor-integrated tool for code comprehension and navigation”.

This tool provides traditional editors such as Emacs, Vim, Sublime, and Atom with code navigation features not usually found outside a heavyweight IDE.

I’ll demonstrate how to use it to answer the kinds of questions that come up all the time during a typical day of coding.

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 and, with Brian Kernighan, the book The Go Programming Language (Addison-Wesley, 2015).

Speaker

Bill O'Farrell

Porting Go to the IBM z Architecture

At the IBM Linux on z Systems Open Source Ecosystem team, we have ported the Go language tooling (compiler, assembler, linker) to the Linux on z platform.

This tutorial will cover both the process we followed in doing so, some of the challenges we faced, and some of the performance hiccups and opportunities we encountered along the way.

The challenges included bootstrapping a compiler and runtime themselves written in the target language, designing a strategy for relocation, and finding ways to exploit z architecture strengths.

Bill O’Farrell is a member of the IBM Linux on z Systems Open Source Ecosystem, and team lead for the port of the Go compiler and tools to the z platform.

Bill has had a number of technical positions in IBM covering a range of technology. He has a Ph.D. in Computer Science from Syracuse University.

Speaker

Cindy Sridharan

Building an Origin Cache for Images

At Imgix, our multitiered caching layer forms an important components of our real­time image processing and delivery service. This talk will shed light on what necessitated the system and the architecture, how several of the language’s inbuilt constructs, newer features (like the library introduced in 1.5 which enabled us to do our own dns resolutions that helped replace nginx‘s own resolver in the old architecture) well as the tooling were used to design, implement and test the cache filling, eviction and purging logic, and more interestingly, our experience ‘productionizing this’, tuning the system to handle disparate traffic patterns, evaluating performance pre and post production, the mistakes made, challenges faced and lessons learned building this.

Cindy Sridharan learned Go in the fall of 2015 and currently works at Imgix where Go is used to build components of the origin cache.

She helped found the Women Who Go Bangalore chapter and organizes the Python Twisted and Lua meetups in San Francisco.

Speaker

Carolyn Van Slyck

Grow your users from an unlikely source: Windows Developers

You may not realize it but there are a lot of Windows developers moving into your neighborhood.

They are using and contributing to open source projects, even those that aren’t just for Windows.

But here’s the rub: Often tools are written Unix first, shoehorning Windows support in later. This approach can shut out potential users.

Lucky for us, Go has strong support for cross-platform development. So let’s start writing cross-platform first and welcome our Windows neighbors.

Learn some of the Windows quirks that you should take into account, and the Go goodies to help you conquer them.

Carolyn is a software developer from Chicago, though one day she hopes to escape to the Pacific Northwest in search of faster internet, free-range kittens and respite from snow blowers.

She loves all things automation, developer tools and anything that will make her fellow developers lives easier; so she’s found a good home at Rackspace on the Developer Experience team.

Like a grafted bonsai, her roots come from many places: happily developing C# applications on a Mac and deploying to Linux.

Speaker

Emily Gu

The Power and Elegance of Reflection

Developers are often told reflection is bad and should be avoided. However, when reflection can help reduce the amount of code needed to solve a problem, it should be considered.

Reducing complexity while preserving maintainability must always be a priority. Reflection can be a tool that helps makes this possible.

In this talk I am going to show you the power and elegance of the reflection package.

Emily Gu currently works for Intel Corporation as a cloud software engineer in the Software Defined Infrastructure (SDI-X) group and is a graduate from East Carolina University.

Emily has been a software developer for over 15 years working on various system level projects. She has experience with Cloud and Big Data systems.

When Emily is not writing code, she can be found traveling the world looking for and indulging in tea.

Speaker

Donnie Berkholz

TBD

Now serving as Research Director for the Development, DevOps, and IT Ops team at 451 Research. Growing 451’s footprint and recognition across the entire software lifecycle. Overall responsibility for diverse areas encompassing private cloud, API management, IT monitoring, DevOps, PaaS, and more. Personal coverage includes development, testing, and release engineering ‹ including languages and language tooling, version control, CI/CD, ALM and build/deployment pipelines, and more.

Previously at RedMonk, the only developer-focused analyst firm, with significant involvement in publication, consults, multimedia products, data-driven research, and speaking engagements. Expert in analysis, visualization, and communication of large, complex problems and datasets as a Ph.D.-trained scientist with >10 published papers. Leader in the open-source community with deep expertise in Gentoo Linux (where I led ~250 developers) and software packaging as well as high-level programming skills (shell scripting, Python). Insightful technical writer and strong communicator with publications on LWN.net, a syndicated blog that topped 38,000 readers, and numerous prizes and recognition for scientific/technical writing and presentations.

Now serving as Research Director for the Development, DevOps, and IT Ops team at 451 Research. Growing 451’s footprint and recognition across the entire software lifecycle. Overall responsibility for diverse areas encompassing private cloud, API management, IT monitoring, DevOps, PaaS, and more. Personal coverage includes development, testing, and release engineering ‹ including languages and language tooling, version control, CI/CD, ALM and build/deployment pipelines, and more.

Previously at RedMonk, the only developer-focused analyst firm, with significant involvement in publication, consults, multimedia products, data-driven research, and speaking engagements. Expert in analysis, visualization, and communication of large, complex problems and datasets as a Ph.D.-trained scientist with >10 published papers. Leader in the open-source community with deep expertise in Gentoo Linux (where I led ~250 developers) and software packaging as well as high-level programming skills (shell scripting, Python). Insightful technical writer and strong communicator with publications on LWN.net, a syndicated blog that topped 38,000 readers, and numerous prizes and recognition for scientific/technical writing and presentations.

Speaker

Daniel Whitenack

Go for Data Science

Trending languages for data science/engineering work are python and R, but can Go provide something special and relevant in this developing space?

The answer is definitely yes.

In this session, I will discuss several major go-based efforts in the field of data science and use cases for Go over python/R in a data processing context.

I will also discuss go-based data science workflows and tools, including Go notebooks, to help your get your feet wet.

Daniel is a Ph.D. trained data scientist who is interested in helping Go become a “go to” language for data science/engineering.

As a data consultant, Daniel helps his clients develop and deploy data-driven services using technologies such as Go and Docker.

These services include predictive analytics services, real-time dashboards, pricing optimizations, and more.

He enjoys contributing to the open source community, with projects like gophernotes, and mentoring data science students at Thinkful.

On twitter @dwhitena.

Speaker

Francesc Campoy Flores

Understanding nil

Is it a constant? A variable? Where is it defined? What is its type? It has no type? It has all the types? Those are usual questions that people learning Go ask and this talk answers all of them and more.

The talk covers the different contexts where nil is used, what it means, the gotchas to be aware of, and some patterns where nil becomes essential.

In parallel to the exploration of how nil can be used I will also discuss the origin and history of nil in those contexts.

Francesc Campoy Flores is a Developer Advocate for Go and the Cloud at Google. He joined the Go team in 2012 and since then he has written some considerable didactic resources and traveled the world attending conferences, organizing live courses, and meeting fellow gophers.

He joined Google in 2011 as a backend software engineer working mostly in C++ and Python, but it was with Go that he rediscovered how fun programming can be.

Speaker

Filippo Valsorda

cgo: Safely Taming the Beast

cgo is a powerful tool, but using it right becomes subtle when memory starts to be shared between C and Go.

Thankfully since Go 1.6 the rules to follow are clear and the cgo behavior well defined.

In this talk we will look at cgo’s capabilities and functioning, understand the issues related to memory management and garbage collection, and learn to develop safely around them to build bindings, but also static binaries and even C libraries.

Filippo Valsorda does cryptography and systems engineering at CloudFlare.

He’s the main developer of the pure-Go CloudFlare DNS server, and wrote its DNSSEC implementation.

He often writes about Go on the company blog, talks about security and programming, and builds small Go demos like the Heartbleed test and the whoami SSH server.

He once wrote about building Python modules in Go, and got the memory allocations wrong.

Speaker

José Carlos Nieto

Go Mobile as the backbone of Lantern for Android

Lantern is a circumvention tool that people can use to access the Open Internet without restrictions. Lantern uses Go on its desktop client, server infrastructure and on its Lantern Mobile application for phones.

We’ll focus on Lantern Mobile: this talk begins with our experiences working with Go Mobile and ends on a list of gotchas and suggestions on how can you start writing backends for mobile apps as well.

José is a Mexican gopher who loves Open Source (https://github.com/xiam).

He helps coordinating the local Go users group (https://www.meetup.com/GophersMX/), works on different projects as a contractor and helps local students learn new technologies through a scholarship (https://menteslibres.io/).

The most popular Open Source project he has contributed to is Lantern (https://getlantern.org/). Lantern is a circumvention tool that people can use to access Internet without restrictions.

Speaker

George Tankersley

Go for Crypto Developers

You’ve heard don’t implement your own crypto! and taken it to heart. Great!

Go has very robust crypto packages. But even the standard library offers plenty of ways to make mistakes.

We’ll talk you through the options and explain the right answers.

Reverse engineer turned pentester turned startup founder turned crypto dev.

Security at CoreOS by day; privacy tech by nights, weekends, and the occasional federal holiday.

Speaker

Ivan Danyliuk

Visualizing Concurrency in Go

Concurrency in Go has been explained many times in a variety of articles, but there is time to explain it visually using the power of 3D modeling and animations.

I’ve built a tool that can visually represent concurrent Go programs using WebGL in a browser.

We’ll watch common concurrency patterns in real time 3D animations and will learn visually how does parallelism differ from concurrency.

10+ years C/C++ developer, 3 years Go developer. presenter of Golangshow podcast, organizer of Ukrainian Golang Meetups.

Speaker

John Leon

Packet Capture, Analysis, and Injection with Go

Learn about packet capturing, analysis, manipulation and injection using the gopacket package. Useful for port scanning, monitoring, routing, and ensuring your network is secure.

The gopacket package provides several interfaces that let you work with existing network layers as well as the power to create your own layers.

John “NanoDano” Leon is currently an Application Security Architect with a background in software engineering.

His passion is creating practical tools related to the information security field as well as writing tutorials to help others on his website www.devdungeon.com.

Speaker

Jack Lindamood

Practical Advice for Go Library Authors

This talk will go in depth into the decisions popular existing libraries make about how to structure their code for users and the tradeoffs of different solutions.

Included is advice on the best way to write public libraries that are easy to use, test, configure, and extend.

Jack is a software engineer with over 7 years experience building and running large scale distributed services.

Starting at Facebook and currently at SignalFx, Jack now leads SignalFx’s Go codebase and works on metrics instrumentation and ingest.

He has presented his work on Go debugging at GoSF and other meetups in the past.

Speaker

Keith Randall

Inside the Map Implementation

Ever wondered how maps work in Go? This talk will describe the current Go map implementation in detail and discuss some of the design tradeoffs.

I’ll compare Go maps with maps in other languages, comparing the guarantees they provide and how that affects the implementations.

Keith Randall has been on the Go team at Google since 2013.

He’s worked on Go maps, stack copying, compilers, and various performance issues.

Previously, Keith was the tech lead for Google Ads. Keith has a PhD in Computer Science from MIT.

Speaker

Kelsey Hightower

Building Microservices with gRPC - A Practical Introduction

gRPC is a general RPC framework focused on performance and interoperability across a wide range of programming environments.

In this session we will demonstrate, through a series of live demos and code walkthroughs, how to design, build, and deploy a collection of microservices using gRPC from the ground up.

Key gRPC concepts will be covered including authenticating gRPC services and clients, service discovery, monitoring, and troubleshooting.

Kelsey works at Google on the Google Cloud Platform Team.

Speaker

Katrina Owen

Mind the Gap

How do you learn Go? First do the tour. Then read the language spec. Then write a lot of code.

This works for a lot of people, but for some the gap between the tour and the spec is a vast chasm.

In his GopherCon 2015 keynote, Russ Cox said: Go needs everyone’s help, and everyone isn’t here.

This talk draws on two years of iterative exploration. It examines one way to bridge this gap, aiming to make Go accessible to a broader audience.

Katrina accidentally became a developer while pursuing a degree in molecular biology.

When programming, her focus is on automation, workflow optimization, and refactoring.

She works primarily in Go and Ruby, contributes to several open source projects, and is the creator of exercism.io.

Speaker

Michael Matloob

CONTRIBUTING: The Talk

Interested in contributing to the Go Programming Language open source project, but don’t know where to start? Come learn how you can get involved and find something to work on.

If you’re already contributing, come learn how to more effectively review CLs and help make the contribution process smoother for others.

Michael Matloob works on the Go team at Google in New York.

Speaker

Marcel van Lohuizen

Handling Text from Around the World in Go

Human languages are more often than not messy, inconsistent, and full of surprises. Although this can make languages interesting, it is not something you want to deal with in your code.

The golang.org text repository provides a collection of packages for dealing with the intricacies of human languages at a high level.

This tutorial teaches the basic principles of dealing internationalization and localization in Go code and presents many of the high-level concepts you need to know.

Marcel van Lohuizen is a longtime Googler who works on the Go team, where he focuses on expanding Go’s text processing capabilities.

In the past he worked on search and Borg (Google’s large-scale cluster manager), among other things.

Speaker

Raphael Simon

goa: A New Approach to Microservice Development in Go

This tutorial introduces a novel approach to building microservices in Go that uses code to describe the design of the service API.

The design is then fed to generation tools that produce not only actual service modules but also other outputs such as client Go packages, command line tools, Javascript and documentation via Swagger specifications and JSON schemas.

In this tutorial we will use goa to build a microservice from scratch complete with UI, client tool and documentation.

We’ll also take a look at how to leverage the goa request context at runtime to implement the API endpoint.

Raphael Simon is a Systems Architect at RightScale where he’s been designing many of the systems that make up the platform for the past 8 years.

Prior to that role Simon worked as a lead engineer at Eiffel Software on the Eiffel language compiler and libraries and as a principal engineer at Citrix on the GoTo line of products.

Simon received his MS in Computer Science and Applied Mathematics at ENSEEIHT, France.

Speaker

Renee French

The Go Gopher: A Character Study

Everyone is familiar with the Go Gopher but who is he really? What is he thinking about? What gets him motivated in the morning? And how does he hold that Champagne glass?

Come to this talk and find out.

Creator and designer of the Go Gopher.

http://instagram.com/reneefrench

Speaker

Rob Pike

The Design of the Go Assembler

The Go assembler was rewritten for the 1.5 release, replacing a suite of C programs, one per architecture, with a single binary, written in Go, that supports all architectures.

The usual variables, GOOS and GOARCH, are sufficient to configure it for any environment.

This talk will explain how this extreme portability is achieved for such a non-portable problem.

The answer lies in the structure and origin of the Go compilation tool chain, a mostly machine-independent input language, and a lot of automation.

Even for non-assembling Gophers, there are lessons in the design.

Rob Pike works at Google and is a co-creator of Go.

Speaker

Takuya Ueda

Go for Mobile Games

Go Mobile (golang.org/x/mobile) is a project which shows new possibilities for mobile apps development.

Especially, for mobile games which requires high performance processing, Go can be expected to be an alternative to C and C++.

This session explains how to develop game apps using some packages such as app, event and sprite provided by Go Mobile project.

Furthermore the session introduces a way to call Android API from Go codes, and solutions for some problems which occurs when we distribute apps on Google Play.

I would like to show current capabilities and future potentials of Go Mobile.

Game Developer in Japan. I love Go and Gophers.

Speaker

Wisdom Omuya

Go Vendoring Deconstructed

Vendoring has been a major struggle for Go developers. Many of us have had to vendor packages to build dependences into our projects - usually by performing ugly rewrites of import paths.

Go 1.5 introduced the GO15VENDOREXPERIMENT environment variable which simplifies this process and avoids those rewrites.

In this talk, I’ll demonstrate why and how we switched to the vendor experiment at MongoDB, and I’ll give practical advice on how you can use this feature in your projects.

Wisdom Omuya is a software engineer at MongoDB and has been using Go since 2013.

He has worked on a number of large scale projects using Go, an open-source continuous integration tool, Evergreen, and the MongoDB server tools.

Wisdom holds a Masters degree in Computer Science from Columbia University.

Hotel Accomodations

$175 / night, plus tax
Hampton Inn

Hampton Inn800.445.8667

Code: GopherCon

550 15th Street,
Denver, CO 80202

$185 / night, plus tax
Homewood Suites

Homewood Suites800.445.8667

Code: GopherCon

550 15th Street,
Denver, CO 80202

$185 / night, plus tax
Hyatt Place

Hyatt Place888.591.1234

Code: G-GO16

440 14th Street
Denver, CO 80202

$189 / night, plus tax
Hilton Garden Inn

Hilton Garden Inn855.215.1283

Code: GopherCon

1400 Welton Street
Denver, CO 80202

Proudly sponsored by

Interested in becoming a sponsor? Get in touch