// blog

Things I write
about

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 ↗

25posts6topics5editor's picks1native article
Backend07AWS07Security05Data04Design01AI01 click a topic to filter
// editor's picks

Start here

pick 01 / 05
System Design

System Design Journey: Building a Concurrent System

Threads, a shared ledger and the queue in front of it — the trade-offs, the failure modes, and what I would do differently.

Jun 2026read on linkedin ↗
pick 02 / 05
Data & Messaging

Most Engineers Say Redis Uses LRU Eviction — It Doesn’t, Exactly

Redis samples a handful of keys and evicts the oldest of the sample. That detail changes how you size a cache.

May 2026read on linkedin ↗
pick 03 / 05
Data & Messaging

Kafka vs Amazon Kinesis

Ordering, retention, consumer models and cost — how to pick between the two for event streaming on AWS.

Oct 2025read on linkedin ↗
pick 04 / 05
AWS

Handling Communication Between VPCs with Overlapping CIDR Blocks

PrivateLink for one-way calls, Transit Gateway + NAT for two-way — connecting services when both VPCs use 10.0.0.0/16.

Sep 2025read on linkedin ↗
pick 05 / 05
Backend & APIs

Idempotency in Practice (with AWS EC2 Examples)

Why retries must be free, where to store the key, and what EC2’s ClientToken teaches about designing safe APIs.

Sep 2025read on linkedin ↗
// all posts

The full shelf

Filter by / / / / / /
01 System Design

System Design Journey: Building a Concurrent System

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 & Messaging

Most Engineers Say Redis Uses LRU Eviction — It Doesn't, Exactly

Redis' eviction is approximated LRU with sampling, and that detail matters when you size a cache.

May 2026read on linkedin ↗
03 AI

RAG & LLMs: What Actually Works in Production

Chunking, retrieval quality and grounding — the parts of a RAG pipeline that decide whether the answer is trustworthy.

May 2026read on linkedin ↗
04 AWS

DynamoDB for Backend Engineers

Partition keys, access patterns and the mistakes that make single-table design hurt later.

Nov 2025read on linkedin ↗
05 Data & Messaging

Kafka vs Amazon Kinesis

Ordering, retention, consumer models and cost — how to pick between the two for event streaming on AWS.

Oct 2025read on linkedin ↗
06 Backend & APIs

API Design: Pagination Done Right

Offset vs cursor pagination, why offsets break at scale, and how to design stable cursors.

Sep 2025read on linkedin ↗
07 Security

API Security Lessons from Amazon

Auth boundaries, least privilege and the checks that keep internal APIs safe at scale.

Sep 2025read on linkedin ↗
08 Data & Messaging

Google MapReduce — The Paper That Started Big Data

A plain-English walkthrough of the MapReduce paper and why its ideas still shape data systems.

Sep 2025read on linkedin ↗
09 AWS

Demystifying AWS Lambda Reserved Concurrency

Reserved vs provisioned concurrency, throttling behaviour, and how to protect downstreams.

Sep 2025read on linkedin ↗
10 AWS

AWS Cloud Architecture & DevOps Patterns

Reference patterns for resilient AWS architectures and the DevOps practices that keep them healthy.

Sep 2025read on linkedin ↗
11 AWS

Handling Communication Between VPCs with Overlapping CIDR Blocks

PrivateLink 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 Security

API Security & Data Privacy in Spring Boot

Protecting PII in Spring Boot services — masking, encryption at rest and safe logging.

Sep 2025read on linkedin ↗
13 Backend & APIs

API Integration Patterns in Java

Timeouts, retries, circuit breakers and idempotency when your service depends on someone else's API.

Sep 2025read on linkedin ↗
14 Backend & APIs

Payments Backends: How Fintech Systems Stay Correct

Idempotency keys, ledgers, reconciliation and exactly-once thinking in money-moving systems.

Sep 2025read on linkedin ↗
15 Backend & APIs

API Performance: What Actually Moves the Needle

Where latency really comes from — N+1 queries, serialization, connection pools — and how to measure before optimising.

Sep 2025read on linkedin ↗
16 Security

Securing Service-to-Service Communication

mTLS, service identity and token exchange between microservices.

Sep 2025read on linkedin ↗
17 AWS

AWS Transit Gateway & Cloud Networking

Connecting many VPCs without a mesh of peering links — when Transit Gateway earns its cost.

Sep 2025read on linkedin ↗
18 Backend & APIs

Idempotency in Practice (with AWS EC2 Examples)

Why idempotency tokens exist, how EC2 uses them, and how to add them to your own APIs.

Sep 2025read on linkedin ↗
19 Data & Messaging

CDC to Elasticsearch: Keeping Search in Sync

Change-data-capture pipelines from the database to the search index without dual writes.

Sep 2025read on linkedin ↗
20 Backend & APIs

Webhooks: Designing Reliable Callbacks

Signatures, retries with backoff, ordering and dead-letter handling for webhook delivery.

Sep 2025read on linkedin ↗
21 Security

JWT & Web Security

What a JWT actually guarantees, common misuse, and when a session is the better choice.

Sep 2025read on linkedin ↗
22 Security

SSL/TLS, Explained

Handshakes, certificates and cipher suites — how HTTPS actually protects a request.

Aug 2025read on linkedin ↗
23 AWS

AWS Lambda & Serverless Fundamentals

Cold starts, execution model, limits and when serverless is the wrong tool.

Aug 2025read on linkedin ↗
24 Backend & APIs

Backend Deep-Dive (Aug 2025)

Title to be confirmed — open the preview to read the full post.

read on linkedin ↗
25 AWS

Amazon S3 & Cloud Storage Internals

Consistency model, storage classes and the durability story behind eleven nines.

Aug 2025read on linkedin ↗
// contact

Available for backend, distributed systems & AI engineering roles.

Get in touch on LinkedIn
esc
navigate open⌘K toggle