logo Contact

Thoughts

Sharing my journey, insights, and experiences in tech and life.

When Logic Fails: How We Settled the Monty Hall Problem with Go

When our team couldn’t agree on the Monty Hall problem, we turned to Go programming to settle the debate. This article shows how we built a simulation to prove that switching doors really does double your chances of winning.

On Jul 19, 2025 go golang probability simulation monty-hall mathematics tutorial

Application Performance Monitoring

Application Performance Monitoring (APM) uses telemetry data to enhance system observability. It helps teams troubleshoot issues, manage resources, and improve user experience in production environments. Instrumenting Go applications with APM tools enables proactive monitoring and optimization.

On Jan 16, 2023 software-development observability telemetry go performance

Page layouts in Go

This post explains how to use Go’s template block and define expressions for creating reusable page layouts. It demonstrates avoiding repetition in HTML templates for a blog application. Learn to separate layout from content for better maintainability.

On Mar 12, 2022 software-development go html templates golang

Go embed for better SQL query management

This post explores using Go’s embed package for improved SQL query management in applications. It compares embedding SQL in strings versus using separate SQL files with go:embed. Learn how this enhances editor support and maintains single-binary deployment.

On Jan 16, 2022 go golang embed stdlib

Timezone Data in Go 1.15+

On a previous post I wrote about Go’s time locations and how to put those in an alpine Docker container. This was achieved by copying the timezone data zip file from the docker builder image into the distributable image. Then using an environment variable to point Go to the location of that file.

On Dec 10, 2021 go golang timezone stdlib

Using Go's build tags

This post explains how to use Go’s build tags for conditional compilation in applications. It covers syntax, Boolean logic for tags, and practical examples for plugins and OS-specific code. Learn to optimize Go builds for different environments and features.

On Nov 26, 2020 software-development go

Go's Locations & Alpine Docker image

This post explains how to configure timezone support in Go applications running on Alpine Docker images. It covers copying the zoneinfo.zip file and setting the ZONEINFO environment variable. Learn to ensure accurate time handling in containerized Go apps.

On Mar 29, 2020 software-development Go Docker go deployment

Testing Buffalo Applications

This comprehensive guide covers testing Go Buffalo applications across different layers. It explains testing routes, middlewares, helpers, actions, and models with practical examples. Learn best practices for ensuring code quality and stability in Buffalo apps.

On Dec 18, 2019 software-development buffalo go testing

Golang on CircleCI

This post provides a quick guide to setting up Continuous Integration for Go projects on CircleCI. It includes a sample circle.yml configuration for dependencies, testing, and environment setup. Get started with automated builds and tests for your Go applications.

On Oct 9, 2015 software-development go CI deployment devops