Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by Mobin Shaterian
Building a Resilient Event-Driven Data Lakehouse: MinIO Bucket Notifications to Apache Kafka
Eliminate object storage polling and prevent race conditions using MinIO’s native Kafka notification engine and the Sentinel Marker pattern. Special thanks to mohsen taleb In distributed architectures, few patterns cause as much latency and architectural debt as active polling.
An AI-assisted migration guided by a detailed SRS and protected by end-to-end tests Authentication refactoring is rarely just a matter of swapping one guard for another. In a real NestJS application, authentication touches controllers, guards, authorization policies, request context, refresh-token handling, tests, environment configuration — often the database schema itself.
When Your Domain Talks to Stripe, A DDD Cautionary Tale
A real-world dissection of a circular dependency in a billing module, and how Domain-Driven Design gives you the vocabulary — and the tools — to fix it for good. Every senior engineer has seen it. A forwardRef() buried in a module definition, added months ago by someone who needed to "just make the circular dependency go away." It works. The tests pass. The app starts.
How I Use AI to Build Production-Ready GraphQL Resources Faster
A practical workflow with Go, PostgreSQL, sqlc, gqlgen, and architecture-aware prompting Press enter or click to view image in full size Software teams often need to add a new database resource across several layers of an application. The individual changes are usually straightforward, but the complete implementation can be repetitive and error-prone.
Rebuilding the Time Machine: Designing a Dual-Purpose Data Versioning System for Modern Backends and AI Engines
In traditional software engineering, databases are treated as state machines. When a user updates their profile, a transaction executes an UPDATE statement, overwriting the old bytes on disk. The past is erased, and only the present survives. However, as systems evolve to require auditability, “Time Travel” features, and reproducible datasets for AI/ML modeling, this destructive write model falls short. In modern architecture, data history is an asset.
Serving an Offline GraphQL Playground in Go: Avoiding the Gin Static File Pitfalls
When building a GraphQL API in Go using gqlgen and Gin, the built-in playground.Handler is the standard way to serve the GraphiQL UI.
Tunneling TCP Connections Over SSH Using socat and nc
The Problem Sometimes you need to reach a service on a remote host that isn’t directly accessible from your machine, maybe it’s behind a firewall, on a private network segment, or only reachable through a jump host. In this post I’ll show a lightweight, dependency-free way to tunnel TCP traffic using tools you almost certainly already have: ssh, nc (netcat), and socat.
Architectural Optimization of Shared Sandbox Deployments in GitLab CI/CD
The shared sandbox deployment strategy provides high feedback velocity at a low cost by using a centralized development environment, yet it is highly susceptible to race conditions and “phantom deployments” when multiple developers push code simultaneously. These failures often stem from “The Trap” of using hardcoded image tags, which creates a shared mutable state in the Docker registry and leads to code overwrites.
Bridging Networks: Using Nginx as a Reverse Proxy for Port Redirection
When managing distributed systems or local development environments, you often encounter a common networking hurdle: needing to access a service on one IP and port, but having that service actually live on a different server or a different port. While tools like iptables operate at the kernel level to move packets. They can be complex to manage and struggle with high-level application data like specific URL paths. This is where Nginx, acting as a Reverse Proxy, becomes the superior solution.
How to Port Forward Traffic to a Remote IP Using Iptables
In the world of networking, you often find yourself in a situation where a vital service — like a Swagger API dashboard — is hosted on a server that isn’t directly reachable by everyone on your team. Whether due to subnet isolation, VPN restrictions, or firewall policies, these “network silos” can stall development and testing. This article provides a step-by-step technical walkthrough on how to use iptables to turn a standard Linux machine into a transparent bridge.
Building a Complete Kafka + ClickHouse Streaming Stack with Docker Compose
Abstarct This article presents a comprehensive, reproducible, and fully functional real-time data streaming and analytics development stack combining Apache Kafka for event streaming and ClickHouse for high-performance analytical storage, orchestrated entirely using Docker Compose. The architecture integrates four core services: Kafka (with dual listeners for container-internal and host-external access), Zookeeper, ClickHouse, and the management console Kafka-UI.
Rsync from One Origin to Multiple Destinations: Strategies and Solutions ๐
Devops.dev is a community of DevOps enthusiasts sharing insight, stories, and the latest development in the field. ๐ Introduction rsync is one of the most powerful tools in the Linux/Unix ecosystem for synchronizing files and directories. It excels at incremental transfers, copying only the differences between source and destination. While syncing from one origin to a single destination is straightforward, many real-world deployments require one origin โ multiple destinations.
Preventing Race Conditions in Kubernetes Applications with Redis Locks
Devops.dev is a community of DevOps enthusiasts sharing insight, stories, and the latest development in the field. Introduction In distributed systems, concurrency is both a strength and a challenge. Running multiple replicas of the same application in Kubernetes increases reliability and scalability, but it also introduces the risk of race conditions when those replicas perform scheduled tasks against a shared resource.
Getting Started with Docker files: A Complete Guide
Introduction Docker has revolutionized how developers build, ship, and run applications. At the heart of Docker is the Dockerfile — a simple text file that contains instructions to build a Docker image. In this article, we’ll explore what Dockerfiles are, how to write them effectively, and best practices for creating production-ready containers. Go-Simple Project Git Commit Press enter or click to view image in full size What is a Dockerfile?
Atomic Deployment of Go Binaries on Ubuntu with Cron
Devops.dev is a community of DevOps enthusiasts sharing insight, stories, and the latest development in the field. Abstract This article presents a production-ready deployment strategy for Go applications on Ubuntu servers using GitLab CI/CD and cron scheduling. The approach leverages Go’s static compilation capabilities to eliminate runtime dependencies, while maintaining a persistent cron schedule that automatically executes updated binaries without service interruption.
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with Mobin
Contact Mobin, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack