Cameron is a product manager and the product lead for Go at Google. Before Go, Cameron led Google Cloud's programming languages support and integrations and, before Google, he led a high frequency market making firm where he built low latency trading systems in C and C++. He likes Go more.
Cameron earned a bachelor's degree in computer science from the University of California at Santa Barbara and a juris doctor from the George Washington University Law School.
State of the Go Nation
Go has come a long way in recent years: From the IDE to package management to changes in the language itself, Go today provides a more productive, coherent experience than ever before.
In this talk, we'll review the last several years of advancements in the Go language and the Go toolchain, as well as how the Go team leverages its portfolio of projects to create complete, developer-centric solutions. By digging into examples of what we're working on now, we'll also share a peek of what we're most excited about in the years to come.
I'm a cryptography engineer and open source maintainer. I've been in charge of cryptography and security on the Go team at Google until 2022, and was on the Cryptography team at Cloudflare until 2017.
The Cryptography State of the Union
It's been an exciting few years for Go cryptography. We've seen a whole new package, crypto/ecdh, a lot of deprecations of unsafe APIs, new and simplified TLS features (including upcoming QUIC support!), large rewrites of the elliptic curve and RSA backends to be safer and constant time, and even the occasional vulnerability. If you've not been tracking the progress or if you wanted to learn more from behind the curtain, this is the opportunity to catch up and dive in.
Alan Donovan has spent almost twenty years working on developer tools at Google NYC, including the company’s build system (Blaze) and its production monitoring system (Monarch). Since joining the Go team in 2012, has built numerous static analysis packages and tools for Go, and, with Brian W. Kernighan, co-authored The Go Programming Language (Addison-Wesley, 2005).
Rob Findley is tech lead for gopls, the Go language server. Before working on gopls, he contributed to pkg.go.dev, Go generics, and support for tools in the Go standard library.”
Redesigning Gopls for 10x scale
Gopls is Go’s implementation of the Language Server Protocol, which turns any text editor into an IDE. In this talk, Rob and Alan of the Go team at Google will present the results of their year-long effort to rearchitect Gopls to enable it to work efficiently in the largest of Go projects. By exploiting the dependency structure of Go programs at various levels of scale (identifiers, imports, types, modules) and using techniques from compilers and build systems, the new design enables Gopls to start more quickly and to serve much larger codebases, while consuming dramatically less memory. It also fixes a number of longstanding bugs and unlocks some new features, such as modular static analysis.
Moieed Ahmed is the Director of Software Engineering at Capital One. He is a hands-on developer, solutions architect and an engineering leader. Moieed has led multiple large scale enterprise software projects in a variety of domains including tech and finance industries. He is passionate about building innovative technical solutions for solving business problems.
As a Go evangelist, Moieed started utilizing Go for building enterprise solutions about 5 years ago across his teams and never looked back.
Lee Tsai is a Senior Manager of Software Engineering at Capital One. He works within the Commercial Bank Technology group, where he has brought multiple Go projects to production. Before Capital One, Lee led the Engineering Enablement team at Intuit Mailchimp through a dev environment modernization effort using Go.
Before software, Lee worked on Wall Street as an analyst. That experience continues to fuel his passion for building innovative technical solutions to solve business problems.
Go Big! Go Enterprise
Come with us on a journey adopting Go at an enterprise. We will walk through example projects using Go to solve common enterprise problems. And see how Go can help with cost efficiency, increased reliability, improved runtime performance, and providing a better developer experience.
Based on our experience working with Go at Capital One, we will walk through general enterprise use cases where Go really shines. These projects cover domains such as cloud, software engineering, and shared services. Finally, we will close by sharing takeaways from these projects and the ways in which Go and its community continue to delight us.
Alan has also developed and maintains numerous open source projects, many of which are used widely. These include libraries for RPC primitives, self-updating software, structured logging, SQL query visibility and more.
Alan loves to talk about how to build better educational tools for new programmers; how to run sustainable self-funded software businesses; and how we can encrypt all internet communications and build a safer and more secure web.
Abstractions are Dead, Long Live Abstractions!
Building an app isn’t simply html, css, and js. In modern app development, we have scripts that build and deploy servers, configure connectivity, monitor and report status, package and distribute code, observe activity across the system, and scale up or down as we need. Every capability introduces new concepts, tools, and complexity that we must learn, monitor, study, and maintain over time.
In short, there’s nothing short about it. Unfortunately, we found ourselves here by working with the wrong abstractions. And even worse, we’re stuck in a place far outside our skills and understanding and have lost track of our app. Our tooling has changed but our modeling around it has not.
In this talk, let’s shift our thinking to solve the problems we’re good at and get back to building great apps.
Lesley Cordero is currently a Staff Software Engineer, Tech Lead at The New York Times. She has spent the majority of her career on edtech teams as an engineer, including Google for Education and other edtech startups.
In her current role, she has focused on observability, building excellent teams, and reliability management by setting org-wide vision & strategy, improving on-call processes, introducing chaos engineering, and cultivating culture that builds with the most vulnerable employees in mind first. She shows care for others by holding them accountable to the best versions of themselves — and by buying them the occasional bubble tea.
Using Golang for Platform Engineering
We’ll explore how Golang can improve platform engineering with its robustness, concurrency model, and cross-platform support. We’ll talk about DevOps best practices and Golang examples for creating tools, deployment automation, integrations, and using infra-as-code.
Jason Hall is a professional container image nerd at Chainguard, building tools to build and manage container images, and services to move them around better and faster.
He lives in Brooklyn with his wife and kids, and enjoys eating pizza more than you think. No, even more. 🍕
ko: The only good way to build Go containers
ko containerizes Go applications more easily, more securely, and more fasterly than docker build, with no need to write a Dockerfile. If you can run go build, you can use ko to build and push a container image. It even generates high quality build-time SBOMs. It integrates with Kubernetes and even Terraform, if that’s your thing. It was recently accepted into the CNCF, which is kinda nice.
By focusing only on building Go container apps, ko is able to take advantage of Go’s great tooling and ecosystem to make the best, smallest, most secure container images possible.
If you stay to the end I’ll even talk about some future experimental work that might already have shipped by the time the talk happens! Time is weird.
Johnny Boursiquot is a multi-disciplined software engineer with a love for teaching and community-building. He is the founder and organizer of the Baltimore Go User Group and has served as an organizer of both the Boston Ruby User Group and the Boston Go User Group. He stays busy as a speaker, trainer, podcast host, and advocate within the Go community. He is currently the Chief Technology Officer at Skilltype.
Rush Tactics: Writing Go code you won’t regret later
You’re still getting comfortable with Go but you’ve just been handed a project that needs to be done yesterday. You’re scrambling to figure out the right project setup, packaging, and even the concurrency bits you know would be great for the use case at hand. You’ve read and watched best practice content but what you really need is a guided example of how to apply the right amount of engineering to the problems you have right now. In this talk, Johnny walks you through the tactics he employs time and again to prevent over engineering and set projects up for success, especially for rushed deliverables.