Blog
software systems, taken apart.
Technical deep dives into real infrastructure: How the pieces fit, where they break, and what the design decisions actually cost.
2026
Network monitoring for backend developers
How an outbound call spends its time, which errors and kernel counters match each stage, and what a backend or DevOps engineer should measure.
- #monitoring
- #networking
- #reliability
Patch, update, hotfix: three policies, one pipeline
What patch, update, and hotfix each promise, how they show up in version numbers, and why a hotfix is still a release you can roll back.
- #releases
- #versioning
- #deployments
Inside Termii: from API call to delivered SMS
A deep dive into the architecture behind messaging platforms like Termii: aggregators, SMSCs, queues, workers, backpressure, and why an API acknowledgement is not a delivery receipt.
- #termii
- #architecture
- #messaging
- #distributed-systems
Inside Termii: what delivered actually means
The message lifecycle after the API responds: routing, delivery reports, webhooks, and why accepted, delivered, and read are three different promises.
- #termii
- #messaging
- #webhooks
- #distributed-systems
Inside Termii: when providers fail
Failure classification, exponential backoff, jitter, circuit breakers, and provider failover: how a messaging platform survives the day the network breaks, and why failover can double your messages.
- #termii
- #messaging
- #reliability
- #distributed-systems
Inside Termii: the war on duplicate OTPs
Idempotency keys, database constraints, the transactional outbox, and worker-level deduplication: how a messaging API makes retries, crashes, and ambiguous timeouts harmless.
- #termii
- #messaging
- #idempotency
- #distributed-systems
A deploy is a state machine, not a command
Why DeployDock tracks explicit release states instead of streaming shell output, and what health-gated cutover actually buys you.
- #deployments
- #architecture
- #go