Schedule

Our talks and speakers

Wednesday 16th August 2023

GopherCon UK 2023 is proud to work with Ardan Labs to bring to you two options for a full day of training on Wednesday 16th August 2023, directly before the GopherCon UK conference.

08.30 Brewery Foyer & King George
Brewery Foyer & King George Registration and Refreshments

Please bring a copy of your ticket either printed or on a mobile device.

09.00 Queen Charlotte King Vault
Queen Charlotte Workshop Ultimate Service with Kubernetes Speaker: William Kennedy

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.

More details or Buy tickets

King Vault Workshop Practical Go for Developers Speaker: Miki Tebeka

This workshop is for experienced developers who want to get started with Go. During the workshop we'll solve many exercises.

More details or Buy tickets

Thursday 17th August 2023

Thursday and Friday are our main conference days.

08.00 Brewery Foyer & King George
Brewery Foyer & King George Registration and Refreshments

Please bring a copy of your ticket either printed or on a mobile device.

09.00 Platinum Track
Platinum Track Memory Management in Go: The good, the bad and the ugly Speaker: Liam Hampton

In this session, Liam delves into the crucial topic of memory management, providing a comprehensive overview of what it is, why it matters, and how to harness its power to write highly performant and cost-efficient code. He navigates the intricacies of the Go memory model, highlighting its distinctions and similarities with other popular languages, whilst also explaining the use of built-in tools such as reserved keyword functions and pointers. Liam will also share valuable best practices and illustrate key concepts with both good and bad coding examples. The overall objective of this talk is to provide you with an understanding of whats under the hood and empower you to take control of your code and write more efficient and performant code from the start.

09.30 King George
King George Refreshment break

Light refreshments will be served in the exhibition hall where you will also be able to network with fellow delegates and our sponsors.

10.00 Platinum Track JetBrains Track King Vault Track
Platinum Track The shimmy to the left: why security is coming for engineers Speaker: Adelina Simion & Artur Kondas

Software development is more complex than ever, relying on a wide variety of libraries and third-party tools, in order to build solutions quickly. ... See More

Software development is more complex than ever, relying on a wide variety of libraries and third-party tools, in order to build solutions quickly. DevOps enables us to ship these changes faster than ever, but leaves us vulnerable to security flaws, as we have less time to find and fix dangerous issues. Therefore, in today's world, the only way that engineers can confidently write code is by embracing the shift left of security concerns. By the end of the session, you will learn:
  • The main types of security vulnerabilities and what the OWASP Top 10 is, demonstrated with simple Go examples
  • The importance and best practices of SecDevOps
  • How to change your mindset to successfully assess the security of common cloud architectures
  • Solutions for problems such as credential management, security scanning and development pitfalls, implemented in Go
Join us to learn all about SecDevOps from engineers, not security experts. Writing secure code is something we can all learn! See Less
JetBrains Track Monolith or Microservices or Both: Modern application development using Service Weaver Speaker: Robert Grandl

Service Weaver is an open source distributed programming framework that makes it easier to write, deploy, and maintain high-performance Go applicat... See More

Service Weaver is an open source distributed programming framework that makes it easier to write, deploy, and maintain high-performance Go applications. It enables developers to postpone decisions on how to split the application into different services, and also helps them write fewer and better services. See Less
King Vault Track Scaling Coffee with Goroutines (2 hour tutorial) Speaker: Sadie Freeman

A beginner friendly guide to Goroutines, lets build a coffee shop together in this hands-on tutorial. We'll walk through together from step 1 how t... See More

A beginner friendly guide to Goroutines, lets build a coffee shop together in this hands-on tutorial. We'll walk through together from step 1 how to spin up a small web app and use Goroutines to take advantage of Go's impressive concurrency. By the end you'll be comfortable with:
  • Using goroutines to run multiple functions at the same time
  • Basic docker and kubernetes deployment
  • Scaling resources
  • Running goroutines within goroutines for even better performance
See Less
11.00
Room change

11.15 Platinum Track JetBrains Track King Vault Track
Platinum Track Structured Logging for the Standard Library Speaker: Jonathan Amsterdam

Go 1.21's standard library will feature a new structured logging package, named "slog". slog aims to be easy to use, flexible and fast. In this tal... See More

Go 1.21's standard library will feature a new structured logging package, named "slog". slog aims to be easy to use, flexible and fast. In this talk, I’ll describe the motivation for adding structured logging to the standard library, and I’ll cover the design and API of the package. Along the way, I’ll explain how the design achieves high performance. See Less
JetBrains Track Fun with Algorithms and Data Structures Speaker: Beth Anderson

Go uses many algorithms and data structures within the standard library but what are they, why are some missing, and what are the useful ones? In t... See More

Go uses many algorithms and data structures within the standard library but what are they, why are some missing, and what are the useful ones? In this talk we'll look at many classic data structures and algorithms from sorting and searching to graph traversal such as Dijkstra's Shortest Path and discover how to implement and use these in Go. See Less
King Vault Track Scaling Coffee with Goroutines (2 hour tutorial) Speaker: Sadie Freeman

A beginner friendly guide to Goroutines, lets build a coffee shop together in this hands-on workshop. We'll walk through together from step 1 how t... See More

A beginner friendly guide to Goroutines, lets build a coffee shop together in this hands-on workshop. We'll walk through together from step 1 how to spin up a small web app and use Goroutines to take advantage of Go's impressive concurrency. By the end you'll be comfortable with:
  • Using goroutines to run multiple functions at the same time
  • Basic docker and kubernetes deployment
  • Scaling resources
  • Running goroutines within goroutines for even better performance
See Less
12.15 King George
King George Lunch

A 3 course buffet lunch will be served in the exhibition hall where you will also be able to network with fellow delegates and our sponsors.

13.30 Platinum Track JetBrains Track King Vault Track
Platinum Track Level-Up Real-time Go Applications with Ringbuffers Speaker: Fawaz Ghali

Ringbuffers are great assets for real-time large scale distributed applications. Ringbuffer integration is a replicated, but not partitioned, the d... See More

Ringbuffers are great assets for real-time large scale distributed applications. Ringbuffer integration is a replicated, but not partitioned, the data structure that stores its data in a ring-like structure. You can think of it as a circular array with a given capacity. Each ringbuffer has a tail and a head. The tail is where the items are added and the head is where the items are overwritten or expired. Each client is connected to a ringbuffer that can independently read items between the head and tail, which makes the ringbuffer an ideal candidate for publish and subscribe or efficient data replication use cases. This talk will discuss how you can level up Go applications using ring buffer structure. It will contain a demo hosted on Github. See Less
JetBrains Track Logic Programming in Go Speaker: Walter Schulze

Logic programming is about to go mainstream. Epic Games just released Verse, a functional logic programming language, for Unreal Engine. Gominikanr... See More

Logic programming is about to go mainstream. Epic Games just released Verse, a functional logic programming language, for Unreal Engine. Gominikanren gives you the power of logic programming inside of Go while also leveraging Go's concurrency. Learn about the logic programming paradigm and also how to build your own logic programming language in less than a 1000 lines of Go. See Less
King Vault Track Fun with Generics Speaker: Daniela Petruzalek

It has been over two years since generics were introduced in Go. Have you done anything fun with it? I have! Ever since the "Creative Use of Generi... See More

It has been over two years since generics were introduced in Go. Have you done anything fun with it? I have! Ever since the "Creative Use of Generics Contest" at Gophercon 2021 I have been dreaming with a monads library implementation in Go. In this session I will walk you through the basics of generics, how I used it to build a monads library, the challenges, limitations and a comparison with non-generic Go. In the end, you will be the judge to the question: was it a good idea after all? Topics include:
  • Generics syntax: types, functions, interfaces
  • Generics constraints
  • Monads: what they are, what they eat, where they live
  • An Option type implemented in Go
See Less
14.30
Room change

14.45 Platinum Track JetBrains Track King Vault Track
Platinum Track The 7 Deadly Sins for Gophers Speaker: John Gregory

A light hearted look through 7 of the key mistakes and pitfalls that can befall Gophers both new and seasoned alike, and how to hopefully avoid them! See More

A light hearted look through 7 of the key mistakes and pitfalls that can befall Gophers both new and seasoned alike, and how to hopefully avoid them! See Less
JetBrains Track The context package internals Speaker: Damiano Petrungaro

This talk dives into the context types implementation provided by the standard library as part of the context package, the data structure used, and... See More

This talk dives into the context types implementation provided by the standard library as part of the context package, the data structure used, and how it manages cancellations and deadlines in your applications. See Less
King Vault Track A Go Quiz Speaker: Miki Tebeka

In this talk I’ll challenge your knowledge of Go with several questions. I'll give you some time to think of the answer and then will run the progr... See More

In this talk I’ll challenge your knowledge of Go with several questions. I'll give you some time to think of the answer and then will run the program. Finally we'll discuss why this was the output. Research shows that making mistakes is a great way of learning, so I'll try to trick you. See Less
15.45 King George
King George Refreshment break

Light refreshments will be served in the exhibition hall where you will also be able to network with fellow delegates and our sponsors.

16:15 Platinum Track
Platinum Track Zero Trust Security for your APIs Speaker: Akshata Sawant

Are you a mid-level developer or an architect who’s curious about API Security and how to achieve it? In that case, we’re excited to help!! As you already know APIs are the building blocks of your application network. They are the medium of communication and participate in a lot of data transactions. As per Gartner’s report, API abuse will be the most frequent vector attack, and it’s quite evident. We have heard about API abuses and attacks quite often. To protect your APIs and provide complete security we will adopt the Zero Trust Security model. We will learn about the Zero trust model and its architecture. We will also understand how to implement Zero Trust Security in easy steps. By the end of the presentation, you’ll have a fair idea about API Security and how to protect your API ecosystems using Zero Trust Security. Come along with your queries for us!

17.00 The King George
The King George Mid Conference Social

The conference social is open to all conference attendees and gives you a chance to relax and meet other delegates after a big day of learning. More details »

Friday 18th August 2023

Friday continues with the second day of the main conference. Again, you will be able to attend a morning keynote followed by three talk slots throughout the day. During each talk slot you'll have the choice between three different tracks. There will be 3 cake & coffee breaks, a 3 course lunch, and rolling tea, coffee and soft drinks included. The conference will close on Friday with a final featured keynote and a prize raffle from our sponsors.

08.00 The Brewery Foyer & King George
The Brewery Foyer & King George Registration and Refreshments

Please bring a copy of your ticket either printed or on a mobile device.

09.00 Platinum Track
Platinum Track State of the Go Nation! Speaker: Cameron Balahan

Go has come a long way in recent years; From the IDE to package management to changes in the language itself, Go today provides a more productive, coherent experience than ever before. In this talk, we'll review the last several years of advancements in the Go language and the Go toolchain, as well as how the Go team leverages its portfolio of projects to create complete, developer-centric solutions. By digging into examples of what we're working on now, we'll also share a peek of what we're most excited about in the years to come.

09.30 The Brewery Foyer & King George
The Brewery Foyer & King George Refreshment break

Light refreshments will be served in the exhibition hall where you will also be able to network with fellow delegates and our sponsors.

10.00 Platinum Track JetBrains Track King Vault Track
Platinum Track Efficient Debugging and Logging with OpenTelemetry in Go Speaker: Konstantin Ostrovsky

We use OpenTelemetry extensively at Torq. In fact we are tracing 100% of our traffic. We started building the product with the idea in mind that we... See More

We use OpenTelemetry extensively at Torq. In fact we are tracing 100% of our traffic. We started building the product with the idea in mind that we dislike logs and want to use them as little as possible. Since then we have grown to 30 engineers and everyone is in love with OpenTelemetry. We use it during development and to debug issues in production. We have automations built around it, special middleware we developed for our internal libraries to report traces (orm, pubsub etc). See Less
JetBrains Track Understanding Language Server Protocol - autocomplete, formatting Speaker: Adrian Hesketh

Part of Go's brilliant developer experience is the integration of gopls with text editors like VS Code, Neovim to provide features. Text editors us... See More

Part of Go's brilliant developer experience is the integration of gopls with text editors like VS Code, Neovim to provide features. Text editors use the Language Server Protocol standard to communicate. This standardisation allows multiple text editors to benefit from a single implementation. In this session, we'll go deeper to find out what's being passed between text editors and the language server, how we can create our own LSPs with Go, and how a project is building on top of the gopls LSP to add autocomplete features to HTML templates. See Less
King Vault Track Whispering into the Future: Reinventing Speech-to-Text Transcriptions with Go and Whisper (2 hour tutorial) Speaker: Pratim Bhosale & Sacha Arbonel

You have to build the transcriptions feature as good as Google and Zoom but we don't have a similar budget". That was a challenge we faced and solv... See More

You have to build the transcriptions feature as good as Google and Zoom but we don't have a similar budget". That was a challenge we faced and solved with hundreds of coffee cups and incredible hair loss, our solution is cost-effective, open-source, and fits within our Go stack.

Whisper.cpp is a lightweight implementation of Open AI’s Whisper speech-to-text model, that comes with Go bindings. This solution is leveraged by a lot of emerging startups and existing companies. See Less
11.00
Room change

11.15 Platinum Track JetBrains Track King Vault Track
Platinum Track The Adventurer’s Guide to Forking the Go Runtime Speaker: Dominic Black

It is generally seen as a scary thing to do: modifying the Go runtime. However, by creating a rolling fork, we can add functionality such as distri... See More

It is generally seen as a scary thing to do: modifying the Go runtime. However, by creating a rolling fork, we can add functionality such as distributed tracing to regular Go applications without needing modifications to the applications or the library code they use.

In this talk, we walk through adding new functionality to Go, starting by showing how Go’s tooling makes it simple to create and maintain a fork. How we can add new functionality to the runtime library, and modify core Go concepts, such as Go routines to carry additional information.

We’ll then use this knowledge to build a demo version of a distributed tracing system which can perform request tracing all the way from a HTTP request hitting an API server, going through multiple micro-services to a query being made to your database server. See Less
JetBrains Track The Hacker's Guide to JWT Security Speaker: Patrycja Wegrzynowicz

JSON Web Token (JWT) is an open standard for securely transmitting information between parties as a JSON object. JWT is widely used in modern appli... See More

JSON Web Token (JWT) is an open standard for securely transmitting information between parties as a JSON object. JWT is widely used in modern applications as a stateless authentication mechanism. Therefore, it is important to understand JWT security risks, especially when broken authentication is among the most prominent security vulnerabilities according to the OWASP Top 10 list.

This talk guides you through various security risks of JWT, including confidentiality problems, vulnerabilities in algorithms and libraries, token cracking, token sidejacking, and more. In live demos, you’ll learn how to hijack a user account exploiting common security vulnerabilities on the client-side, on the server-side, and in transport. You’ll also find out about common mistakes and vulnerabilities along with the best practices related to the implementation of JWT authentication and the usage of available JWT libraries. See Less
King Vault Track Whispering into the Future: Reinventing Speech-to-Text Transcriptions with Go and Whisper (2 hour tutorial) Speaker: Pratim Bhosale & Sacha Arbonel

You have to build the transcriptions feature as good as Google and Zoom but we don't have a similar budget". That was a challenge we faced and solv... See More

You have to build the transcriptions feature as good as Google and Zoom but we don't have a similar budget". That was a challenge we faced and solved with hundreds of coffee cups and incredible hair loss, our solution is cost-effective, open-source, and fits within our Go stack.

Whisper.cpp is a lightweight implementation of Open AI’s Whisper speech-to-text model, that comes with Go bindings. This solution is leveraged by a lot of emerging startups and existing companies. See Less
12.15 King George
King George Lunch

A buffet lunch will be served in the exhibition hall where you will also be able to network with fellow delegates and our sponsors.

13.30 Platinum Track JetBrains Track King Vault Track
Platinum Track Boosting Test Coverage for Microservices Speaker: Laura Vuorenoja

Unit tests are the bread and butter of any project's quality assurance process. We software developers have been used to writing them and measuring... See More

Unit tests are the bread and butter of any project's quality assurance process. We software developers have been used to writing them and measuring code coverage in our continuous integration pipelines for years. There is tooling that helps us find untested areas, records the coverage percentages, and notifies us if the changes cause a drop in the test scope. Still, one can not test all features thoroughly with unit testing in all projects. Sometimes mocking the external functionality is so laborious that wasting the team's resources on creating the mock code doesn't make sense. Or it may even be impossible to reproduce the external functionality with the mockups. See Less
JetBrains Track Learn how debuggers work by building your own one Speaker: Sayani Bhattacharjee

Debuggers are one of the most useful tools while reading and writing code. Ever wondered if you can build your own? In this talk, we will learn and... See More

Debuggers are one of the most useful tools while reading and writing code. Ever wondered if you can build your own? In this talk, we will learn and build one.
  • How to move beyond putting print statements while debugging code? How to pause the code at execution and inspect variables at that instance?
  • Delve is a popular debugger in Go that is used by IDEs like Goland, VScode, vim-go. This talk aims to go through the basic architecture of delve, the features, and components of every layer, and understand stack trace.
  • We will walk through a sample program and set breakpoints, and get the address of the instruction in the debug output of the assembly language, which is encoded in DWARF format, and then parse it. We will talk about various debugging information entries that DWARF defines.
  • We will see how to use ptrace to rewrite data in the above address
  • Next, we will learn how CPU registers can be manipulated usingPtraceGetRegs and PtraceSetRegs.
  • The sample code will also demonstrate how step into, step out works in a procedure
See Less
King Vault Track How NOT to Write a Test in Go Speaker: Amir Malka

As developers we know we have to write tests, but we also mostly hate this part of the job––many times because we just don't know where to get star... See More

As developers we know we have to write tests, but we also mostly hate this part of the job––many times because we just don't know where to get started. If you want to get the basics through some advanced use cases of testing in Go - this is the talk for you!

In this talk we'll provide some good working practices for how to write good tests for your Golang apps. We'll start with the basics of unit testing, how to avoid tests that behave non-deterministically, as well as avoiding race conditions. We'll walk through how to incorporate a linter for good, clean code practices and testing, and how to leverage mocks and interfaces (high level design patterns). We'll wrap up with a practical example of how to properly automate and set up your tests so they run correctly through a Github Actions example. See Less
14.30
Room change

14.45 Platinum Track JetBrains Track King Vault Track
Platinum Track Make developers fly; Principles for platform engineering Speaker: Mahavir Teraiya

How can your company help developers to fly, but not crash down? The answer is platform engineering, which is the discipline of building self-servi... See More

How can your company help developers to fly, but not crash down? The answer is platform engineering, which is the discipline of building self-service internal developer platforms (IDPs) to simplify software delivery for product teams. In this talk, you will learn how platform engineering evolved from the DevOps movement and what principles and best practices make a good implementation. Finally, we take a look at reference architectures that can power your platform. See Less
JetBrains Track Understanding the Go Compiler Speaker: Jesús Espino

The Go compiler is an excellent but complex tool. For most Go programmers, it’s just that - a tool. It doesn’t matter what happens between my "go b... See More

The Go compiler is an excellent but complex tool. For most Go programmers, it’s just that - a tool. It doesn’t matter what happens between my "go build" and the execution of my binary because the go compiler works like a charm. But if you are a curious person that wants to know more about this process, this is probably your talk.
I’ll go through the whole process of the compilation of one of the most straightforward go programs that you can write: a hello world. From that source file, with just plain text, into an optimized machine-specific binary code, passing through the transformations in between. See Less
King Vault Track Go security pitfalls; 2 lessons from the battlefield at Grafana Labs Speaker: Jeremy Matos

Go language has proven to be very secure yet it is not bullet proof. We will analyse in details 2 significant vulnerabilities in Grafana that were ... See More

Go language has proven to be very secure yet it is not bullet proof. We will analyse in details 2 significant vulnerabilities in Grafana that were ultimately caused by confusion around Go usage. And discuss how we gained confidence that fixes were not missing anything.
  • How to move beyond putting print statements while debugging code? How to pause the code at execution and inspect variables at that instance?
  • Delve is a popular debugger in Go that is used by IDEs like Goland, VScode, vim-go. This talk aims to go through the basic architecture of delve, the features, and components of every layer, and understand stack trace.
  • We will walk through a sample program and set breakpoints, and get the address of the instruction in the debug output of the assembly language, which is encoded in DWARF format, and then parse it. We will talk about various debugging information entries that DWARF defines.
  • We will see how to use ptrace to rewrite data in the above address
  • Next, we will learn how CPU registers can be manipulated usingPtraceGetRegs and PtraceSetRegs.
  • The sample code will also demonstrate how step into, step out works in a procedure
See Less
15.45 The Brewery Foyer & King George
The Brewery Foyer & King George Refreshment break

Light refreshments will be served in the exhibition hall where you will also be able to network with fellow delegates and our sponsors.

16.15 Platinum Track
Platinum Track Incident Management - Talk the Talk, Walk the Walk Speaker: Hila Fish

Incident management can be challenging and throw you curveballs with unexpected issues, resulting in data loss, downtimes, and overall money & hours of sleep going to waste, BUT! There are practical things you could do to make it a smoother process and handle it better.

Remember when we were at school, and people said - "Actively listening in class guarantees 50% prep for the upcoming test"? The same goes for being proactive at work in ways that will instantly prepare you to manage incidents better (at night or in general).

In this talk, I'll cover the proactive ways you could take and incorporate into your day-to-day routine, in order to prepare you for a smoother and more efficient incident management process.

I will also show the best practices I've finalized over the years that helped me get a clear vision of how to manage production incidents in the quickest & efficient way possible.

Embracing the tips I'll give you will guarantee you'll not only talk the talk but also walk the walk when it comes to incident management.

17.00
Post Conference Social

The conference social is open to all conference attendees and gives you a chance to relax and meet other delegates after a big day of learning. More details »

Stay up-to-date with GopherCon UK

Enter your email address to join the GopherCon UK mailing list and be the first to hear our latest news and announcements.