Articles

My technical writing and blog posts - 67 articles

Showing 20 of 67 articles

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

12 Qualities of a Highly Effective Architect

June 22, 2025

Explores the core qualities that make software architects effective at scale beyond technical design decisions.

Software ArchitectureSoftware DevelopmentSoftware DesignLeadershipStrategy

Ranking Cricket's Top 10 Players in Every Discipline with Pandas and Kaggle Data

June 21, 2025

Uses Python and Pandas to analyze cricket data and rank top players across different performance dimensions.

PandasData ScienceMachine LearningCricketPython

Build a Smart Automated Event Reminder System with Python in Under 30 Minutes

March 31, 2025

Shows how to build a lightweight automated reminder system using Python with minimal infrastructure and setup.

PythonFlaskSqlitePythonanywhereSoftware Development

5 Data Normalization Techniques You Should Know for Machine Learning

February 18, 2025

Explains common data normalization techniques and when each should be applied in machine learning workflows.

Machine LearningData NormalizationPythonData ScienceData Visualization

4 Important Behavioral Design Patterns everyone should be aware of

January 12, 2025

Introduces key behavioral design patterns and explains how they govern object interaction and responsibility.

Design PatternsBehavioral Design PatternJava

4 Important Structural Design Patterns everyone should be aware of

January 1, 2025

Covers commonly used structural design patterns and how they help organize complex systems.

Design PatternsStructural Design PatternJava