Engineering Blog
Deep dives into Go, distributed systems, and infrastructure engineering.
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.
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.
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.
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.
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.
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.