Insights

Engineering Blog

Deep dives into Go, distributed systems, concurrency, message brokers, and production infrastructure.

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 article
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 article
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 article
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 article
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 article
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 article