Take part in innovation

Attend the most revolutionary event of the year

GoLab

GoLab is the first Italian conference on Go. GoLab is organized by Develer, the company who launched events like Better Software, Better Embedded, QtDay, PyCon and EuroPython.

Theory and practice. Together.

We of Golab think that the best way to learn a technology is putting together theory and practice, that's why you will find both kinds of talks.

Qualified speakers.

All our speakers have several years of professional and personal experience with Go. Technical talks and case studies will clarify all your doubts about the language and will help you with everyday projects.

Italian gophers and international friends

GoLab is a unique occasion to meet all the sector protagonists. The event offers you the opportunity to build the right network.

Speakers

This section is constantly updated. We're working at profile pages. Stay tuned!

  • Fatih Arslan

    Digital Ocean

  • Nicola Larosa

    Telecommute

  • Francesco Sacchi

    Develer

  • Elias Naur

    Go mobile

  • Ivan Nikolaev

    Develer

  • Giovanni Bajo

    Develer

  • Drasko Draskovic

    Nokia

  • Martin Czygan

    Leipzig University Library

  • Luca Cipriani

    Officine Arduino

  • Bill Kennedy

    Ardan Studios

  • Alessio Cavaleri

    Empatica

  • Andrea Tosatto

    Open Xchange

  • Flávio Ribeiro

    The New York Times

  • Piyush Verma

    DataScale Inc

  • Nic Jackson

    notonthehighstreet.com

  • Shabinesh Sivaraj

    Accion Labs

  • Rok Biderman

    Security First

  • Alex Guerrieri

    Cabify

  • Matias Insaurralde

    Tyk

  • Vincenzo Di Somma

  • Mat Ryer

    GrayMeta

  • Ernesto Jiménez

    slackline.io

  • Mark Bates

    PaperCall

  • Yatish Mehta

    Coupa software

Friday, January 20th

Attention! This schedule is still subject to change.


Pick your badge up at the registration desk


15min

Welcome to the attendees and main information about the conference


15mins

Auditorium

To be announced


30min

Auditorium

A look at how you can sell Go to your boss, clients, and fellow co-workers. I’ll give you the ammunition you need to make a convincing argument for this powerful language, and how to respond to the usual FUD arguments you get. I’ll also let you in on some “sneaky” ways to get Go into your business.

45min

Talks

Beginner

TBA

45min

Talks

TBA

30min

Common area

The one thing that we can be certain of is that at some point things are going to go just a little bit wrong, gracefully degrading functionality is far better than a complete outage and in this talk you will learn the software patterns that allow you to break softly.

45min

Talks

Intermediate

Go tools are very powerful and yet simple to use. But how are Go tools created? In this talk I’m going to answer this question by showing the various Go parser family packages (go/token, go/scanner, go/parser, etc…) and how to use them to create your own Go tool from scratch.

45min

Talks

Intermediate

60min

Common area

To be announced

30min

Talks

All levels

Making content management system for a OSS risk security assessment app.


We will present content contribution system Octo, written in Go, which emphasises three principles:

  • transparency of the contributions
  • traceability of changes
  • authentication included
  • multiple modes of collaboration
  • extensible (share data with other platforms)
  • i18n (export/import to and from translation services)
  • automatic propagation via post hooks
  • performance

We made this for the OSS project Umbrella where this serves as a primary data store, but the intention and we hope the architecture was done in a way that allows it to be used for other projects. We also have feed checking and plan sharing system which are also in Go and we would like to show how we are trying to achieve minimal traceability while still showing ability to share betweeen clients. The project requires a distinct mixture of Open Source and Security approach and is a likely target of incursions since compromising it could give a large amount of data to attackers.


45mins

Talks

Intermediate

Golang sure has won the medal of honor when it comes to API, backend infrastructure, orchestration, background jobs, concurrency and micro services. But talk about a full-fledged web app and everyone goes running back to Django and Ruby on Rails. So let’s make Golang win this war. #MakeGoGreatAgain


45min

Talks

Intermediate

30min

Common area

HTTP has been around since start of internet. Infact there is 2.0 of it. The talk is a deep dive of HTTP 1.1 and 2.0 spec, all that we don't know of it and code samples in Go to demonstrate it.

45mins

Talks

Intermediate

I’ve been involved in two open source projects that make a heavy use of interoperability, one of them is an open source API gateway (Tyk, https://tyk.io/) and the other is a module for integrating .NET with Go projects. I would like to share my experience implementing them.

45mins

Talks

Advanced

To be announced.


90min

Minilabs

Intermediate

To be announced.

45min

Minilabs

Beginner

During the last 10 years, the video publishing at The New York Times relied on vendors and in-house hardware. This decision created a few bottlenecks to scaling its video production and it became a blocker for journalists to produce videos. Now, the company is focused on integrating the encoding pipeline with some cloud services.
Snickers started as a side project for me to learn Go and provide an in-house alternative for the encoding jobs. With Snickers integrated on the pipeline, We could gain the freedom to experiment and implement new features that may not be available with existing service providers like the creation of a transcript of the video using the Google Speech API or build a sprite of thumbnails to be used on the seek bar.
This talk will give a background of The New York Times encoding pipeline and focus on the development and features of Snickers.

45min

Minilabs

Beginner

30min

Common area

Game servers are quite different beasts compared to their web counterparts: they have a highly dynamic state, strict latency requirements and they contain a lot of event-based logic. All this makes game server development a challenge, and we’ll see how to win using Go. Let’s play!

45min

Minilabs

Intermediate

Dependency management is one of the most debated argument of discussion in the Go community. Many different tools has been proposed without never electing the definitive one. The goal of this talk is to present the status of d.m. in Go and engage the attendee to elect the definitive (or not) tool.
Go is amazing! Its standard library is absolutely outstanding and it easily allows developers to build their own software relying on the best tools ever shipped within a programming language. Inspired by all this awesomeness crafted by the legendary Go team the community is growing unbelievably fast: thousands of libraries are available as OpenSource and most of the currently hottest technology are built using the language. Nevertheless these incredible features, if you have ever started your own Go project you have probably already discovered that dependency management in Go can be something really painful: many different tools has been spreading through the community ending up in a fragmentation of the ecosystem. In this talk we will explore the status of dependency management in Go and compare the most popular dependency management tools focusing on their architecture and user-experience trying to elect together the definitive (or not) one.

45min

Minilabs

Intermediate

60min

Common area

In this talk will be presented an implementation of the client side of the Nubila IoT platform, completely written in Go. Thanks to its portability, the attitude for system programming, the rich ecosystem of libraries and, of course, the speed, Go is perfectly suited for this task.


45min

Minilabs

Beginner

We wrote a web application for millions users. We needed a way to have scalable and fast api and a small desktop application. How did we create a set of modular applications from microservices to desktop apps and released some of the open source? With Go.


45min

Minilabs

Beginner

30min

Common area

Ultimate Web is class (can be several hours to several days) for any Go developer who wishes to learn how to build robust and well tested HTTP based applications in Go. This class provides an intensive, comprehensive and idiomatic view build Web, SOA, and API applications using Go. We believe this class is perfect for anyone wishing to build scalable, fast, and highly concurrent HTTP based applications.


90min

Minilabs

Intermediate

In this workshop we’ll go from your first Go program to concurrent programming strategies, presenting examples and use real world cases, including testing, benchmarking and debugging.

180min

Trainings

Beginner

60mins

Common area

Use Go for your next Android app. This is the hand-on experience for everyone ready to complement or in some cases even replace Java with Go in their next mobile application. Learn everything from setup of Go Mobile to a complete Android application written in Go.

180min

Trainings

Intermediate

Saturday, January 21st

Pick your badge up at the registration desk


15min

15min

To be announced.


30min

Auditorium

All levels

Go is amazing, but sometimes we need to code lots of boiler plate. Fortunately, there are different ways you can reduce boilerplate by having programs generate all the boring code you would traditionally write by hand. In this talk we will look into different ways you can build programs that generate source code for other programs.


45min

Talks

Beginner

IoT platforms are most ofen used as a middleware, that means as a SW server (set of servers in fact) that provides several functionalities and services that are usually needed in designing IoT applications. They often have following roles:

  • Device manager - accepts device connections on southbound interface
  • Application manager - accepts application connections on northbound interface
  • Messaging bridge - relays messages between devices and applications
  • Time-series storage engine - stores and queries measurements datapoints in the time-series format
  • CEP machine with rules engine - it does Complex Event Processing of incoming time-series streams and can automatize triggers and actions based on configurable set of rules

Most often they need to be “multi-protocol” in order to support several networking protocols that proliferate in IoT world: - HTTP - WebSocket - MQTT - CoAPa
We will analyze an architecture, implementation and testing procedures needed for creating an industry-grade IoT platform on the example of popular open-source project Mainflux (https://github.com/Mainflux/mainflux).


45min

Talks

Intermediate

30min

Common area

Monolithic servers are of the past. The future is in the hands of microservices-based structures! It’s time to dive into the microservices approach to learn its principles and its strengths (and maybe its weaknesses too!). How do we split our backend in multiple services? How do we prototype a microservices architecture? We should be able to answer to all of these questions at the end of the talk! And what about the language? Choosing Go is obviously a no-brainer decision.


45min

Talks

Intermediate

Perhaps you’ve never heard of Go Mobile before, or perhaps you have but never got around to trying it out. In this talk, I’ll demonstrate every step from installation to using Go in your mobile apps, from low level business logic to your UI code.


45min

Talks

Intermediate

60min

Common area

The talk explores the feasibility of Go for soft realtime applications. We will briefly define soft realtime and explore some domains that need it. We will then explore the realtime features and limitations of the Go language and runtime, including looking at improvements in the various releases. We will finally show a number of specific use cases and verify that the behavior of the relevant Go programs is indeed within specification.


45min

Talks

Beginner

TBA


45min

Talks

Beginner

Many people use Go for different projects: WebDev, DevOps or other general-purpose tasks. On another hand, with all the beauty and performance of the language it could be a good challenger for Data applications. In the talk, we will go through the common problems of Data Engineering. Starting with high-performance caching and probabilistic data structures like Bloom filters, CountMin or Hyperloglog. We will cover all stages of Data Pipelining like writing data producers for open source Apache Kafka or proprietary Amazon Kinesis or Google Pub/Sub with further data consuming and processing.
The talk covers real-life use-cases of Data Applications and will provide an overview of existing possibilities of Golang as a language for data engineering. In the talk, we will cover basic ideas of building high-performance data application, creating your own data pipelines based on open source solutions and also hosted proprietary like Amazon Kinesis or Google Pub/Sub. The idea is to provide an overview how good is Golang for data engineering and what are Pros and Cons.


45min

Talks

Intermediate

30min

Common area

Go’s popularity in increasing and one of the main usage is building RESTful API. There are plenty of resources online about which framework to use, which ORM is better (do we really need both of them?) and other idiomatic ways to build your code. I will share my experience and show how easy it is to write testable and maintainable API in Go (which is a fundamentally extensible language and we don’t want to break this with our code) that follows good design and some possible solutions of common problems like authentication, logging, database access, testing even if your api uses external services and more.


45min

Talks

Beginner

Moore’s Law has started to become obsolete in almost every realm of hardware development. In order to have faster and more performant applications we have historically relied on faster hardware. However, we may soon need to look for better software, better programs and eventually, better developers.

45mins

Talks

Intermediate

Final networking


45min

Common area

Golang being a featureful language, it’s support for C bindings & simple concurrency, its a right languge for game development. But not yet. The golang libraries are not matured as of now. However I think writing a game is an interesting way to learn golang. This is intended for beginners with some golang knowledge.
We shall use SDL2 go bindings to develop a simple game in the workshop. Would be helpful if attendees: - Know some fundamentals of golang. - bring a laptop with golang installed. (Linux or MacOS preferred.) - bring along open mind.

180min

Trainings

Beginner

60mins

Common area

Interfaces are crucial for decomposing and combining functionality in Go programs. Among the interfaces in the standard library two are a bit more prominent, as they provide simple, yet powerful facilities to work with data streams: io.Reader and io.Writer.
Data streams are pervasive. They are also an important part to the UNIX philosophy, which encourages programs to work with (text) streams, because that is a universal interface. In this workshop, we will explore the io.Reader and io.Writer interfaces with the help of lots of example, taken from the Go standard library, open source projects and custom examples, which will demonstrate their versatility.


180min

Trainings

Intermediate

This is a 1 day class for any experienced Go developer who want to learn more about debugging and profiling applications in Go. We will learn details about Mechanical Sympathy and Data Oriented Design as it relates to Go. Then we debug and profile small applications and eventually a larger web application attempting to understand where we need to focus attention and fixing issues. https://github.com/ardanlabs/gotraining/blob/master/courses/ultimate/tooling/README.md

  • Benchmarking
  • Fuzzing
  • Profiling
  • Stack Traces.

  • 6hours

    Trainings

    Advanced

location

GoLab will be held near Florence,
in a beautiful modern venue.

CAMERA DI COMMERCIO DI PRATO

Via del Romito, 71
59100 Prato (PO)

go to the website

OUR CONFERENCES IN NUMBERS

Registration

All the tickets are valid for the two days of conference.

sponsors

GoLab is possible thanks to our sponsors. We are available to find a custom solution for your company, become a sponsor.



partners

GoLab is possible thanks to our partners. Contact us and become our partner.