Notes from running systems in production — distributed systems, AWS, security and backend design — published on LinkedIn between Aug 2025 and Jun 2026. Click a card to read the post. Follow for more ↗
Threads, a shared ledger and the queue in front of it — the trade-offs, the failure modes, and what I would do differently.
Redis samples a handful of keys and evicts the oldest of the sample. That detail changes how you size a cache.
Ordering, retention, consumer models and cost — how to pick between the two for event streaming on AWS.
PrivateLink for one-way calls, Transit Gateway + NAT for two-way — connecting services when both VPCs use 10.0.0.0/16.
Why retries must be free, where to store the key, and what EC2’s ClientToken teaches about designing safe APIs.
Walking through the design of a concurrent system — the trade-offs, the failure modes, and what I'd do differently.
Jun 2026read on linkedin ↗ 02 Data & MessagingRedis' eviction is approximated LRU with sampling, and that detail matters when you size a cache.
May 2026read on linkedin ↗ 03 AIChunking, retrieval quality and grounding — the parts of a RAG pipeline that decide whether the answer is trustworthy.
May 2026read on linkedin ↗ 04 AWSPartition keys, access patterns and the mistakes that make single-table design hurt later.
Nov 2025read on linkedin ↗ 05 Data & MessagingOrdering, retention, consumer models and cost — how to pick between the two for event streaming on AWS.
Oct 2025read on linkedin ↗ 06 Backend & APIsOffset vs cursor pagination, why offsets break at scale, and how to design stable cursors.
Sep 2025read on linkedin ↗ 07 SecurityAuth boundaries, least privilege and the checks that keep internal APIs safe at scale.
Sep 2025read on linkedin ↗ 08 Data & MessagingA plain-English walkthrough of the MapReduce paper and why its ideas still shape data systems.
Sep 2025read on linkedin ↗ 09 AWSReserved vs provisioned concurrency, throttling behaviour, and how to protect downstreams.
Sep 2025read on linkedin ↗ 10 AWSReference patterns for resilient AWS architectures and the DevOps practices that keep them healthy.
Sep 2025read on linkedin ↗ 11 AWSPrivateLink for one-way calls, Transit Gateway + NAT for two-way — how to connect services when both VPCs use 10.0.0.0/16.
Sep 2025read on linkedin ↗ 12 SecurityProtecting PII in Spring Boot services — masking, encryption at rest and safe logging.
Sep 2025read on linkedin ↗ 13 Backend & APIsTimeouts, retries, circuit breakers and idempotency when your service depends on someone else's API.
Sep 2025read on linkedin ↗ 14 Backend & APIsIdempotency keys, ledgers, reconciliation and exactly-once thinking in money-moving systems.
Sep 2025read on linkedin ↗ 15 Backend & APIsWhere latency really comes from — N+1 queries, serialization, connection pools — and how to measure before optimising.
Sep 2025read on linkedin ↗ 16 SecuritymTLS, service identity and token exchange between microservices.
Sep 2025read on linkedin ↗ 17 AWSConnecting many VPCs without a mesh of peering links — when Transit Gateway earns its cost.
Sep 2025read on linkedin ↗ 18 Backend & APIsWhy idempotency tokens exist, how EC2 uses them, and how to add them to your own APIs.
Sep 2025read on linkedin ↗ 19 Data & MessagingChange-data-capture pipelines from the database to the search index without dual writes.
Sep 2025read on linkedin ↗ 20 Backend & APIsSignatures, retries with backoff, ordering and dead-letter handling for webhook delivery.
Sep 2025read on linkedin ↗ 21 SecurityWhat a JWT actually guarantees, common misuse, and when a session is the better choice.
Sep 2025read on linkedin ↗ 22 SecurityHandshakes, certificates and cipher suites — how HTTPS actually protects a request.
Aug 2025read on linkedin ↗ 23 AWSCold starts, execution model, limits and when serverless is the wrong tool.
Aug 2025read on linkedin ↗ 24 Backend & APIsTitle to be confirmed — open the preview to read the full post.
read on linkedin ↗ 25 AWSConsistency model, storage classes and the durability story behind eleven nines.
Aug 2025read on linkedin ↗