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

Ready to join us? Get your ticket →