destel
Viktor Nikolaiev's blog
  • Blog
  • About
  • GitHub
  • RSS
  • Send Email
  • X/Twitter
  • LinkedIn
  • Dark mode Light mode
  • #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