Blog

Writing & Thoughts

I write about software engineering, system design, and the concepts behind how things work — explained through mental models that stick.

Pinned summaryBackend from First PrinciplesInteractive guide2026

Backend from First Principles: Visual Flow

A single guided map through HTTP, routing, serialization, auth, validation, APIs, databases, queues, observability, security, scaling, and concurrency.

BackendSystem DesignFundamentalsVisual Guide
AWS for Backend Developers4 min read2026-04-18

AWS S3: A Practical Guide for Backend Developers

AWS for Backend Developers

AWSS3BackendEngineeringCloudComputingSystemDesign
Backend from First Principles6 min read2026-04-15

Concurrency & Parallelism: I/O Bound vs CPU Bound: A Mental Model for Backend Engineers

Concurrency is not "doing everything at once." It is "not wasting the CPU while one task is waiting."

BackendEngineeringConcurrencyParallelismNodeJSGolang
Backend from First Principles11 min read2026-04-12

Backend Scaling & Performance Engineering: A Mental Model for Backend Engineers

Performance engineering is not "make it fast." It is "find exactly where time is being spent, then remove the right bottleneck with the least complexity possible."

BackendEngineeringScalabilityPerformanceEngineeringSystemDesignDatabases
Backend from First Principles9 min read2026-04-09

Backend Security: A Mental Model for Backend Engineers

Most security bugs start with one dangerous sentence: "The user will probably not do that." Attackers build careers out of doing exactly that.

BackendEngineeringSecurityWebSecuritySystemDesignAuthentication
Backend from First Principles7 min read2026-04-06

Graceful Shutdown: A Mental Model for Backend Engineers

The most dangerous server restart is the one that looks instant. Because "instant" usually means somebody got cut off mid-request.

BackendEngineeringGracefulShutdownSystemDesignDevOpsKubernetes
Backend from First Principles9 min read2026-04-03

Logging, Monitoring & Observability: A Mental Model for Backend Engineers

Monitoring tells you something is broken. Observability tells you what. The whole topic is about understanding the inside of a system from the outside — because in production, you don't get to do anything else.

BackendEngineeringObservabilityMonitoringDevOpsSystemDesign
Backend from First Principles13 min read2026-03-31

Configuration Management: A Mental Model for Backend Engineers

Most engineers think configuration is "env vars for API keys." That's like saying a car is just its engine. Configuration is the DNA of your backend — and the place where most production disasters quietly live.

BackendEngineeringConfigurationManagementDevOpsSystemDesignSoftwareEngineering
Backend from First Principles15 min read2026-03-28

Error Handling & Fault-Tolerant Systems: A Mental Model for Backend Engineers

Your code will fail in production. The only question is how you handle your errors. That's the entire job of error handling.

BackendEngineeringErrorHandlingFaultToleranceSystemDesignReliability
Backend from First Principles11 min read2026-03-25

Full-Text Search & Elasticsearch: A Mental Model for Backend Engineers

If you've ever written WHERE name ILIKE '%laptop%' in production, you've already met the problem this article solves. You just haven't felt it yet.

BackendEngineeringElasticsearchFullTextSearchSystemDesignSoftwareEngineering
Backend from First Principles11 min read2026-03-22

Task Queues & Background Jobs: A Mental Model for Backend Engineers

Not everything needs to happen before the user gets a response. That's the entire philosophy of background jobs.

BackendEngineeringTaskQueuesBackgroundJobsSystemDesignSoftwareEngineering
Backend from First Principles10 min read2026-03-19

Caching: A Mental Model for Backend Engineers

The fastest database query is the one you never make. That's caching in one sentence.

BackendEngineeringCachingRedisPerformanceSoftwareEngineering
Backend from First Principles9 min read2026-03-16

Mastering Databases with Postgres: A Mental Model for Backend Engineers

Every backend system eventually asks the same question: "Where does the data live when the server shuts down?" The answer is a database. And how you design it determines whether your system scales or collapses.

BackendEngineeringPostgreSQLDatabasesSQLSoftwareEngineering
Backend from First Principles10 min read2026-03-13

REST API Design: A Mental Model for Backend Engineers

You'll spend more time designing APIs than almost any other backend task. A well-designed API is invisible — developers integrate and move on. A poorly designed one generates Slack messages at 2 AM asking "what does this endpoint even return?"

BackendEngineeringRESTAPIAPIDesignWebDevelopmentSoftwareEngineering
Backend from First Principles14 min read2026-02-20

Controllers, Services, Repositories & Middleware: A Mental Model for Backend Engineers

Separation of concerns isn't about elegance — it's about survival at scale. Here's how to organize your backend into layers that actually work.

ArchitectureMiddlewareClean CodeBackendSystem Design
Backend from First Principles9 min read2026-02-05

Validations & Transformations: A Mental Model for Backend Engineers

Validation is the bouncer at the door. Every 500 error, database crash, and injection attack traces back to data that should have been rejected. Here's how to think about it.

ValidationData IntegritySecurityBackendAPIs
Backend from First Principles12 min read2026-01-20

Authentication & Authorization: A Mental Model for Backend Engineers

Every backend system faces two questions: 'Who are you?' and 'What are you allowed to do?' Here's the mental model that makes sessions, JWTs, OAuth, and RBAC click.

AuthenticationAuthorizationJWTOAuthBackend
Backend from First Principles8 min read2026-02-05

Serialization & Deserialization: How Machines Talk Across Languages

Your JavaScript frontend speaks JS, your Rust backend speaks Rust. How do they communicate? Through the universal translator pattern of serialization.

SerializationJSONAPIsBackend
Backend from First Principles10 min read2026-01-10

Backend Routing: How Requests Find Their Way Home

If HTTP is the what and how of communication, routing is the where. Understanding it deeply separates engineers who use frameworks from engineers who understand them.

RoutingREST APIBackendSystem Design
Backend from First Principles11 min read2025-12-15

Understanding HTTP: A Mental Model for Backend Engineers

Every backend system sits on top of HTTP. Let's build a mental model that makes every concept click into place — from methods and headers to CORS and caching.

HTTPBackendSystem DesignWeb Development