@ikristina

1 Followers
8 Following
13 Posts
Building a Worker Pool in Go

When you have a list of tasks to run concurrently, the naive approach is to spin up one goroutine per task. That works until it doesn't. A worker pool gives you bounded concurrency, backpressure, and clean shutdown without much added complexity.

Threads of Thought
The Multi-Raft Architecture

The Raft consensus protocol is widely adopted for building fault-tolerant distributed systems. It ensures that even if a node crashes or becomes unreachable, the cluster agrees on a single consistent state. However, single-group Raft does not scale well.

Threads of Thought
Runtime Choices in Distributed Systems

The Raft algorithm is language-agnostic, but the runtime underneath it is not. GC pauses, CPU scheduling, and memory models shape which implementation strategies are even possible.

Threads of Thought
When Goroutines Aren't Worth It

It's tempting to reach for goroutines whenever you see two independent operations. Two API calls? Two database queries? Spin up a goroutine, run them in parallel, cut your latency in half. Right? Sometimes. But often the added complexity buys you nothing measurable.

Threads of Thought

Automating Social Media Posts with GitHub Actions

https://ikristina.github.io/blog/automating-social-media-posts

Automating Social Media Posts with GitHub Actions

How to automate cross-posting blog updates to Bluesky and Mastodon using a custom GitHub Action workflow.

Threads of Thought
Go Pointers: Stack vs Heap

Clarifying the misconception that passing pointers always causes heap allocations in Go with practical examples.

Threads of Thought
Adding Math Support

I've added LaTeX support to the blog using KaTeX. Here's a quick guide on how to use it.

Threads of Thought
How to check if variables escape to the heap?

Learn how to identify when variables escape to the heap in Go using -gcflags and how to interpret the garbage collector's output.

Threads of Thought
Building a Drift-Free Pomodoro Timer with Web Audio API

A deep dive into building a reliable, drift-free Pomodoro timer using Vanilla JS and the Web Audio API for realistic mechanical sounds.

Threads of Thought
A Guide to Using Built-in Profiling Tools in Go

Profiling helps you identify where your program spends time and memory. Go provides built-in tools to collect and analyze this data. This guide covers profiling, benchmarks, and tracing, including examples and instructions for interpreting results.

Threads of Thought