/images/avatar.png

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.

Stop Starting, Start Finishing: The Power of Flow in Software and DevOps

Ever feel like you’re busy all day but nothing actually gets finished?

In software development and operations, it is common to be working on multiple projects and tasks at once. An engineer will start a task and get blocked. This could be a code review or waiting for another team to do some work. In this scenario, the engineer would pick up another task from the backlog until the original one is unblocked.