Sponsors

Platinum

Gold

Silver

Workshops

Wednesday, 2 May 2018

Go Fundamentals

This class provides an idiomatic introduction to the Go programming language supported by extensive examples and hands-on exercises. We focus on both the specification and implementation of the language including topics ranging from language syntax, Go’s type system, testing and more. We believe this class is perfect for anyone who wants a jump start in learning Go.

Course Outline

Language Syntax

Using Pointers

Arrays, Slices and Maps

Methods and Interfaces

Packaging and Exporting

Testing

Managing External Dependencies

Standard Library

Thursday, 3 May 2018

Ultimate Go

This is for any intermediate-level developer who has some experience with other programming languages and wants to learn Go. This class will provide a jump start in learning Go and provide a more thorough understanding of the language and its internals.

Course Outline

Language Syntax

Data Structures

Decoupling

Concurrency

Venue

Lifelong Learning Institute11 Eunos Rd 8, Singapore 408601

About the instructor:

William Kennedy

William Kennedy is a managing partner at Ardan Studio 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.

Schedule

08:00

Conference door open & registration

09:00

Welcome address

Sau Sheong

09:10

Opening keynote: Go with Versions

It’s time to add versioning to the Go toolchain, the Go ecosystem, and Go workflows. Go 1.11 will add opt-in support for package versions. This talk will explain the background, motivation, and rationale for the new version support and help you understand how to use it effectively.

Russ Cox

09:55

Project-driven journey to learning Go

It’s inevitable to feel overwhelmed when learning any programming language, especially for those who come from a non-software development background. It takes time and patience to get used to syntax, let alone understanding, exploring and implementing the underlying concepts. How will you strategise and optimise learning within a short period? What will you prioritise learning first? Being new to Go, Elissa shares her learning journey through a data analysis project.

Elissa Lim

10:20

Tea break

10:50

Resiliency in Distributed Systems

Running distributed systems with high uptime is hard. Faults always occur in a complex distributed environment with too many moving parts. Systems need to be designed from the start to be resilient against some of the common faults in live production systems at scale such as sudden surge in traffic, bad or failed dependencies, network outages, hosts going down etc. To safe guard against these failures and potential business loss, we discuss some of the basic patterns to be followed in designing resilient distributed systems at scale such as Circuit Breakers, BulkHeads, Fallbacks, Redundancies, Metrics and Monitoring. This talk is for everyone who is interested in building highly reliable distributed systems in Go and also hate answering pagers at 3 am in the morning.

Rajeev N Bharshetty

11:15

Understanding Running Go Programs

Profiling and tracing is an important part of program development and management. The Go tooling echosystem offers various tools to aid in the task. In this talk, I will discuss challenges we often encounter while debugging Go programs, for example, analyzing request execution latencies or finding memory leaks. I will present some of the recent improvements in the tooling to help tackle the challenges.

Hana Kim

11:40

Sponsor lightning talk

11:45

Sponsor lightning talk

11:50

Pre-lunch keynote: Go for Grab

An inside look at how Go drives all our critical system development, from overall architecture down to tools and utilities to support our engineering processes

Stephen Kruger

12:30

Lunch

13:40

Optimize For Correctness

Many of us when we are writing code focus on doing things that will result in faster performance as a priority. What’s interesting is, unless you have solved the same problem several times, you don’t really know if the code you are writing is performant. Until you have a working program, you can’t measure how fast it is. Wes Dyer said, Make it correct, make it clear, make it concise, make it fast. In that order. In this talk, we will explore what it means to optimize for correctness as a priority and why Go allows us to do this so effectively.

William Kennedy

14:05

Build your own distributed database

Have you ever wanted to make a custom database? In this talk we will deep dive into how distributed databases and Blockchains make consensus. We will review how Raft and Paxos compare to Byzantine fault-tolerant systems in Blockchains such as Ethereum. You will learn how to build your own Database

Matthew Campbell

14:30

The Scandalous Story of Dreadful Code Written by the Best of Us

There are overlooked corners of our codebases. Ignored, unloved. Unimportant. Or so we thought. What was once inconsequential has—somehow—grown into ghastly mess. This talk tells the story of one such mess, and the taming of it

Katrina Owen

14:55

Tea break

15:25

Erlang for Go developers

Go and Erlang each have a fantastic runtime model for lightweight concurrency. This talk will introduce the Erlang actor model, supervisors, supervision trees, and other concepts which can be built on top of Go’s CSP concurrency primitives to build distributed systems.

Christopher Molozian

15:50

Go and the future of offices

Beverly will share how they were able to leverage Go to build Spacemob’s coworking ecosystem from scratch. From their API, marketing website, members’ portal, meeting room booking, payment, checkin, to various reporting and dashboard applications. She will also share how they are using it now that they are part of WeWork’s Technology department where they continuously build applications that connects the physical to digital and making spaces self-sufficient and more interactive.

Beverly Dolor

16:15

Stretch break

16:30

Reflections on Trusting Trust for Go

Most of us take our compilers for granted. In goes our code, out comes our binary that is supposed to behave the way we expect it to. In my talk, I’ll attempt to do a proof of concept demonstration to show how can one build virtually undetectable malicious compiler.

Yeo Kheng Meng

16:55

The Lost Art of Bondage

Not very often do developers need to create bindings written in other languages. The Go ecosystem is so rich. But in the rare occasion one has to develop bindings, some thought should be given.

Chew Xuanyi

17:20

Closing keynote: GO-JEK gets Go

Ajey Gore

18:00

Closing remarks

Sau Sheong

19:30

After-party

TBC

23:00

End

Venue

GopherCon Singapore 2018 will be held at:

Marina Bay Sands Expo & Convention Centre

10 Bayfront Avenue, 018956

Speakers

Russ Cox

Keynote

Russ Cox is the tech lead for the Go project at Google. He wrote the go command, including “go get”, and is responsible for most of what you love and hate about it.

Ajey Gore

Keynote

Ajey is the Group CTO of Go-Jek. With 17 years of experience in building core technology strategy across diverse domains, Ajey has helped several businesses through technology transformations at ThoughtWorks and CodeIgnition. Ajey is the founder of CodeIgnition and an active influencer in the technology community.

Stephen Kruger

Keynote

Head of GrabPlatform Stephen joined Grab in June 2017 with 20 years of experience, holding titles of Master Inventor at IBM, and as chief architect for multiple Saas offerings. Currently charged with bringing to fruition the vision of a Grab platform ecosystem to support our customers and partners across the SEA region.

Bill Kennedy

Optimize For Correctness

William Kennedy is a managing partner at Ardan Studio 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.

Beverly Dolor

Go and the future of offices

At the heart of Beverly’s 17-year engineering career, is the belief that building great software means creating products and tools that help people live with more ease, efficiency, and enjoyment. This passion has given her the opportunity to work on a variety of online technologies at Chikka, Yahoo!, travelmob, where she’s worked with and learnt from the best. She led Spacemob’s Engineering team that built the company’s systems from the ground up. Now, she is leading WeWork Singapore Engineering team where she continues her legacy through creating relevant solutions that are driven by personal passion to care.

Chew Xuanyi

Erlang for GO developers

Xuanyi is the chief data scientist at Ordermentum. In his free time he builds neural networks and deep learning systems for fun and profit. His goal in life is to ensure the rise of Skyne.

Christopher Molozian

Erlang for GO developers

Chris is a core engineer and cofounder at Heroic Labs. Prior to founding Heroic Labs he worked on scalable server systems at Basho Technologies for Riot Games, Rovio Entertainment, Demonware, and others. His background is in database technology and the design and implementation of distributed server systems.

Elissa Lim

Project-driven journey to learning Go

Elissa is a business analytics fresh graduate from NUS. Prior to joining SP Group as a software engineer doing frontend development and a blockchain project, she has had logistics project management and business analytics internships at Apple and Singtel respectively.

Hana Kim

Understanding Running Go Programs

Hana is a Go team member in Google. She worked on various Google infrastructure monitoring and tracing projects. Now she works on developing tools for monitoring and debugging Go programs. She is also one of the main contributors to the Go Mobile project.

Katrina Owen

The Scandalous Story of Dreadful Code

Katrina is an ecosystem engineer at GitHub. She accidentally became a developer while pursuing a degree in molecular biology. When programming, her focus is on automation, workflow optimization, and refactoring. She works primarily in Go and Ruby, contributes to several open source projects, and is the creator of exercism.io, a platform for code practice and programming mentorship.

Matthew Campbell

Build your own distributed database

Matthew Campbell is the founder & CEO of a Loom Network (TechStars Winter ‘18) a Blockchain company focused on scaling Ethereum. Most famously known for CryptoZombies. Matthew has been building tools for developers around the blockchain in Go. Matthew has also worked for large Technical firms like Digital Ocean, Bloomberg, Thomson Retuers and has been a software developer for last 15 years.

Rajeev N Bharshetty

Resiliency in Distributed Systems

Rajeev is working as a Product Engineer helping build Resilient Distributed systems at Scale. His primary focus and interest areas are Distributed Systems, Security and Data. He is a Long distance Runner and Cyclist, Amateur Musician, and an Avid Trekker.

Suthen Thomas

-

Suthen is the Head of Engineering for Grab’s Singapore R&D Centre. He has been with Grab for over five years - from the time it was called MyTeksi and based in a store room in Petaling Jaya, Malaysia - and played a number roles including its first Technical Lead, Head of Business Operations, and Chief of Staff.

Yeo Kheng Meng

Reflections on Trusting Trust for Go

Kheng Meng is a software engineer at SP Digital IoT team. He is also an avid hardware hacker and volunteers for Repair Kopitiam, a community repair meetup group in his free time, helping to repair electrical appliances to reduce eWaste disposal.

Code of Conduct

All attendees, speakers, sponsors and volunteers at our conference are required to agree with the following code of conduct. Organisers will enforce this code throughout the event. We expect cooperation from all participants to help ensure a safe environment for everybody.

Our conference is dedicated to providing a harassment-free conference experience for everyone, regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, ethnicity, religion (or lack thereof), or technology choices. We do not tolerate harassment of conference participants in any form. Sexual language and imagery is not appropriate for any conference venue, including talks, workshops, parties, Twitter and other online media. Conference participants violating these rules may be sanctioned or expelled from the conference without a refund at the discretion of the conference organisers.