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


We are following the Go Community Code of Conduct

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-13:30 Community gatherings and Lightning Talks
(Follow our updates for the call for communities!)

Location

Hard Rock Hotel, Tenerife, Spain


Speakers

  • Julie Qui

    Julie Qui

    Building Modules Discovery

    Software Engineer - Google

    @JQiu25
    Julie Qui

    Building Modules Discovery

    Description

    Today Go users are forced to visit a number of different sites to find packages. To solve this problem, the Go team is building a modules discovery site. In this talk, I will discuss how to go about

    Bio

    Julie Qiu is a software engineer on the Go team at Google, where she is leading the project to build the Go discovery site for modules. Before Google she was already working in Go as an engineering lead at Spring to improve search performance, personalize the user shopping experience, and ingest real-time product updates at scale. She graduated from Yale University with a degree in Cognitive Science.

  • Aaron Schlesinger

    Aaron Schlesinger

    The Athens Project - A Proxy Server for Go Modules

    Sr. Developer Advocate - Microsoft

    @arschles
    Aaron Schlesinger

    The Athens Project - A Proxy Server for Go Modules

    Description

    Go 1.11 introduced modules, the new standard package management system for Go. It’s a massive step forward for the community, especially because we can build proxy servers instead of just using Github to fetch code. Athens is leading the way to solve some painful problems we’ve had for years.

    Bio

    Aaron is a Sr. Developer Advocate at Microsoft Azure, creator of and core maintainer to the Athens Project. Before Athens, he was a core maintainer and chair of the Kubernetes Service Catalog special interest group (SIG-Service-Catalog) and a contributor to various other projects in the Kubernetes community. He has almost 15 years of software engineering experience and when he discovered Go around 2013, he hasn’t looked back. He lives in San Mateo, CA where he and his wife love to run up and down mountains together.

  • Chris Koch

    Chris Koch

    LinuxBoot: Firmware Tools & a busybox in Go

    Software Engineer - Google

    @hugelgupf
    Chris Koch

    LinuxBoot: Firmware Tools & a busybox in Go

    Description

    Come learn about how we’re replacing closed source UEFI firmware with Linux and Go! LinuxBoot replaces parts of firmware with a small Linux kernel and initramfs. Our initramfs consists of pure Go system programs such as bootloaders, and we’ll talk about our BusyBox scheme to keep it small.

    Bio

    Chris Koch is a Software Engineer at Google in the Security & Privacy group working on bringing open source firmware to the world and Google. Previously, he worked on gVisor, a sandbox and “kernel” largely written in Go.

  • Cassandra Salisbury

    Cassandra Salisbury

    Keynote

    Open Source Strategy Lead for the Go Team - Google

    @cassandraoid
    Cassandra Salisbury

    Keynote

    Bio

    Cassandra currently works on the open source strategy team at Google with a focus on developer relations, education, and the growth of Go. She is a core team member of GoBridge where she focuses on increasing diversity and mindfulness in the Go community. Cassandra is an avid karaoke fan, finds relief in stress cooking and lives in the San Francisco Bay Area.

  • Mat Ryer

    Mat Ryer

    How I Write HTTP Web Services After Eight Years

    Co-founder of Machine Box - Veritone

    @matryer
    Mat Ryer

    How I Write HTTP Web Services After Eight Years

    Description

    A look at how the speaker builds web services after doing so for the past eight years. Starting with testing, the talk will cover everything a developer needs to deliver working, production ready HTTP web services. Extremely practical, tried and tested patterns that everybody can start using today.

    Bio

    Co-founder of Machine Box, now at Veritone • Computerperson, gopher, speaker, author • him/his/tabs

  • Ivan Daniluk

    Ivan Daniluk

    Rethinking Visual Programming With Go

    @idanyliuk
    Ivan Daniluk

    Rethinking Visual Programming With Go

    Description

    This talk is a deep dive into the topic of visual programming and demonstration of how Go has enabled a new way to think about it and build new kind of visual tools, never tried before in any other language. I’m also going to present such a tool, based on neuroscience of programming and mental maps.

    Bio

    Ivan Daniluk is a senior software engineer and has more than a decade of experience in writing networking software for the security market. He’s an active member of the Go community, a conference speaker (most recently at GopherCon 2016 and OSCON 2016), the host of the GolangShow podcast, and organizer of Golang meetups, the author of numerous articles about Go, and the author of a few popular projects for Gophers. Ivan enjoys helping people to learn about Go and programming and is highly interested in neural networks, artificial intelligence, neuroscience, visualizations, and new approaches to education in general. His hobbies include figure skating, the Argentine tango, yachting, and astronomy.

  • Ellen Körbes

    Ellen Körbes

    Learn Neural Networks With Go - Not Math!

    Developer Advocate - Garden

    @ellenkorbes
    Ellen Körbes

    Learn Neural Networks With Go - Not Math!

    Description

    Studying neural networks is a surefire way to end up fighting more math than you can shake a stick at. Wish you could learn about the likes of gradient descent and backpropagation in a language you actually understand—like Go? Then this one is for you. Code, not math! Algorithms, not logarithms!

    Bio

    Ellen is a developer advocate at Garden, and also an avid gopher, actively involved with Women Who Go, and responsible for the most comprehensive Go course in Portuguese. They’ve spoken at world-famous events, and at countless local meet-ups. Ellen is a proud recipient of a ‘Best Hair’ award.

  • Vicki Niu

    Vicki Niu

    Off the Chain! Scaling Blockchains in Go

    Software Engineer - Interstellar

    @vickiniu
    Vicki Niu

    Off the Chain! Scaling Blockchains in Go

    Description

    Blockchains are the hot new thing that everyone’s talking about, but nobody uses. This talk covers a key challenge in the blockchain space — scaling — through the perspective of two Go projects. Come learn about the state of blockchain scaling, and the features & limits of Go in the space.

    Bio

    Vicki is a software engineer at Interstellar, where she works on the Protocol team to translate cutting-edge research into real-world applications that help build a more just financial system. She studied computer science and ethnic studies at Stanford, where she co-founded the organization CS+Social Good. Vicki loves writing code, watching romantic comedies, and eating spicy food.

  • Sara Báez García

    Sara Báez García

    API Gateway, A Success Story (Joined Talk)

    Backend Team Lead - System73

    @Bz_Sara
    Sara Báez García

    API Gateway, A Success Story (Joined Talk)

    Description

    Talking about microservices we have to think about how to secure the system without losing the advantage of the decoupling and without adding too much latency. We implemented a custom API gateway. Why? Because it can easily scale, adds almost zero latency, is an ad hoc solution and it was fun!

    Bio

    Sara Báez is a Pythonista learning to love Go. She finished her Master’s degree in Mobile Applications but System73 showed her that “back-end” was the love of her life. She is now a proud Backend Team Lead in System73 developing a microservices infrastructure using Golang and Python while trying to be loyal to all the buzzwords such as high availability, stateless, resiliency… Chocolate addict by nature, she loves her dog the most. An active member of a women devs community @AdaLoveDev that tries to make women more visible in technology. Python Canarias organizer. She is also learning German because life wasn’t hard enough.

    Carlos González started his career as an HPC engineer in the second more powerful supercomputer in Spain, dealing with high performance networks, storage, and scientific software. At the moment he works as DevOps engineer and Infrastructure Team Lead in System73, pushing the project in the way of continuous deployment, scalability and trying to keep best practices. On his free time enjoys running, cycling and swimming all he can. System73 has a highly talented team and is based in the beautiful island hosting this event.

  • Carlos González Vila

    Carlos González Vila

    API Gateway, A Success Story (Joined Talk)

    Infrastructure Team Lead - System73

    @carlosglezvila
    Carlos González Vila

    API Gateway, A Success Story (Joined Talk)

    Description

    Talking about microservices we have to think about how to secure the system without losing the advantage of the decoupling and without adding too much latency. We implemented a custom API gateway. Why? Because it can easily scale, adds almost zero latency, is an ad hoc solution and it was fun!

    Bio

    Sara Báez is a Pythonista learning to love Go. She finished her Master’s degree in Mobile Applications but System73 showed her that “back-end” was the love of her life. She is now a proud Backend Team Lead in System73 developing a microservices infrastructure using Golang and Python while trying to be loyal to all the buzzwords such as high availability, stateless, resiliency… Chocolate addict by nature, she loves her dog the most. An active member of a women devs community @AdaLoveDev that tries to make women more visible in technology. Python Canarias organizer. She is also learning German because life wasn’t hard enough.

    Carlos González started his career as an HPC engineer in the second more powerful supercomputer in Spain, dealing with high performance networks, storage, and scientific software. At the moment he works as DevOps engineer and Infrastructure Team Lead in System73, pushing the project in the way of continuous deployment, scalability and trying to keep best practices. On his free time enjoys running, cycling and swimming all he can. System73 has a highly talented team and is based in the beautiful island hosting this event.

  • Egon Elbre

    Egon Elbre

    Psychology of Code Readability

    @egonelbre
    Egon Elbre

    Psychology of Code Readability

    Description

    Much of the existing software literature that teaches how to write readable code focuses on “rules of thumb” rather than comparing and dissecting real examples of code readability. Psychology provides various concepts that allow developers to identify code that is readable versus code that isn’t.

    Bio

    Egon Elbre is a software engineer with over 10 years of experience. He started playing with Go just after the first public announcement and has hung around since then. He loves finding new ways of looking at code such that it would be easier to maintain, understand and, most of all, ensure that it delivers value. He strongly believes that there are explanations that help people learn and be productive faster. When he’s not neck deep in code he’s either drawing or playing the piano.

  • Kevin Hungai Amuhinda

    Kevin Hungai Amuhinda

    Everything You Wanted to Know About Distributed Tracing in Go

    @Hungai
    Kevin Hungai Amuhinda

    Everything You Wanted to Know About Distributed Tracing in Go

    Description

    In the age of microservices, understanding how applications are executing in a highly distributed environment can be complicated. Looking at log files only gives a snapshot of the whole story and looking at a single service in isolation simply does not give enough information. Each service is just one side of a bigger story. Distributed tracing has emerged as an invaluable technique that succeeds in summarizing all sides of the story into a shared timeline. Yet deploying it can be quite challenging, especially in the large scale, polyglot environments of modern companies that mix together many different technologies. During this session, we will take a look at patterns and means to implement Tracing for services. After introducing the basic concepts we will cover how the tracing model works, and how to safely use it in production to troubleshoot and diagnose issues.

    Bio

    Hungai is a Developer Support Engineer at Lightbend and co-founder of a software automation company (Djuaji). He has more than 6 years of experience in software engineering, consulting and training and is an active open source contributor and organizer of a meetup in Nairobi. He is a data nerd and digital entrepreneur based in Nairobi, Kenya. Hungai enjoys working with Go, Scala, Rust, Kafka, Kubernetes and Spark.

  • Tom Ogoma

    Tom Ogoma

    Implementing RESTful APIs in Go

    Senior Consultant - Andela

    @tom_ogoma
    Tom Ogoma

    Implementing RESTful APIs in Go

    Description

    A lot of helpful tutorials are available for beginners to get their feet wet with Go, but nothing speakers like experience. In this talk, Tom will put together his learnings in Go and showcase it in a simple RESTful application, using his experience in the financial and medical spheres.

    Bio

    Tom Ogoma is a senior consultant at Andela, working with Mastercard labs for Financial Inclusion on projects that aim to empower the financially excluded. Before Andela, he was working on Go projects in the healthcare space to help solve challenges in the aged-care industry.

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
```