Workshops

Ultimate service with kubernetes

Bill Kennedy

When

July 29th: 09:00-17:00 Central European Time

Summary

Learn how to build production-level services in Go with a focus on macro-level engineering decisions.

This class teaches how to build production-level services in Go with a focus on macro-level engineering decisions. From the beginning you will pair program with the instructor, walking through the design philosophies and guidelines used to engineer the code. With each new feature, you will learn more about the transition from programming to engineering and the points of refactoring required to write production level applications. Throughout the class, Go modules and Kubernetes will be a focus. Everyone will be making better engineering decisions after this class.

What a student is expected to learn

Through out the day we will learn:

  • Modules
  • Project Setup
  • Routing Basics
  • Web Framework
  • Middleware
  • Kubernetes
  • Business CRUD
  • Database Support
  • REST API

Prerequisites

A basic understanding of the Go programming language. Students do not have to be expert Go users but they will get the most from the workshop if they have completed the majority of the Tour of Go.

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 | LinkedIn

BUY TICKET

Getting started with GRPC

Miki Tebeka

When

July 29th: 09:00-13:00 Central European Time

Summary

gRPC is a popular open source high-performance RPC (remote procedure call) framework. gRPC has schema definition, streaming support, interceptors and much more. This workshop will teach you how to write a gRPC server and client in Go, including some more advanced features such as streaming and interceptors.

What a student is exepected to learn

During the workshop we'll build a car hailing service, we'll code both the server and the client. Once the basic request-reply is in place, we'll add more advanced features such as streaming, interceptors, metadata and more. We'll also cover operational concerns. If time permits, we'll add a REST front end using grpc-gateway.

Prerequisites

  • You should know how to program in Go and have some experience with the command line
  • You will need a working Go environment and an IDE such as VSCode (with the Go extension or GoLand
  • You will need to have the protoc compiler installed. You can install it from you package mangers (e.g. brew, apt, choco) or download it

Bio

Miki is an old Gopher and even older developer :) He spends his time teaching (either via his company or via ArdanLabs), writing books, creating video courses, blogging and of course - writing code (either open source or for customers). Miki is one of the organizers of GopherCon Israel and the Go Israel Meetup.



Twitter


BUY TICKET

Learn Go by writing a parallel downloader

Miki Tebeka

When

July 29th: 14:00-18:00 Central European Time

Summary

Learn Go in a practical way - we'll write a utility to download a file over HTTP in parallel. During the project we'll cover the parts in Go that are required to complete the project.

What a student is exepected to learn

We'll discuss many things while developing the program: Basic language feature, common data structures, concurrency (goroutines & channels), error handling and more. We'll also cover the engineering of a Go project - how to structure code, how to test and more.

Prerequisites

  • You should know how to program and have some experience with the command line. If you don't have experience writing Go code, please go over the tour
  • You will need a working Go environment and an IDE such as VSCode (with the Go extension) or GoLand
  • Some knowledge of the HTTP protocol will help

Bio

Miki is an old Gopher and even older developer :) He spends his time teaching (either via his company or via ArdanLabs), writing books, creating video courses, blogging and of course - writing code (either open source or for customers). Miki is one of the organizers of GopherCon Israel and the Go Israel Meetup.



Twitter


BUY TICKET

Object Oriented Design with Go

RONNA STEINBERG

When

July 29th: 09:00-13:00 Central European Time

Summary

Is Go an object oriented programming language? Not exactly. Does it offer options for object oriented design? You bet! In this workshop we are going to explore the features that the language offers and how to use them with concrete examples, including the newly added feature - Generics. This workshop is ideal for anyone struggling to expand their codebases as well as for people new to Go who are looking to get an idea of how to work with it and evaluate if it’s the right language for them.

What a student is exepected to learn

In order to dive into the philosophy of object oriented programming in Go we will go over packages, the type system, interfaces, generics and code generation as well as some other lesser utilized capabilities of the language and see how they can contribute to our designs. You can expect to expand your toolkit to design your projects to express and do exactly what you intend for them to do.

Prerequisites

Some coding experience in any programming language and basic familiarity with the Go programming language are ideal, if you are completely new to Go you can go over "A Tour of Go". Since generics is a new addition to the language we will go over the topic together and prior knowledge is not necessary.


Bio

Ronna is an Engineering Manager at Delivery Hero, a Google developer expert for the Go programming language, a Women Who Go organizer and GoTime’s unpopular opinion hall of famer. After 20 years in tech Ronna knows that she is the sum of the opportunities that were given to her, which is why she spends her time helping others find opportunity. She has been crafting hands-on workshops in Go since 2017 and is looking forward to seeing you in her upcoming new workshop “A Path to Object Oriented Design in Go”.



Twitter


BUY TICKET

Writing a Caddy module

Mohammed Al Sahaf

When

July 29th: 14:00-18:00 Central European Time

Summary

Caddy is an extensible, cross-platform application server written in Go. Its standard offering contains an HTTP server with TLS and PKI apps, all of which can be extended with Go. Learning to extend and deploy Caddy can simplify your infrastructure, improve uptime, lower costs, and increase your profitability and developer happiness. Caddy's unique, modular architecture allows it to be extended to unify and simplify infrastructure, configuration, and deployments. It makes 12-factor app development a breeze: config loading, logging, dependency injection, and others are all handled for you. You just need to learn the module lifecycle, what a basic module looks like, and how to plug it into Caddy. Then adding your business logic is a piece of cake.

What a student is exepected to learn

The tutorial will hold the hands of the gophers to develop Caddy modules. It will introduce the building blocks of Caddy modules, the different kinds of modules, the module lifecycle, how Caddy architecture supports its modules, and finally how to develop a module. At the end of the workshop, attendees should be able to write Caddy app modules, host and guest modules (e.g. HTTP handlers), and configuration adapters.

Prerequisites

Attendees are expected to have intermediate experience and knowledge of programming in Go, know how to use the command line, and know HTTP semantics. The students should have a workstation with access to a terminal and has Go and their favorite IDE/editor installed.


Bio

Mohammed S. Al Sahaf is a product manager by day, gopher and student in the evenings. He created Caddy SSH and maintains the Caddy nginx-adapter and transform-encoder

Twitter | GitHub | LinkedIn | Website


BUY TICKET