# GopherCon Europe: Winter In Athens

> GopherCon Europe's ❄️ winter edition will take place in 🇬🇷 Athens, Greece. We are teaming up with GCEU to make this new event come alive with the Go community in mind!

- Date: February 6, 2024
- Time: 9:00AM – 5:00PM GMT+2
- Location: Athens, Greece
- Type: Conference
- Register: https://events.ardanlabs.com/
- URL: https://www.ardanlabs.com/events/gophercon-europe-winter-in-athens/

#### In Partnership with Ardan Labs

**When:** Feb 6th - 8th, 2024

**Where:** Amalia Hotel - Athens, Greece

* * *

#### Ticket Options

<a class="ticket-image" href="http://events.ardanlabs.com/products/gophercon-eu-in-partnership-with-ardan-labs-early-bird-ticket-conference-workshops" target="_blank">
<img src="../../images/events/gceu-athens/early-ticket-soldout.jpg" alt="GopherCon EU Athens early bird ticket sold out" />
</a>


<a class="ticket-image" href="https://events.ardanlabs.com/products/early-gopher-self-paid-only-conference-pass" target="_blank">
<img src="../../images/events/gceu-athens/conf-only-euro.jpg" alt="GopherCon EU Athens conference-only ticket" />
</a>

<a class="ticket-image" href="https://events.ardanlabs.com/products/self-paid-gopherconeu-winter-in-athens-conference-workshop" target="_blank">
<img src="../../images/events/gceu-athens/late-ticket-euro.png" alt="GopherCon EU Athens late gopher ticket" />
</a>

<a class="ticket-image" href="http://events.ardanlabs.com/products/corporate-gophercon-europe-winter-edition-in-collaboration-with-ardan-labs-conference-workshop" target="_blank">
<img src="../../images/events/gceu-athens/corp-ticket-euro.jpg" alt="GopherCon EU Athens corporate ticket" />
</a>

Our **Self-Paid Conference Only Ticket** is an in-person conference admission which does **NOT** include entry to workshops.

The **Late Gopher Ticket & Corporate Ticket** is an in-person full conference admission, including a full-day workshop.

* * *

#### Workshops:

<b>February 7th 2024 at 9:00am.</b>

* Ultimate Go: Software Design with Kubernetes with Bill Kennedy
* Ultimate Go with Miki Tebeka

* * *

<img class="workshop-instructor" src="../../images/events/gceu-athens/bill-workshop.png" alt="Bill Kennedy Ultimate Go Software Design with Kubernetes workshop" />

#### **Full-Day Workshop:** Ultimate Go: Software Design with Kubernetes

**Instructor:** Bill Kennedy

**Level:** Intermediate

**Description:** "As a program evolves and acquires more features, it becomes complicated, with subtle dependencies between components. Over timme, complexity accumulates, and it becomes harder and harder for programmers to keep all the relevant factors in their minds as they modify the system. This slows down development and leads to bugs, which slow development even more and add to its cost. Complexity increases inevitably over the life of any program. The larger the program, and the more people that work on it, the more difficult it is to manage complexity." - John Ousterhout

This class teaches you how to build production-level software in Go leveraging the power of a domain-driven, data-oriented architecture that can run in Kubernetes. From the beginning, you will program along with the instructor as he walks through the design philosophies and guidelines for building software in Go. With each new feature added to the project, you will learn how to deploy to and manage the Kubernetes environment used to run the project. The core of this class is to teach you how to handle and reduce the spread of complexity in the systems you are building.

#### What a student is expected to learn:

Introduction to the class and all the engineering that you will learn.

* Design Philosophy, Guidelines, What to Expect
* Tooling to Install
* Images to Install

**Deploy First Mentality:** We begin to build the service with a focus on the ability to deploy the service in Kubernetes.

* Project Layers, Policies, and Guidelines
* Prepare Project
* Logging

**Kubernetes:** We introduce Kubernetes and get a K8s environment up and running. At this point, everything we do runs in the K8s environment.

* Clusters, Nodes and Pods
* Start the Kubernetes Cluster
* Create/Build a Dockerfile for the Service
* Create/Apply K8s Deployment for the Service

**Kubernetes Quotas:** We introduce applying Quotas to the deployment and discuss the problems that can result.

* Understanding CPU Quotas
* Understanding the Go Scheduler
* Adjust GOMAXPROCS to maximize performance

**Domain-Driven, Data-Oriented Architecture:** We talk about the data-driven, data-oriented architecture that is implemented in the project. We discuss the design philosophy, guidelines, and semantics of how the three layers of App, Business, and Storage work together.

* Architecture Review
* Data Flow Trust vs Non-Trust

#### Prerequisites:

* It is expected that you have been coding in Go for several months.
* A working Go environment running on the device you will be bringing to class.

#### Recommended Preparation:

* Please clone the main repo for the class. https://github.com/ardanlabs/service
* Please read the notes in the makefile for installing all the tooling and testing the code before class.
* Please email the instructor, Bill Kennedy, (bill@ardanlabs.com) for assistance.

* * *

<img class="workshop-instructor" src="../../images/events/gceu-athens/miki-workshop.png" alt="Miki Tebeka Ultimate Go workshop" />

#### **Full-Day Workshop:** Ultimate Go

**Instructor:** Miki Tebeka

**Level:** Beginner/Intermediate

**Description:** This workshop is based on "Ultimate Go" by Bill Kennedy.
The workshop is aimed at developers who have experience with Go and would like to understand how to write more efficient code and understand data semantics and concurrency patterns. We'll cover many coding best practices that help write precise code.

#### Some of the topics we'll cover are:

* Programming vs Engineering
* Polymorphism with interfaces
* Using generics to reduce code size
* Using concurrency
* Performance optimization (both CPU & Memory)

#### Prerequisites:

You should have experience writing Go code. You should have the following installed on your machine:

* GoSDK
* IDE such as VSCode with the Go extension or Goland
* Git
* Graphviz

* * *

#### Featured Speakers

<b>February 8th 2024 at 9:00am.</b>

These awesome speakers will be giving their talks on the final day of the conference <b>(Feb 8th)</b>. The opening words start at <b>9:45am</b> and the opening Keynote is at <b>10:05am</b>.

<img class="gceu-speakers" src="../../images/events/gceu-athens/gceu-athens-speakers.jpg" alt="GopherCon EU Athens featured speakers" />

* * *

**If you have any questions, contact us at events@ardanlabs.com.**

**Note** Our refund policy is a full refund as requested up until 2 weeks prior to the conference.
