Go Concurrency Model

Go’s concurrency model builds on CSP, providing Goroutines and Channels as core tools. An overview of how each works and when to choose what.

April 5, 2024 · 4 min read

TLS Handshake and Certificates

TLS builds a secure channel over an untrusted network by providing confidentiality, integrity, and authentication. A walkthrough of symmetric/asymmetric hybrid encryption, the TLS 1.2 handshake, the certificate and PKI trust model, and what TLS 1.3 improved.

April 5, 2024 · 7 min read

concurrency-go

A record of implementing and benchmarking three Go concurrency patterns — mutex, channel, and lock-free — to build hands-on understanding.

April 3, 2024 · 3 min read

MongoDB vs Redis — Same NoSQL, Different Roles

Why MongoDB and Redis end up in different roles even under the same NoSQL umbrella. A comparison across data model, storage, schema, scaling, and use cases.

April 2, 2024 · 5 min read

Spring WebFlux Fundamentals — Non-blocking I/O and the Reactive Stack

Spring MVC assigns one thread per request. When I/O waits pile up, threads sit idle. WebFlux replaces this with an event loop-based non-blocking model. A summary of the structural differences from MVC, the Reactor pattern, and when to choose which.

March 25, 2024 · 4 min read

HTTP/1.1 and HTTP/2

HTTP/1.1 processes requests and responses sequentially. HTTP/2 changed this with multiplexing, binary framing, and header compression. A summary of the differences between the two protocols and gRPC, which runs on HTTP/2.

March 20, 2024 · 5 min read

Observer

Observer cuts coupling through a one-to-many relationship that notifies subscribers of state changes. The Subject just notifies, unaware of who listens. EventEmitter, RxJS, and event-driven architecture all extend from here. It differs from broker-mediated pub/sub.

March 17, 2024 · 3 min read

Docker Container Fundamentals

Covers container concepts, the differences from VMs, Docker’s architecture, and the basics of Dockerfile and Docker Compose.

March 15, 2024 · 5 min read

Horizontal vs Vertical Slicing

The difference between splitting code by technical layers (horizontal) and by features or domains (vertical). Trade-offs and selection criteria for each approach.

March 10, 2024 · 3 min read