Engineering Blog

Deep dives into Go, distributed systems, and infrastructure engineering.

GolangConcurrencyBackendPerformance

Concurrency Patterns in Go You Should Actually Use in Production

Go's concurrency model is powerful — but misused patterns lead to goroutine leaks, race conditions, and silent failures. Here's what works in production.

8 min read · April 20, 2026Read more
GolanggRPCMicroservicesAPI

gRPC vs REST in Go Microservices: When to Use Which

REST is familiar. gRPC is fast. But the real decision is about contract strictness, streaming needs, and team maturity — not just benchmarks.

6 min read · April 10, 2026Read more
TimescaleDBPostgreSQLIoTSCADAData Engineering

TimescaleDB for Industrial IoT: Ingesting Millions of Metrics Without Breaking

When your PLCs and sensors generate thousands of data points per second, standard Postgres falls apart. Here is how we architected a time-series pipeline that holds up.

9 min read · March 28, 2026Read more
KubernetesDevOpsGolangGCP

Zero-Downtime Deployments for Go Services on Kubernetes

Rolling updates sound simple until your Go service starts dropping in-flight requests during pod termination. Here's the complete checklist to make it actually work.

7 min read · March 10, 2026Read more
NATSMicroservicesGolangMessaging

NATS JetStream Patterns for Reliable Microservice Messaging

NATS is fast and simple — but without JetStream, you're firing and forgetting. Here's how to use JetStream for durable, exactly-once-ish messaging between Go services.

8 min read · February 20, 2026Read more
GolangIoTSCADAModbusIndustrial

Reading PLC Data Over Modbus TCP in Go

Modbus TCP is the lingua franca of industrial automation. Here is how to build a reliable, concurrent PLC data collector in Go that handles the quirks of real hardware.

7 min read · February 1, 2026Read more