HTTP over TLS on localhost with Go server
Published: 28. November 2021 • go
In this blog post, I'm going to show you how to set up TLS with a Go HTTP server listening on localhost.
Published: 28. November 2021 • go
In this blog post, I'm going to show you how to set up TLS with a Go HTTP server listening on localhost.
Published: 29. November 2021 • go, iac
In this blog post, I'm going to show you how to set up cloud resources on AWS with the infrastructure-as-code (IaC) tool Pulumi.
Published: 6. December 2021 • go, iac
In this blog post, I will show you how to write AWS Lambdas with Go and deploy them with Pulumi (Go).
Published: 29. January 2022 • go, aws
The first part of setting up an HTTP API back end on AWS shows you how to configure Amazon API Gateway and Amazon DynamoDB and build and deploy an AWS Lambda in Go to form the back end for a simple todo web application.
Published: 29. January 2022 • go, aws
The second part of setting up an HTTP API back end on AWS shows you how to transform the single-user application from the first part into a multi-user application where users can sign-up and sign in. User authentication will be implemented with Amazon Cognito and OAuth2.
Published: 15. January 2022 • go, java, aws
In this blog post, I show you how to send and receive Protocol Buffers messages over Amazon Simple Queue Service (SQS). The examples of producers (send) and consumers (receive) are written in Java and Go.
Published: 10. February 2022 • Updated: 11. March 2023 • go
Various ways to access the Pwned Passwords database from Have I Been Pwned with Go
Published: 1. August 2023 • go
In this blog post, I'm going to show you how you can write Go programs that access Git repositories with the go-git library.
Published: 1. August 2023 • go
Setting up TLS with Go in production environments
Published: 26. September 2024 • go, aws, azure
Access OpenAI GPT-4o on Azure and Stable Diffusion on AWS Bedrock from a Go application.
Published: 27. September 2024 • Updated: 20. March 2026 • go, angular
Implement a passwordless authentication system with WebAuthn in Go on the back end and Angular/Ionic on the front end.
Published: 21. October 2024 • go
Use Gotenberg with Go to convert web pages, HTML, and office documents to PDF.
Published: 28. October 2024 • llm, go
Combine web search with an LLM in Go and query local models running on Ollama.
Published: 17. January 2025 • Updated: 10. September 2025 • go, llm
In this article, I will show you how to write a Go program that generates Go code with the help of a large language model (LLM) and run this generated code in a Docker container.
Published: 17. January 2025 • go, angular
In this blog post, I will show you how to implement WebAuthn authentication with Bitwarden Passwordless.dev, a SaaS solution that provides WebAuthn authentication as a service.
Published: 23. February 2025 • go, bluesky
In this blog post, I will show you how to write programs in Go that post to Bluesky.
Published: 17. July 2025 • go, bluesky
Learn how to create a Reply Bot for Bluesky using Go that replies to mentions with AI-generated responses.
Published: 31. July 2025 • go
In this blog post we are going to explore the slices and maps packages from the Go standard library. The two packages provide useful and convenient methods to work with slices and maps.
Published: 25. July 2025 • go, aws
This article shows how to list many objects in an S3 bucket quickly. Using the prefix parameter in the list objects request allows an application to start multiple goroutines and call the list objects endpoint in parallel.
Published: 6. August 2025 • java, go
This article provides an overview of the MQTT protocol, its basic features, and how to use it in Go and Java applications. It covers topics such as publish/subscribe model, message payloads, topics, quality of service (QoS), retained messages, persistent sessions, and more.
Published: 7. September 2025 • go
An overview of the container/collection types available in the Go standard library.
Published: 8. September 2025 • go
Implementing Mutual TLS (mTLS) with Go's built-in HTTP server and client for secure client-server communication.
Published: 1. December 2025 • go, llm
Learn how to write MCP servers and clients in Go to build interoperable LLM tools using the Model Context Protocol (MCP).
Published: 28. February 2026 • go
Go makes it easy to run code in parallel with goroutines. To wait for them to finish, you can use sync.WaitGroup or errgroup.Group. This post explains how to use both and when to choose one over the other.
Published: 11. March 2026 • llm, go
Tool calling is a workflow for giving an LLM access to external information and capabilities. However, it can be inefficient when you have a large number of tools or complex workflows that require multiple dependent tool calls. This blog post explores code mode, a way to use tools that can save context tokens and reduce the number of request/response cycles by incorporating a tool search and letting the model write code that orchestrates tool calls. The blog post shows you how to implement code mode yourself in Go.
Published: 2. March 2026 • go
In this blog post, I want to show you how to use Playwright, Go, and Docker to build a simple PDF generation service for creating PDFs from scratch with HTML and CSS.
Published: 16. March 2026 • postgresql, go
A first look at PostGIS, the spatial extension for PostgreSQL, and how it helps you manage and query geographic data with spatial types, indexes, and functions.
Published: 1. March 2026 • go
Learn how to use the Z3 SMT solver with Go to solve complex problems declaratively. This post covers setting up Z3 with Go, core concepts, and real-world examples like package dependency resolution, RBAC policy verification, scheduling, and the knapsack problem.
Published: 12. April 2026 • go, llm
Eino is a Go-based framework for building LLM applications, from simple chat features to agent systems with tools, middleware, and orchestration. This post explores Eino's core abstractions and patterns through code examples.
Published: 7. April 2026 • go, iac
In this post, we deploy a small service to Google Cloud Run with Pulumi. We also set up an API Gateway in front of it for authenticated access and rate limiting. Finally, we discuss the Cloud Run pricing model and how to control costs.
Published: 15. April 2026 • go
This post explains how to implement the OAuth 2.0 authorization code flow with PKCE in a browser-based app, and how to implement it in a BFF (Backend For Frontend) architecture for better security.
Published: 7. April 2026 • postgresql, go
ParadeDB is a PostgreSQL extension that adds full-text search capabilities directly to your database. Instead of running a separate search service, you run use PostgreSQL's query engine to execute BM25 search queries alongside normal SQL. In this post, we take a look at ParadeDB's search capabilities and how to use them.
Published: 7. April 2026 • go
Resilience patterns like retries, circuit breakers, and fallbacks are essential for building robust applications that can handle failures gracefully. In this post, we will explore how to implement these patterns in Go using the failsafe-go library.