Skip to content
GopherCon Singapore 2026

Workshops

William Kennedy

Ultimate Software Design and Engineering Copied!

20 May 2026 9:00am to 5:30pm

This class teaches you how to engineer 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 pair-program and read code with the instructor as he walks through the design philosophies and guidelines for engineering software in Go.

With each new feature that is discussed, you will learn how to think about, read, maintain, manage, and debug code. The core of this class is to teach you how to handle and reduce the spread of complexity in the systems you are building.

If one of your biggest challenges is maintaining consistent coding standards across your codebase, maybe because team members have different levels of Go experience and are coming from different programming backgrounds, this course is for you. You will learn a set of idiomatic coding standards that everyone can adopt and apply to your existing projects.

Full Curriculum

What a student is expected to learn:

Deploy First Mentality:

We begin to focus on service design with a focus on the ability to maintain, manage, and debug the service in Kubernetes.

  • Design Philosophy, Guidelines, What to Expect
  • Project Layers, Policies, and Guidelines
  • Prepare Project

Domain-Driven, Data-Oriented Architecture:

We talk about the data-driven, data-oriented architecture. We discuss the design philosophy, guidelines, and semantics of how the three layers of App, Business, and Storage work together.

  • Architecture Review
  • Applying and Implementing Firewalls
  • Data Flow Trust vs Non-Trust
  • Data Shaping and Data Validation
  • Developer Isolation with Domains
  • Extending Functionality through Composition

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.
  • Please read the notes in the makefile for installing all the tooling and testing the code before class.
  • Please email the instructor, Bill Kennedy for assistance.

About the Instructor

William Kennedy

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.

To be confirmed

Lunch and tea breaks will be provided.

Florin Pățan

Ultimate Practical AI Copied!

21 May 2026 9:00am to 5:30pm

This is a hands-on, full-day workshop where you'll build a complete AI-powered application in Go — from first prompt to production-ready system.

You'll start by connecting your Go application to a language model and grounding its responses in real data using Retrieval-Augmented Generation (RAG). Then you'll give it the ability to act on the world through Tool Calling, Function Execution, and the Model Context Protocol (MCP). With the core system working, you'll learn the advanced optimization techniques that separate prototypes from production — speculative decoding, semantic caching, and intelligent model routing.

Finally, you'll harden everything against the security threats unique to LLM-powered systems, from prompt injection to data exfiltration.

Each part builds on the last.

By the end of the day, you won't just understand these concepts — you'll have built, optimized, and secured a working system that retrieves, reasons, and acts.

Full Curriculum

What a Student Is Expected to Learn

By the end of this workshop, you'll leave with working code, a production-ready mindset for AI-powered Go applications, and hands-on experience across the full stack: retrieval, action, performance, and security. 🚀

Part 1: Ground It — Retrieval-Augmented Generation (RAG) in Go
  • Understanding RAG Concepts – Improve responses by dynamically retrieving relevant context rather than relying solely on static training data.
  • Ingesting and Processing Documents – Build pipelines to index and retrieve documents from client systems.
  • Interacting with AI-Compatible APIs – Learn how Go applications can connect to local inference engines, OpenAI-compatible servers, or cloud AI services.
  • Optimizing Performance & Latency – Implement caching, batching, and parallel processing to enhance efficiency.
  • Using Vector Databases – Store and search embeddings with tools such as Chroma, Pinecone, Weaviate, Milvus or pgvector in PostgreSQL.
Part 2: Make It Act — Tool Calling, Function Execution & MCP in Go
  • How AI Uses Tool Calling – Enable external system control by allowing AI to invoke predefined functions in Go.
  • Building Function Calls with OpenAI-Compatible Systems – Define structured function inputs and outputs for AI-driven interactions.
  • Connecting to External APIs & Databases – Trigger real-world actions, query databases, and automate workflows.
  • Handling Responses & Errors – Ensure safe and reliable execution of AI-invoked functions.
  • Introduction to the Model Context Protocol (MCP) – Understand how MCP standardizes the way models discover and invoke tools. Build a simple MCP server in Go that exposes tools to any MCP-compatible client, showing how it compares to direct function calling.
Part 3: Make It Fast — Advanced Optimizations
  • Speculative Decoding – Use a smaller draft model alongside a larger verification model to get near-large-model quality at small-model speeds. Applicable to both local inference libraries and serving engines that support it natively.
  • Automatic Prefix Caching & KV Cache Reuse – Structure multi-turn conversations so shared prefixes (system prompts, conversation history) are cached and reused across requests, avoiding redundant computation. Manage message arrays carefully to keep prefixes stable across turns.
  • Semantic Caching – Embed user queries and check vector similarity against cached query-response pairs, returning cached answers for semantically equivalent questions without running inference — implementable in Go with any embedding model or API.
  • Adaptive Retrieval – Use a lightweight classifier or a small local model to decide whether RAG context is needed at all, avoiding irrelevant context injection that can degrade response quality.
  • Cascading Model Routing – Route queries to different models based on complexity: a fast small model for simple questions, escalating to a larger model only when confidence is low, implemented as Go middleware.
Part 4: Lock It Down — Securing LLM-Powered Go Applications
  • Prompt Injection Defenses – Understand direct and indirect prompt injection attacks, and implement role separation, input sanitization, and detection strategies. Demonstrate how injected instructions in user input or retrieved documents can hijack model behavior.
  • Securing Tool Calls – Apply least-privilege principles to exposed functions, prevent command injection from model output, and enforce authorization checks before execution.
  • RAG Pipeline Security – Guard against data poisoning and indirect injection via ingested documents. Show how a malicious document in the vector DB can manipulate retrieval results and model responses, and defend with access controls, relevance thresholds, and content isolation.
  • Output Sanitization & Exfiltration Prevention – Sanitize model-generated content before rendering in web UIs to prevent XSS. Defend against data exfiltration where the model encodes sensitive retrieved data into tool call arguments targeting attacker-controlled endpoints, using domain allowlists and egress filtering.
  • Chain-of-Call Escalation – Show how a model can chain multiple tool calls in a single turn to escalate privileges. Implement call budgets, supervision layers, and human-in-the-loop checkpoints in Go.

Prerequisites

Don't worry if you don't have the hardware required for this. The instructor will provide everything you need to follow along and be able to run the examples.

About the Instructor

Florin Pățan

Florin Pățan is a consultant at Ardan Labs with over 12 years of Go experience.

He's worked across distributed systems, application architecture, observability, and cloud infrastructure — with time spent at fintech, healthcare, and AI companies like Bread Financial, Press Ganey, drand, and PredictionGuard.

He has worked AI startups and enterprise companies where he built the infrastructure from the ground up and designed the systems backend from scratch, taking an early-stage platform to something production teams could actually rely on. Before Ardan Labs, he was at JetBrains as a Developer Advocate for Go — contributing to the Delve debugger and helping make GoLand the IDE that thousands of Go developers use daily.

Florin's seen firsthand how the jump from AI prototype to production system is where most projects fall apart. This workshop is built around the patterns and lessons he's picked up from shipping AI systems at companies where things have to work.

To be confirmed

Lunch and tea breaks will be provided.

Ron Evans

Hardware Hacking with TinyGo Copied!

20 & 21 May 2026 9:30am to 5:30pm

Get ready for an electrifying experience at GopherCon with the Hybrid Group's epic robot-fest session, powered by Go. Dive into drone control via joystick, reunite with our trusty pal GopherBot, and immerse yourself in more IoT wonders than you can handle!

We are bringing a special collection of our favorite programmable robots and toys for you to play with and code, including some retro favorites and a few new friends.

If music is your jam, don't miss the TinyGo Jam session! Rock out with TinyGo-powered MIDI controllers and enjoy a variety of self-guided musical activities to keep your earbuds delighted.

Prerequisites

  • Complete the Go Tour
  • Have a functioning Go environment installed

About the Instructor

Ron Evans

Ron is an award-winning software developer and expert in robotics/IoT/computer vision who is very active in the free and open-source community. He has helped many clients such as AT&T, Intel, Sphero, and Northvolt solve some of their most difficult technical and business problems.

Ron is a code contributor to many open-source hardware/software projects and is one of the maintainers of TinyGo, as well as the creator of the open-source IoT/robotics framework Gobot, computer vision framework GoCV, and embedded WebAssembly framework Mechanoid.

To be confirmed

Masaaki Takasago (sago35)
satoken
Michiru Shirakawa (@micchie)
Takanobu Hagino (taknb2nch)
Daisuke Makiuchi (MakKi)
Senoue

Build Your Own Macropad: From Soldering to Software Copied!

20 May 2026 9:30am to 5:30pm

In this hands-on workshop, you'll go from a pile of parts to a fully functional, custom macropad. The morning is dedicated to soldering your hardware, and the afternoon is all about bringing it to life using TinyGo.

A proven experience from Japan — the TinyGo Keeb Tour has successfully hosted 10 events across various cities since 2024, helping participants build their own zero-kb02 keyboards. Now, they're bringing this experience to Singapore!

New to soldering? No problem! The team will be right there to guide you through every step. There are plenty of spare parts, so there's no need to worry about making mistakes — it's all part of the learning process.

Full Curriculum

Meet the zero-kb02

The zero-kb02 isn't just a simple keypad — it's a powerful, programmable controller designed for versatility. You'll be building and coding with:

  • Brain: Powered by the RP2040 microcontroller
  • Controls: 12 keys for your favorite shortcuts
  • Interaction: A Joystick and a Rotary Encoder for intuitive navigation
  • Visuals: An OLED Display and RGB LEDs to show status and add flair

Endless Possibilities with TinyGo

Beyond a simple keypad, the zero-kb02 is a gateway to embedded development. With the extensive documentation and the power of TinyGo, you can transform it into:

  • Musical Instruments: Create a buzzer-based synth or a MIDI controller
  • Gadgets: Build a weather station using I2C sensors and the OLED display
  • Gaming: Run 2D games using koebiten (a TinyGo-friendly subset of Ebitengine)
  • Fully Customizable Keyboard: It's Vial-compatible, allowing you to remap keys and change settings directly from your web browser

Morning: Soldering Workshop

You'll assemble your own zero-kb02 from scratch — soldering the RP2040 microcontroller, keys, joystick, rotary encoder, OLED display, and RGB LEDs. Expert staff will guide you through every step.

Afternoon: Programming with TinyGo

With your macropad assembled, you'll bring it to life with TinyGo firmware. Learn how to program key mappings, control the OLED display, drive RGB LEDs, and read the joystick and rotary encoder — all in Go. By the end of the day, you'll leave with a custom keyboard that you built and programmed yourself.

Prerequisites

  • Complete the Go Tour
  • Have a functioning Go environment installed

Meet the Team

We are the team behind the TinyGo Keeb Tour in Japan. Since 2024, we've successfully hosted 10 events across various cities, helping participants build their own zero-kb02 keyboards. Now, we're bringing this experience to Singapore!

Masaaki Takasago (sago35)

Masaaki Takasago (sago35)

Embedded software engineer, TinyGo contributor, and author of a book on TinyGo. Creator of the TinyGo Keeb Tour and organizer of the 2025 TinyGo Conference in Japan — actively expanding the Go ecosystem into embedded systems and custom keyboards.

satoken

satoken

Site reliability engineer and TinyGo Keeb core member. Electronics hobbyist and creator of Gopher board.

Michiru Shirakawa (@micchie)

Michiru Shirakawa (@micchie)

Corporate IT Engineer at Mercari, Inc. Active in the Go community through Gophers Japan and Women Who Go Tokyo. Part of the TinyGo Keeb team bringing hardware creativity to communities across Japan.

Takanobu Hagino (taknb2nch)

Takanobu Hagino (taknb2nch)

Software engineer with experience across the full development lifecycle. TinyGo Keeb core member — primarily handles rework on the TinyGo Keeb Tour.

Daisuke Makiuchi (MakKi)

Daisuke Makiuchi (MakKi)

Software engineer at KLab Inc., developing real-time communication systems for mobile games. Author of open-source projects including WSNet2, gozxing, and arelo.

Senoue

Senoue

Full-stack engineer building everything from backend to frontend and infrastructure. A Go enthusiast experimenting with TinyGo to write devices in Go — and occasional food truck operator.

To be confirmed

Hardware kit included — nothing to bring except a laptop.

Ready to join us? Get your ticket →