Articles

My technical writing and blog posts - 73 articles

Showing 20 of 73 articles

From Dual-Channel to AI Omnichannel Experiences

October 25, 2026

Explores how AI is expanding digital experiences beyond websites and APIs through AI answer engines, chatbots, AI commerce, and agentic interfaces. Examines the role of AEO/GEO, MCP, and A2A, and why businesses should extend their digital capabilities without neglecting their existing foundations in data, APIs, and web experiences.

AIDigital MarketingSoftware ArchitectureAEOGEOMCPA2AOmnichannel

Vector Search at Scale: Exact Search, HNSW, and IVFFlat

October 24, 2026

Explores how vector search works, how HNSW and IVFFlat differ in their search strategies, and how exact search compares with approximate nearest-neighbor indexing. Uses Python, PostgreSQL, and pgvector to benchmark latency and recall and understand the trade-offs between search speed and retrieval quality.

Vector SearchPostgreSQLpgvectorAIRAGMachine Learning

Why Comparing LLM Prices Per Token Is Misleading

October 20, 2026

Explores why different LLM tokenizers produce different token counts for the same text, how languages, emojis, code, and structured data affect token consumption, and why the cheapest model per million tokens is not necessarily the cheapest for an application. Covers tokenizer vocabulary, prompt caching, reasoning tokens, and multimodal usage to understand the factors that influence LLM costs.

LLMTokenizationGenAIAI EngineeringLLM CostsRAG

What Does “Understand the System” Actually Mean?

August 16, 2026

Explores what it really means to understand a system, why understanding its parts is not enough, how different systems require different approaches, and how feedback, intervention, and system behavior shape the way we solve problems.

Systems ThinkingSoftware ArchitectureEngineeringLeadershipProblem Solving

Understanding the Twelve-Factor App in Today’s World

July 28, 2026

Explains how the Twelve-Factor App principles fit into modern software development, with practical examples from containers, Kubernetes, CI/CD, observability, and production applications.

Software ArchitectureCloud NativeTwelve-Factor AppKubernetesSoftware Engineering

Repetition, Busyness, and the Blur of Time

April 18, 2026

Explores why busy days often feel indistinguishable in hindsight, and how repetition compresses memory while meaningful transitions make time feel fuller and more memorable.

Time ManagementWorkProductivityLife

Optimizing the Wrong Signal

March 29, 2026

Explains how incomplete data leads to flawed decisions, using a WWII aircraft example to highlight why missing data matters more than visible patterns.

Machine LearningBusiness StrategyGrowthProduct DevelopmentData Analysis

GSLB Is Actually Smart DNS Not a Load Balancer

March 8, 2026

Explains why Global Server Load Balancing (GSLB) is often misunderstood. Despite the name, most GSLB systems do not sit in the request path like traditional L4 or L7 load balancers. Instead, they operate at the DNS layer, influencing which regional endpoint a client connects to during name resolution. The article breaks down how GSLB steers traffic across regions using DNS responses, how this differs from regional load balancing, and why DNS caching introduces architectural constraints that engineers should understand when designing multi-region systems.

Distributed SystemsDNSLoad BalancerSystem Design InterviewSoftware Engineering

7 Mental Models to Effectively Utilize Claude Code as an Agentic System

February 22, 2026

Presents Claude Code as an execution loop rather than a chat interface and shows how productivity comes from deliberately controlling its context, memory, reasoning budget, workflows, quality gates, and external tool access. Breaks down how these seven mental models shift the developer's role from writing prompts to designing a compounding system, where each iteration starts from a stronger baseline and operates on real data instead of assumptions.

Claude CodeAgentic AICodingVibe CodingSoftware Engineering

DNS as a Distributed System

January 10, 2026

Reframes DNS from a simple name-to-IP lookup into what it actually is: a globally distributed, hierarchical, cache-first system that makes explicit trade-offs between consistency, availability, and performance. Explains why these design choices lead to real-world outages, security incidents, and surprising failure modes, and why DNS must be reasoned about like any other large-scale distributed system.

DNSDistributed SystemsInternetSystem Design InterviewSoftware Engineering

Writing as Infrastructure

January 8, 2026

Argues that writing is a scaling primitive for engineering teams: while code scales systems, writing scales intent, decisions, and long-term clarity. Explains why writing is often deprioritised and how the real cost shows up later in misalignment, rework, and slow execution.

Software EngineeringWritingLLMRAGsCareers

Latency and Response Time Are Not the Same

January 6, 2026

Clarifies the critical distinction between latency and response time in distributed systems. Shows how conflating the two leads to optimising the wrong layer, and explains where infrastructure choices end and application-level performance begins.

System Design InterviewDistributed SystemsSoftware DevelopmentWeb DevelopmentBackend

Learning How to Unlearn

December 30, 2025

Explains why unlearning outdated assumptions and mental models is becoming more important than continuously acquiring new skills.

LearningSoftware DevelopmentCareer AdviceHabitsEngineering

Run Transformer Models in Your Browser using Transformer.js

December 26, 2025

Shows how to run transformer models entirely in the browser using transformers.js, enabling client-side and privacy-friendly inference.

GenaiArtificial IntelligenceWeb DevelopmentPrivacyJavaScript

Random Is Not Same as Unpredictable in Python

December 23, 2025

Clarifies the difference between randomness and unpredictability in Python and why misunderstanding it can cause security issues.

PythonSecuritySoftware DevelopmentInterviewSystem Design Interview

12 Qualities That Take a Software Engineer to Staff Engineer

December 20, 2025

Identifies twelve practical qualities that make software engineers effective beyond just writing code.

Software EngineeringPersonal GrowthLeadershipCareer DevelopmentSystems Thinking

You Should Switch to gRPC if You're Still Using REST for Microservices

November 25, 2025

Explains when gRPC is a better alternative to REST for microservices and the trade-offs involved.

GrpcFastapiSoftware DevelopmentMicroservicesSystem Design Interview

Andrej Karpathy Grounds AI Hype in Reality in His New Podcast: Key Takeaways

November 9, 2025

Summarizes key insights from Andrej Karpathy's podcast, focusing on realistic expectations from modern AI systems.

Artificial IntelligenceLLMVibe CodingAI AgentNLP

Andrej Karpathy Says Expert Programmers Shouldn't Reject LLMs

October 30, 2025

Discusses why experienced programmers should adapt to LLMs instead of avoiding them completely.

Vibe CodingLLMGenaiSoftware DevelopmentCoding

LLM? Agent? RAG? MCP? If You're Confused Too, This GuideWill Help

July 6, 2025

Provides a high-level explanation of common AI terms like LLMs, agents, RAG, and MCP in simple language.

AILLMAgentic AiAgentic WorkflowSoftware Development