Posts

A collection of technical deep dives, architectural insights, and engineering reflections. Exploring the nuances of Go, system design, and the craft of software engineering.

Technical Journal // Posts
May '26

How to Handle PostgreSQL Database Migrations in Go with Goose

A breakdown of database migration strategies and implementation guide using PostgreSQL, Golang, and the Goose migration engine.

Apr '26

Migrating Cloudflare to Terraform

A technical reference on migrating existing Cloudflare infrastructure to Terraform. Includes an automated bootstrapping script to bypass manual state imports and handle API edge cases.

Apr '26

Internet Graveyard

An archive of sunsetted technologies, derelict architectures, and dead protocols. We learn as much from failure as we do from success.

Apr '26

A Tale of Web Vitals

A technical guide to Web Vitals. Solve LCP, TBT, CLS, and Accessibility issues using automated build-time pipelines and vanilla JS patches.

Apr '26

Why Your Goroutines Need a Speed Limit: Bounded Concurrency in Go

Unbounded concurrency is a reliability nightmare. Learn how to protect your system from OOM kills and database exhaustion by implementing Semaphores and Worker Pools in Go.

Apr '26

Part 3: Casting Shadows Without Trigonometry: The Beauty of Integer Math

To calculate Field of View in a grid-based game engine, you have to cast rays. The naive approach uses heavy floating-point trigonometry. This post explores Bresenham's Line Algorithm: a 60-year-old technique from the era of hardware plotters that draws perfect lines using only integer addition and comparison.

Apr '26

Part 2: Decoupling the Renderer: Terminal to Raylib in One Interface

If your game logic knows about OpenGL, your architecture has failed. This post dissects the Interface Segregation Principle in Go, demonstrating how the Derelict Facility engine swapped an ANSI terminal renderer for hardware-accelerated Raylib without changing a single line of game simulation code.

Apr '26

Part 1: Data-Oriented Design in Go: Why [][]Tile Destroyed My Game Engine

The textbook answer for a 2D grid in Go is a slice of slices. In a systems-level game engine running at 60 FPS, this innocent data structure becomes a performance landmine. This post explores pointer chasing, CPU cache lines, and how flattening a 2D map into contiguous memory creates massive performance gains through Data-Oriented Design.

Apr '26

10 years of lorbic.com architecture

Reviewing the technical evolution of this blog over a decade: from managed platforms and dynamic backends to a custom, zero-dependency Hugo architecture.

Apr '26

My Reading List

A living collection of the best engineering blogs, essays, and deep dives I've read and want to remember.