Workshops

Web Services in Go

Bill Kennedy

Summary

The Ultimate Service is a class for any Go developer who wishes to learn how to build production ready and well tested web services in Go. This class provides an intensive, comprehensive and idiomatic view of building web services using community accepted idioms and practices.

Details

The class goes beyond just the use of the http package and focuses on building CRUD based services with logging, observability and debugging. We believe this class is perfect for anyone wishing to build production ready, scalable, fast, and highly concurrent web services in Go.

Start/Stop

Logging/Configuration

Web Framework Design

Database Support

Testing Support with Docker

Metrics/Tracing

Prerequisites

Having a background in software development. Experience writing services in any other language is a bonus.

What a student is expected to learn

Everyone is going to be mentally exhausted by the end of the day. We will be challenging every student to think about what they are doing and why. If you want to be a better Go developer, code reviewer, designer and architect, this is the class you want to take.

Bio

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.

Twitter

Github


Introduction to gRPC

Tim Raymond

Summary

Building distributed systems can be extremely complex, but it doesn’t have to be. gRPC was created as a high performance RPC framework that makes it easy for to build client/server applications. Using protocol buffers, you can define both data messages and procedure calls that turn into easy to consume structures and services in Go.

What a student is expected to learn

Students will learn how to define Protocol Buffers, as well as how to properly modify them for future revisions to be backwards compatible. They will also learn how to define and consume simple requests via RPC (known as unary calls), as well as more advanced client, server, and bi-directional streaming services. Finally, the students will learn how to create the boilerplate client and server applications, as well as how to create middleware, secure their services, and if time permits, to monitor and track their rpc calls across their distributed application structure.

Prerequisites

A basic understanding of the Go programming language. Beginners are highly encouraged to attend this training. While not necessary, it will be helpful if you have completed the Go tour (https://tour.golang.org).

Bio

Tim Raymond is a full-stack developer with over six years of experience writing Go for companies such as USA Today, InfluxData, and Mattel. He's worked on everything from publishing pipelines, gRPC APIs, IoT backends, and interactive React frontends powered by Go backends. Prior to his involvement in the Go community, Tim served as an organizer for the Boston Ruby Group. His professional interests range across web applications, compilers, networking, performance, and cryptography.

Github

Twitter

LinkedIn


An Introduction To Functional Programming In Go

Eleanor McHugh

Summary

Every coder thinks they know functions. Neat little packages of code for hiding away all that ugly implementation detail we only want to write once and would prefer no one else ever saw. In fact we take them so much for granted that when academics wax lyrical about their amazing potential we tend to assume they’re talking about the very same thing and wonder what all the fuss is about. Especially when presented with languages like Haskell which read more like a maths textbook and come with that knowing smile our parents had when telling us to eat our green vegetables: this is better for you.

They’re essentially saying our functions aren’t proper functions. That we’ve embellished them with junk we don’t need and that by using a pure functional language we’ll build healthier programs.

But what if I were to tell you that for all it’s practical engineering bias Go has a pretty robust concept of what a function is and how it can be used that means we can steal insights from the academic world? That we can choose to be functional programmers when we want to and - heresy of heresies - use other paradigms when they make more sense to us?

Join me in a relaxed workshop setting to explore functions in Go both as a mathematical abstraction and useful little machines for getting stuff done. There'll be a couple of simple problems to illustrate the ideas we’ll be covering, plenty of code you can study later, and a few thought-provoking examples which may permanently change the way you think about Go and about coding.

Bio

Hacker Ellie is the sometime writer of A Go Developer's Notebook. Her career has spanned three decades working on projects ranging from mission critical avionics and broadcast transmission networks to banking security and digital trust arbitration. Her languages of choice include Golang, Ruby and Crystal whilst necessity often finds her working with C and Bash.

Ellie is co-founder of Innovative Identity Solutions, a London-based startup focused on driving innovation in digital identity, personal data privacy and secure communications with a particular emphasis on novel blockchain architectures. Along with her business partner she's co-inventor of several patents in digital identity and biometric liveness

As a responsible parent Ellie enjoys polyhedral dice, home brewing and gothic music.

Twitter