Capital Go Program

William Kennedy

William Kennedy

William Kennedy is a managing partner at Ardan Labs in Miami, Florida, a mobile, web, and systems development company. He is also a co-author of the book Go in Action, the author of the blog GoingGo.Net, and a founding member of GoBridge which is working to increase Go adoption through diversity.

Concurrency Design

Go's concurrency features help developers take advantage of the leveraging today's modern hardware but how does Go provide this capability? In this talk, I will present code that shows how the language mechanics for writing concurrency software works. In the process, I will talk about philosophies and guidelines that developers should consider when writing concurrent multi-threaded software using Go.

Mark Bates

Mark Bates

Mark Bates is a full stack web developer with over 18 years of experience building high quality scalable applications for companies such as Apple, USA Today, Klarna, and Palm. He has written three books, “Distributed Programming with Ruby”, “Programming in CoffeeScript”, and “Conquering the Command Line”. Mark has spoken at conferences around the world, has led user groups such as Boston Ruby and Boston Golang, and has helped to organize conferences such as GothamGo and GopherCon.

Mark 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.

Buffalo: Rapid Web Development in Go

Put the fun back in writing Go web applications using the Buffalo. framework. A Ruby on Rails inspired, idiomatic, web framework written in Go. Fun, Fast, and easy!

Chris Hines

Chris Hines

Chris has been a Gopher for six years and a full time Go developer for the last three years. He has three decades of experience writing software across several industries with several different languages. He has contributed to several open source Go projects including the Go project, Go kit, and log15.

Go Kit Log Package

The Go kit log package is small but mighty. It has a small API, but wields the power of simplicity and composition. It provides tools for common logging needs and simple abstractions that allow easy customization. In this talk I will share a bit the package’s history, how we arrived at its core abstractions, and how they fit together. I will also share examples of typical use and advice about how to accomodate logging in your own packages.

Kaylyn Gibilterra

Kaylyn Gibilterra

Kaylyn Gibilterra is a gopher from Capital One Labs and enthusiastic advocate for Go use in the enterprise. She is a Women Who Code and Women Who Go Leader (feel free to ask about the difference!) where she has taught workshops and mentored dozens of engineers through their successful transitions into or promotions throughout tech. Most importantly, she loves history, rooftop views, and the color maroon.

Graduating to Go

Graduating to Go provides practical examples to jumpstart your code from novice to contributor for your enterprise Go development. This talk will compare Go code with languages such as Java, Python, C, and JS to get you quickly productive when coming from previous development backgrounds.

Alison Rowland

Alison Rowland

Alison is a lead developer whose specialties include Python, PostgreSQL, big data and automated testing, and she loves to mentor junior developers and foster productive team cultures. She joined the Capital One Tech Fellows team in late 2016 to help the bank act more like a tech company. Alison has spent the most recent years of her career trying to improve the American people’s relationship with government, first from the outside, at the Sunlight Foundation, then in public service as a Presidential Innovation Fellow, a co-founder of 18F, and a leader at the Commerce Data Service. While at 18F, she architected and led the development of the Federal Election Commission’s first campaign finance API, and was also an organizer of the Automated Testing working group. At the Commerce Data Service, Alison and her team helped build a search tool internal to the US Patent and Trademark Office which brought an unprecedented level of discoverability to patent-related data within the agency, and helped the agency adopt a data-driven decision making approach to assessing patent quality. Alison’s career got started first as an entrepreneurial web developer building Software as a Service for professional photographers, and later building high-throughput business intelligence applications for the entertainment industry at Rentrak (now comScore). Alison is also a multi-instrumentalist musician and lives in Maryland with her husband, two young daughters, and a rabbit.

Red Light, Green Light, Go! Set Up a Portable Go Testing Rig with Docker and GoConvey

Easier and more fluent testing tools make happier developers. In this talk, we’ll use Docker and the BDD framework GoConvey to create a feature-rich Go testing rig that’s reusable from project to project. GoConvey brings readability, colorization, and a web UI. Docker brings portability!

Aditya Mukerjee

Aditya Mukerjee

Aditya is an engineer at Stripe on the Risk 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.

করো: Translating Go to Other (Human) Languages, and Back Again

In The Hitchhikers’s Guide to the Galaxy, the Babel Fish is a universal translator. By allowing all beings to communicate regardless of language, it ‘neatly crosses the language divide between any species’.

While Go uses English keywords, because of the way Go’s lexer and parser are designed, we can easily port Go to other languages and still maintain interoperability between different dialects of Go. gofmt already bridges the divide between two seemingly-incompatible groups of developers — those who prefer tabs and those who prefer spaces — and allows them to collaborate seamlessly, with no extra effort for either group. We can extend this approach further, and allow developers who only speak English to collaborate seamlessly with developers who don’t speak English at all.

In this talk, we will look at koro, which adds Bengali support for the Go toolchain. The koro extension lets native Bengali speakers program in the language most familiar to them, but provides bidirectional translation layers so that all Go programmers only ever see code written in their native language.

This same technique can be used to add support in the Go toolchain for Korean, Russian, Tagalog, or any other natural language that Go programmers want to use when programming, making Go the ultimate Babel Fish for programmers everywhere.

Johnny Boursiquot

Johnny Boursiquot

Johnny is a multi-disciplined Software and Operations Engineer with over 18 years of industry experience spanning various server, client and mobile technologies. His past roles include developer, co-founder, teacher and CTO. He is currently the Principal Software Engineer at Achievement Network where he handles all things DevOps.

His love for technology is matched only by his passion for community service. He is a GoBridge Core Member, the founder and organizer of Baltimore Golang, a previous organizer for the Boston Ruby Group and the Boston Golang Group, regularly serves as a teacher for various organizations that seek to diversify the tech industry and mentors a number of young technology professionals in the Boston and Baltimore metro areas.

Mine the Debt

Debt. A word that makes most software developers uncomfortable. As our relatively new Go community matures, we find that we too, aren’t immune to software debt. Debt, however, can be an ally and in this talk, you’ll learn that your Go codebase holds insights into not only the technical debt you’re carrying but also the organizational debt you might not have known you had.

By using certain tools and techniques, both existing and new, we can mine our code for those insights that stretch beyond our hunches and into actual and predictable facts that we can in turn leverage to manage our debt responsibly.

Daniel Whitenack

Daniel Whitenack

Daniel is a Ph.D. trained data scientist working with Pachyderm. Daniel develops innovative, distributed data pipelines which include predictive models, data visualizations, statistical analyses, and more. He has spoken at conferences around the world (Datapalooza, DevFest Siberia, GopherCon, and more), teaches data science/engineering with Ardan Labs Ardan Labs, maintains the Go kernel for Jupyter, and is actively helping to organize contributions to various open source data science projects.

Reproducible Data Processing with Go

Despite amazing applications of statistics and machine learning in industry, many attempts at doing “data science” are anything but reproducible. This can be particularly alarming in industries that require processes to be audited or in light of recent government regulations giving users a “right to an explanation” for algorithmic decisions. In this session, I will show how Go is changing data science for the better and is powering tools that are establishing new standards for data processing. I will give a live demo of a reproducible Go-based data science workflow that includes complete provenance explaining the entire process that produced specific results.

Marty Schoch

Marty Schoch

Marty Schoch is an Engineer at Couchbase and the primary author behind the Go full-text search library Bleve.

Finite State Transducers in Go

In this talk the audience will learn about the utility and applications of finite state transducers. First, we'll review finite state machines, a concept many are already familiar with. Then we'll look at finite state automata, and their relationship with regular expressions. Finally, we'll build up to finite state transducers, and discuss a new library named Vellum, which implements them in Go.

Bryan Liles

Bryan Liles

Bryan Liles is a Director in Public Cloud Engineering at Capital One. When not thinking about code and people growth, Bryan races cars in straight lines and around turns and builds robots and devices.

Writing Go

What do you do after learning Go and some basic patterns? You start writing applications. That thought is more complicated than it might first appear. What do you need to account for? What do you write first, where does code go? How are things organized?

The good news is that you aren’t alone, and this ends up being a common problem to many budding Gophers. This talk will walk through a scenario of creating an application in Go. We will explore the first stages of getting started, coupled with one method of testing.

Good applications are good citizens, so we will talk about what your app should make available to the world, and how it should live in that world. Finally, we’ll wrap up with a few tips that will hopefully pique your interest and cure your apprehensions around writing Go.

John Potocny

John Potocny

John has spent three years writing high-performance Go code as a backend developer for VividCortex. In his spare time, John is a casual gamer and amateur rock climber.

Profile All the Things!

pprof is an incredibly useful utility in Go, and many developers leverage it to identify CPU and memory hotspots in their programs. But is that all that pprof is good for, or can it help us solve other problems? There’s a few other profile formats that are less talked about, as well as potential for custom profiling in our programs. By learning how to use all of the profiles pprof has to offer and even create our own, we can get a more complete understanding of our program behavior both during development and when it is running in production.