Eleni Fragkiadaki

Go routines and thread safe data structures

Using a supermarket queuing system as an example we are going to examine what it means to write code sequentially and the benefits we can get by processing things in parallel. Luckily Go’s routines is a straightforward way to delegate responsibility of executing a piece of code away from the main thread of a program and you can use more than one at the same time!

Off course nothing is gained with zero cost so we are going to also cover what issues and pitfalls we may encounter if we do this in an “unsafe” way. Working with Wait Groups and Locks we are going to define data structures that are safe to read from, that allow us to share data between routines whilst significantly speeding up the entire processing.


Eleni is a Software Engineer with 14 years of experience in leading software teams, building applications and automating manual processes. She holds a PhD in Computer Science, lives in the UK and is the Tech Lead of Business Banking at Monzo Bank. Go is her current programming language and has also worked with PHP and Python. She is particularly interested in the challenges that come with scaling engineering teams, enjoys periodically blogging about all things technology and her experiences of leading teams and working with algorithms.

Buy Now! $49

Includes admission for all talks, real time discussions, and early access to all recorded videos. View the agenda.

Buy Now! $199

At the heart of Machine Learning is the model’s code, but it only accounts for a fraction of the overall code of a production system and the rest is the infrastructure needed to power and utilize it. In this workshop, we will focus on the infrastructure of a Machine Learning application written in Go and integrate the systems needed to deploy a ML model at scale.

Buy Now! $199

At the 'edges' of your program (e.g. when interacting with other services) you will use serialization to send and receive data. Working efficiently with serialization will make your interfaces more flexible, will save you money on CPU & bandwidth and free you to focus on writing business value code.

Buy Now! $199

Whether you are just getting started in Go or have been writing Go code for a couple years, this class will make sure you have what you need to write simple, quick, robust tests. We will start with the basics and introduce table driven tests. Then we'll work through advanced concepts such as testing asynchronous code as well as mocking and injecting code. We’ll finish up with example tests and code coverage. We believe in a hands-on approach to learning, so be ready to write a lot of tests!

Buy Now! $199

This course is tailored to developers learning Go for the first time or having less than one year of Go development experience. This workshop will cover practical, daily Go fundamentals. Starting with the language fundamentals, students will move into interfaces and how they lend to embedding and composition in Go. We will finish up with an overview of concurrency in Go.

Buy Now! $199

This course was designed to take experienced Go developers and walk them through how to use all the Go tooling to make your code perform better. We will start with a complete look at benchmarking from start to finish. Then a walk-through of the profiling tools will be presented. Students will finish up by learning about common optimizations in Go. After learning about these optimizations, you will be able to apply this knowledge to your own code to identify performance issues.