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.
Throughout the day we will learn:
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.
William Kennedy is a managing partner at Ardan Labs in Miami, Florida. Ardan is a group of passionate engineers, artists and business professionals focused on building and delivering reliable, secure and scalable solutions. Bill is also the author of Go in Action and the Ultimate Go Notebook, plus the author of over 100 blog posts and articles about Go. Lastly, he is a founding member of GoBridge and the GDN, which are organizations working to increase Go adoption through diversity.
This workshop is designed to teach developers the complete process of designing, building, and testing a modern Command Line Interface (CLI) application. Students will learn how to build a lightweight CLI application from scratch and then explore the benefits of using the Cobra framework to increase development proficiency. They will also gain insights into building applications for different operating systems, using build tags for feature sets, and releasing and distributing applications across Unix, Linux, and Windows operating systems via popular package managers such as Homebrew and GoFish.
In this workshop, students can expect to learn a range of skills related to building Command Line Interface (CLI) applications using Go. Throughout the workshop, students will learn the steps involved in designing and building a modern CLI application. This will include creating the application from the ground up, as well as exploring the use of the Cobra framework to streamline their development process. Additionally, students will learn about building applications for different operating systems, using build tags for feature sets, and releasing and distributing CLI applications across the three major operating systems using popular package managers like Homebrew and GoFish. By the end of the workshop, students will have a thorough understanding of building CLI applications using Go, and they'll be fully equipped with the skills and knowledge needed to create their own CLI applications or take their existing CLI applications to the next level.
This workshop is aimed at intermediate Go developers who want to expand their skillset and develop powerful, user-friendly command-line interface applications.
Marian Montagnino is a Senior Software Engineer at Netflix with over 20 years of experience in the field. She's been tinkering with the command line interface since the early 90s, when her family first got a home computer. Her fascination with technology led her to become a SysOp (system operator) for Real of Mirage BBS in Fair Lawn, NJ, back in 1995. Marian's early experiences with computers inspired her to pursue her bachelors of science degree in computer science. She's also the author of "Building Modern CLI Applications in Go", drawing from her wealth of knowledge and experience to teach others how to create powerful and efficient command line tools.
With over 15 years of experience, Romaric is a proficient Backend Engineer and SRE, currently holding the CEO position at Qovery. His expertise in building resilient systems has been honed through roles at Ullink and Sirdata. His commitment to programming has made him a reputable and knowledgeable figure in the tech industry.
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 more advanced features such as streaming and interceptors. In the second half of the workshop we'll discuss how to write secure servers.
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. In the second half, we'll discuss engineering aspects of writing services and with focus on securing your code.
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.
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.
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.
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” (https://go.dev/tour). Since generics is a new addition to the language we will go over the topic together and prior knowledge is not necessary.
Ronna is 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 at her workshop at GopherCon Europe 2023.