Workshops

Profiling and Tracing Go Applications

Bill Kennedy with Ian Juma

When

May 26th: 15:00-21:00 Central European Time

Summary

This class teaches how to use the profile and trace tooling in Go. We will use practical programs to find performance problems and based on what we find, refactor code to gain better performance.

Language Mechanics / Semantics

Memory (Stacks / Heap) Tooling

Program Tracing

Micro-optimizations

Profiling Running Applications

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


Ian Juma is a Software Engineer at Twiga Foods, a Kenyan based tech-startup aggregating Africa's retail demand. He's passionate about writing high quality software and solving complex problems. He's served as an organiser for the Nairobi Go and Python Groups, and enjoy's helping build communities. He's widely experienced, having worked as an SRE and Software engineer across various industries. He has worked with many technologies ranging from K8, pipelines, web apps with modern frameworks, API's, docker, etc. He's interested in learning new technologies, reading, and playing football.

Twitter | Github | LinkedIn



BUY TICKET

PRACTICAL GO: The Skills You’ll Need to Work with Go

Johnny Boursiquot and Kevin Siende

When

May 26th: 15:00-19:00 Central European Time

Summary

This workshop helps developers get up to speed with Go from the ground up, covering basic language syntax through to concurrency. Along the way, you learn best practices for project layout, testing, reusability, and dependency management. You get practical, hands-on experience tailoring your development environment for Go development, building CLI tools, writing HTTP servers, and developing concurrent programs with goroutines and channels. The aim of this course is to build your confidence in starting new projects in Go.

Prerequisites

This workshop is aimed at developers with some level of experience with other languages and/or with some exposure to Go. We'll assume you are already familiar with basic programming concepts like conditionals, looping, arrays, maps, etc. and we won't spend a lot of time explaining.


You are also expected to know how to:

  • Work with a shell environment (bash, Windows PowerShell, cmd.exe, etc)
  • Work your way around your file system (cd, ls, mkdir, mv, etc)
  • Work with environment variables
  • If you are completely new to Go - as in "I've never even seen the syntax or written a 'Hello World' program" - you can get a feel for the syntax with the following resources:
  • The Go Tour
  • Go by example

You will also need to install the following:

  • Git
  • Go (1.13 or higher)
  • Visual Studio Code (highly recommended) or an editor with support for Go syntax

What a student is exepected to learn

The following are the topics covered in this course:

  • Language Basics
  • Syntax and Types
  • Packages
  • Arrays and Iteration
  • Slices
  • Maps
  • Pointers
  • Functions
  • Errors
  • Structs
  • Interfaces
  • Command Line Tools
  • Testing
  • Interfaces
  • HTTP Servers
  • Dependencies
  • Concurrency Basics
  • Goroutines
  • Channels

Bio

Johnny Boursiquot is a multi-disciplined software engineer with a love for teaching and community-building. He is the founder and organiser of the Baltimore Go User Group and has served as an organiser of both the Boston Ruby User Group and the Boston Go User Group. He stays busy as a speaker, trainer, podcast host, and diversity advocate within the Go community through GoBridge. He is currently a Site Reliability Engineer at Salesforce’s Heroku.

Twitter | LinkedIn


Kevin Siende is a Software Engineer with Andela, an engineering talent sourcing company. He has 7+ years development experience building Single Page and Web based applications. Working with several companies in multiple countries including small/medium scale companies and start ups to multinational corporations. He also spends a lot of his time mentoring and tutoring developers in the local community and through the Andela Learning Community.

Github | LinkedIn


BUY TICKET

Application Security

Anna-Katharina Wickert

When

May 26th: 15:00-19:00 Central European Time

Summary

This workshop is for all gophers who not only want to build cool applications and also want to include security into them. Application security is a complex topic and can be hard to get into Thus, we will go the first steps with you into the rabbit hole of (Go) security.

Together, we start from a very simple web application, learn basic security concepts, and especially how to harden our application in an easy way against those attacks.

To achieve this aim, we’ll explain shortly to you an attack to provide you with the necessary information to conduct the attack. After you have seen by yourself that your application is vulnerable, we will together fix this issue and move forward.

By the end of the workshop, you will have a simple web application that is protected against basic web security attacks, like CSRF, avoid (at least one) memory safety vulnerability, and supply chain attacks.

Prerequisites

  • Each student should have a basic understanding of the programming language Go and software development.
  • We highly encourage Go beginners to attend this training and recommend at least the completion of the Tour of Go.
  • Experience with security is a bonus and not required.
  • The philosophy of our workshop is to understand new things by doing, and especially by “breaking” their solution before improving it. Thus, we expect a student to be okay
  • with critically reflecting on their solution and failing.

What a student is exepected to learn

  • Students will learn to harden a simple (web) application in Go against basic web security attacks, e.g., CSRF, circumvent the memory safety of Go, and pin their dependencies to avoid supply chain attacks.
  • During the workshop, we will challenge every student to reflect on their code and understand the diversity and complexity of security.
  • After the workshop, every student will be able to dig into the rabbit hole of (go) security a bit more and check their application against the presented attack vectors.
  • A student of this workshop will not attend a security competition, like capture the flag, nor will a student have a theoretical or an in-depth/advanced introduction to any of the covered topics.

Bio

Anna-Katharina Wickert loves to share things she is thrilled about. In her day-to-day job, she’s a Ph.D. student at Technische Universität Darmstadt. There she inspects (crypto) misuses in Java and recently looked into the security issues caused by the usage of the unsafe package in Go. In her free time, she organises the Frankfurt Rhein-Main chapter of the Go user group, loves healthy food especially vegetables, enjoys the time on her yoga mat, solving problems at the boulder gym, and spending time with her heart people.

Twitter | Github | LinkedIn


BUY TICKET