GopherCon Europe

30.5 - 1.6.2019, Tenerife

Eventbrite - GopherCon EU 2019 - Canary Islands

GopherCon Europe 2019


Last year's GopherCon Europe in the far-north (Iceland) was a great success! This year GopherCon Europe turns to the far south of the EU, the remote and volcanic coast of the Canaries, Tenerife!


Stay tuned for more speaker announcements and more!
Watch the talks from last year on our YouTube Channel

Schedule

May 30th

All day Workshops

May 31st

Time Track 1 Track 2
9:00-9:15 Opening words
9:15-9:45 Opening Keynote
9:45-10:00 Break
10:00-10:30 Talk Talk
10:30-10:45 Break
10:45-11:15 Talk Talk
11:15-11:30 Break
11:30-12:00 Talk Talk
12:00-13:30 Lunch
13:30-14:00 Talk Talk
14:00-14:15 Break
14:15-14:45 Talk Talk
14:45-15:30 Coffee break
15:30-16:00 Talk Talk
16:15-16:45 Closing keynote
16:00-16:15 Break
16:45-17:00 Final words

June 1st

10:00-10:30 Community gatherings and Lightning Talks
(Follow our updates for the call for communities!)

Location

Hard Rock Hotel, Tenerife, Spain


Speakers

More to be announced soon

MCs

Workshops

  • Bill Kennedy

    Bill Kennedy

    Advanced Ultimate Go

    Bill Kennedy

    Advanced Ultimate Go

    This class has been designed over the past 4 years and goes beyond just being a Go language class. There will be very little time spent on specific Go syntax. Our time will be spent learning how to read and understand Go code with a big focus of "if performance matters" then these things matter. During the day we will talk about code design, semantics, guidelines, mechanical sympathy and data oriented design.

    Language Mechanics / Semantics

    • - Pointers
    • - Data Semantics
    • - Control Flow Design
    • - Decoupling Mechanics
    • - Compositional Design

    What a student is expected to learn

    Everyone is going to be mentally exhausted by the end of the day. We will be challenging every student to think about what they are doing and why. In the 4 years we have taught this material, we never had someone not appreciate the class and feel like they are a better developer for it. If you want to be a better Go developer, code reviewer, designer and architect, this is the class you want to take.

    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 Go Tour.

    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.

  • Miki Tebeka

    Miki Tebeka

    The Daily Go

    Miki Tebeka

    The Daily Go

    Writing code is hard, maintaining it is even harder. In this workshop we'll cover the daily tasks a typical gopher goes through (aka "best practices").

    We will write together an example project and cover the following subjects:

    • Design decisions
    • Code structure
    • Managing dependencies
    • Documentation
    • Testing
    • Debugging
    • Logging & metrics
    • Performance tuning
    • Continuous integration
    • Deployment strategies
    • Development workflow & code reviews

    There will be a lot of quotes, bad jokes and lines of code.

    Prerequisites

    Working knowledge of Go & the command line, familiarity with git.

    Bio

    Miki has a B.Sc. in computer science from Ben Gurion University. Has also studied there toward an M.Sc. in computational linguistics.

    Miki had worked in many companies from small startups to big multinational corporations and has written software in many areas from linkers and hardware simulators to news analysis for high frequency traders and handling big data pipelines.

    Miki has a passion for teaching and mentoring. He has spent many hours giving workshops on various technical subjects all over the world, he also mentored many young developers on their way to success.

    Miki wrote Forging Python, is an author in LinkedIn Learning, an organizer of Go Israel Meetup, GopherCon Israel & PyCon Israel

  • Mark Bates

    Mark Bates

    Advanced Testing Techniques

    Mark Bates

    Advanced Testing Techniques

    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 work through advanced concepts such as testing asynchronous code, as well as mocking and injecting code. We'll finish up with looking at some popular testing libraries and CI (continuous integration) approaches. We believe in a hands-on approach to learning, so bring your laptops and be ready to write a lot of tests! What a student is expected to learn: Everyone will have a strong understanding of each part of testing.

    The test package will be covered in depth, different approaches to table-driven testing will be taught, as well as the numerous options for running tests and test suites. From there, a deep dive into unit, api, and system level testing will be covered. Students will learn how to test Net/HTTP packages, and how to mock out tests and create test harnesses. TDD (Test Driven Development) and BDD (Behavior Driven Development) will be covered, and testing packages that correspond to each will be presented as well. Finally, students will learn the basics on setting up Continuous integration both locally and at the server.

    Prerequisites: A basic understanding of the Go programming language. Beginners are highly encouraged to attend this training. While not necessary, it will be helpful if you have completed the Go tour.

    Testing Basics

    • *testing.T
    • Error vs. Fatal
    • Failure Messages
    • Running go test
    • Test Arguments and options

    Unit, API, And System Level Testing

    There are many different approaches to testing your code. The most common ones are Unit, API, and Sytem Level testing. There are also other ways to refer to these levels of testing, such as White Box, Black Box, and Integration testing. This module will cover the pros and cons of both, as well as demonstrate what makes a good test using the different approaches.

    Table Driven Testing

    Table driven tests can be used to cover a lot of ground quickly while re-using common setup and comparison code. Table driven testing is not unique to Go, however, it is very powerful. In this module we will cover the different ways to create, run, and isolate table driven tests.

    Testing With Net/HTTP

    Testing Net/HTTP applications can be challenging. Luckily, Go addresses this and ships specific testing packages designed to use in testing Net/HTTP applications. This module will cover the different ways to do both unit testing and integration testing for these types of applications.

    Mocking Tests

    It's easy to decouple packages in Go using interfaces. Because of this, testing can also be much easier. However, you typically want to mock out your interfaces in tests so that unit testing is much easier. This chapter will cover how to write a mock for a service to enable easy and precise testing.

    Test Harness

    Test Harnesses are a common practice used to test complex parts of your program under varying conditions. Test harnesses are often used for conditions and/or use cases that are otherwise difficult to simulate (load, for example). This module will show how to build test harnesses for reuse and ease of complex testing scenarios.

    Testing Asynchronous Tasks

    Many times you may be testing parts of your code that have service dependency that run for an unknown amount of time. Examples of these may be task queues, distributed system calls, etc. Because you don't know how long they may take to execute, testing them can present some challenges. In this module we will learn how to set up tests both effectively and efficiently for testing async processes.

    Test Driven Development (TDD)

    Test-driven development (TDD) is an advanced technique of using automated unit tests to drive the design of software and force decoupling of dependencies. The motto of TDD is Red, Green, Refactor. This module will cover the common setup and automation to create a very rapid, efficient, and productive feedback cycle for TDD style testing.

    Behavior-Driven Development (BDD)

    Behavior-Driven Development (BDD) was derived from TDD. Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development.

    Testify

    Testify is a toolkit with common assertions and mocks that plays nicely with the standard library. Outside of the standard library, it is the most imported package in the Go ecosystem. This module will cover the basics of how to use and implement this common testing package.

    Continuous Integration

    Continuous Integration (CI) is the practice of merging all developer copies to a shared mainline several times per day to determine if any specific code is going to break or adversely affect the project. There are numerous CI tools at our disposal today. This module will cover not only the more common tools, but best practice strategies to get the most out of your CI setup. It will also over pre-ci steps that are common for developers to use to catch situations that will break the build prior to even being sent to the ci service.

    Finalize

    This module covers where to get more support on Go, recommends books and videos, and list contact information for our instructors.

    Bio

    Mark Bates is a full stack web developer with over 18 years of experience building high quality scalable applications for companies such as Apple, USA Today, Klarna, and Palm. He has written three books, “Distributed Programming with Ruby”, “Programming in CoffeeScript”, and “Conquering the Command Line”. Mark has spoken at conferences around the world, has led user groups such as Boston Ruby and Boston Golang, and has helped to organize conferences such as GothamGo and GopherCon. Mark is the co-founder of PaperCall.io, a platform for connecting technical events with high quality content and speakers. Mark is also a partner at Gopher Guides, the industry leader for Go training and conferences. In his spare time Mark leads development of the Go web framework Buffalo.

  • Elena Grahovac & Daniel Mahlow Elena Grahovac & Daniel Mahlow

    Elena Grahovac & Daniel Mahlow

    Production ready cloud-native services with Go and Kubernetes

    Elena Grahovac & Daniel Mahlow Elena Grahovac & Daniel Mahlow

    Production ready cloud-native services
    with Go and Kubernetes

    Description

    It is easy to fall in love with a new programming language, tool or architectural approach, especially as it gains in popularity. Usually, we start trying new technology by understanding a "tour" or the "quick start" guidance. However, in practice, it is not always so simple to bridge the gap between our first web server and a real production-ready application, this is especially true if this application should be prepared for a cloud-native infrastructure.

    What a student is expected to learn:

    This workshop presents one of the possible strategies for writing cloud-native services with Go and Kubernetes. During the workshop, we will discuss how to design stable, scalable, reliable and performant applications. Step by step, we will write a service from scratch and prepare it for deployment. We will try continuous integration and continuous delivery with a prepared Kubernetes platform and discuss the benefits of this way.

    • Requirements for cloud-native services
    • How to structure a Go application
    • Code quality
    • Dependency management and immutability
    • Observability
    • Operability
    • Containerization and security basics
    • Versioning and configuration management
    • Automation and CI/CD pipelines

    Prerequisites:

    The workshop is the most interesting for those who already started learning Go but still considers themselves as beginners.

    If you would like to join this workshop as a participant, you need to install:

    • A stable version Go (the newest version is recommended)
    • Any IDE or editor to be able to write in Go
    • Docker Community Edition (https://www.docker.com/community-edition) to build and run containers with the services
    • A free GitHub account - to store and publish the source code
    • A Git client configured to work with your GitHub account
    • If you use Windows, please also install Cygwin (https://cygwin.com/install.htm)

    During the workshop, we will also install and set up some additional tools to work with Kubernetes.

    Bio

    Elena is a Lead TechOps Automation Engineer at N26 and a co-host of the GolangShow podcast. With 11+ years of overall experience in IT, she values DevOps culture and passionate about automation, software architecture and site reliability engineering topics.

    Daniel is a Systems Engineer & Co-founder, Contiamo. He loves solving complex problems and wearing multiple hats. After his CS studies he worked as a systems engineer in a variety of environments, from large corporates to small incubators and co-founded the data science platform startup Contiamo in Berlin, where he leads technical operations. Avid runner and VR/AR enthusiast.

Sponsorship

    We are looking for sponsors!

    Please contact team@gophercon.es to discuss sponsorship packages

Visa Assistance Letters

We are happy to provide you with an invitation letter for the conference, in case you need one upon applying for a visa. Purchase a ticket and e-mail us the confirmation, as well as your details (full name, passport number and any other information you'd like us to list in the letter) to event@gophercon.es. In case your visa is not approved, the full amount of your ticket will be refunded.

Student Discount

Your talent and enthusiasm could take you all the way to GopherCon in Tenerife! If you follow the next steps you can get a student discount.

Step 1. Have a valid Student Card

Step 2. Make a GitHub repo where you have used Go (for example: https://exercism.io/tracks/go)

Step 3. Send us an e-mail to team@gophercon.es confirming you:

  • - have a student card that is valid at least until the conference date and
  • - a link to the repository

After all the steps are completed, you will receive your discount code which will allow you to buy in the reduced price. In order for the entrance to be valid, you must present your Student Card at the conference.

Subscribe to our mailing list

We will only write you when we have big updates, like speakers announced or tickets are on sale.

Subscribe to our mailing list

* indicates required
```