/images/avatar.png

PasteAI: One MCP Tool Call, One Shareable Link

Have you ever asked Claude to write up an analysis, then had no good place to put it?

I asked Claude to pull together a summary from a long Slack thread on a production incident. It wrote up the timeline, root cause, and action items in about thirty seconds. But it was sitting in a chat window, and sharing it meant copying the markdown somewhere else and hoping the formatting survived.

Build an Asteroids Game with Raylib-go

In this tutorial, you’ll learn how to build an Asteroids game using Raylib-go, a lightweight library for game development.

By the end, we will have a complete game with player movement controlled by the keyboard, shooting, collisions, and win/lose states and all in Go.

Demo

/images/asteroids/demo.gif

Setting up your Go project

First, we need to set up our project and pull Raylib-go.

Build a Water Simulation in Go with Raylib-go

In this blog post, we will use raylib-go to create a lightweight water simulation for 2D games.

/images/water-simulation/watersim.gif Water simulation

This post aims to create a simulation of water which flows naturally and presents the illusion of flow and volume. Fluid Simulation is a huge topic. To keep things simple, we will use cellular automation to update each cell.

Table Testing in Go, Java, and Python: A Practical Guide

Have you ever written the same unit test repeatedly, with the only difference being the input parameters?

Table (or parameterized) testing is a technique that keeps your tests DRY and maintainable by running a single test function against multiple scenarios.

In this post, we’ll explore table testing in Go, Java, and Python using Conway’s Game of Life as an example.

What is table testing?

The concept is simple, we write a test which accepts test cases with different parameters. The cases have the name, the starting state, and the expected state built into it.

Beyond the Pager: Using Deep Work to Reduce DevOps Toil

DevOps engineers are constantly interrupted. Alerts, Slack messages, urgent requests, and the ever-present pager create a fragmented work environment where deep, focused work becomes nearly impossible.

But what if we could carve out time for the kind of concentrated effort that actually prevents fires instead of just fighting them?

The Problem with Constant Interruption

In most DevOps environments, engineers operate in reactive mode. The day starts with checking alerts, responding to overnight incidents, and jumping between urgent requests. This constant context switching makes it difficult to work on the foundational improvements that would reduce future toil.

Building Conway's Game of Life in Go with raylib-go (Step by Step)

I recently started to play around with graphics programming and game engine creation. For that, I was using SDL2, OpenGL and C.

However, I wanted to do something in Go, so I started with Conway’s Game of Life. There are various options from C bindings to OpenGL and SDL2 to full game engines such as Ebitengine. I went with raylib-go as it was a good mixture of low-level and abstracted programming.