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
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, 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.
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.
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.
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:
You will also need to install the following:
The following are the topics covered in this course:
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.
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.
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.
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.