destel
Viktor Nikolaiev's blog
  • Blog
  • About
  • GitHub
  • RSS
  • Send Email
  • X/Twitter
  • LinkedIn
  • Dark mode Light mode
  • #go
  • #concurrency
  • #rill
Aug 27, 2025

Preserving Order in Concurrent Go Apps: Three Approaches Compared

Concurrency breaks ordering by design, but sometimes we need both. Explore three methods to preserve order in concurrent Go applications, from standard ReplyTo channels to sophisticated permission passing, with benchmarks and real-world trade-offs.

Read more →
  • #side-project
  • #frontend
Aug 25, 2025

My Side Project: How Low Can You Go?

After a decade of Go backends, I wanted to try something different – so I built a daily number-picking game with vintage UI and game theory elements. A humble introduction to my side project "How Low Can You Go?"

Read more →
  • #go
Mar 18, 2025

Timeout Middleware in Go: Simple in Theory, Complex in Practice

What happens when we need different timeout durations for different endpoints? While implementing timeouts might seem straightforward at first glance, the most obvious solution fails silently, frustraiting both users and developers.

Read more →
  • #go
  • #concurrency
  • #rill
Jan 30, 2025

Real-Time Batching in Go

How to convert a stream of real-time updates into efficient database batches without sacrificing latency or code clarity? A deep dive into building a transparent batching layer that just works.

Read more →
  • #go
  • #quick-tip
Jan 10, 2025

On-the-Fly Content Type Sniffing and Validation in Go

Using magic bytes to validate file uploads without buffering the entire file in memory. A clean, reusable solution built on top of http.DetectContentType and io.Reader from the Go standard library.

Read more →
  • #go
  • #concurrency
  • #quick-tip
Dec 15, 2024

From Multiple Atomics to Clean Progress Tracking

A practical approach to tracking progress in concurrent one-off Go scripts, moving from multiple atomic counters to a clean, reusable solution. The post explores a fast lock-free implementation using copy-on-write and compare-and-swap patterns.

Read more →
  • #go
  • #concurrency
  • #rill
Dec 3, 2024

Parallel Streaming Pattern in Go: How to Scan Large S3 or GCS Buckets Significantly Faster

Sometimes the bottleneck isn't the file processing – it's the bucket traversal. Learn how to speed up the listing of files in S3 and other object storages by partitioning the bucket into ranges and streaming files from each of them concurrently. This approach can achieve significant speed-ups, turning hours-long operations into minutes.

Read more →

Copyright 2024-2025 Viktor Nikolaiev

  • RSS
  • Send Email
  • GitHub
  • X/Twitter
  • LinkedIn