DNS - Domain Name System

Domain Name System (DNS) Explained

Complete guide to understanding DNS (Domain Name System), how it works as the internet’s phonebook, DNS architecture, and resource record types for system design interviews.

November 21, 2022 · 8 min · 1520 words · Eakan Gopalakrishnan
System Scalability

System Scalability - Horizontal and Vertical Scaling

Complete guide to scalability covering horizontal and vertical scaling strategies, stateless architecture, caching, database sharding, and handling massive traffic.

October 30, 2022 · 2 min · 278 words · Eakan Gopalakrishnan
SLO-driven architecture diagram showing reliability metrics integrated from design to deployment

Shift Reliability Left: Use SLOs to Guide Architecture Early

Reliability planning is most effective when it starts during design, not shortly before release. This post focuses on how Service Level Objectives (SLOs) and Service Level Indicators (SLIs) can be used early in the SDLC to guide architecture and delivery choices. Remind me what they are again SLI - Service Level Indicator A quantitative metric for a service’s performance, as experienced by the user of the service. It is a measure of a property of the service that is a good proxy for your user experience. ...

December 4, 2025 · 5 min · 903 words · Eakan Gopalakrishnan
Virtual Private Cloud Architecture Diagram

Virtual Private Cloud (VPC): A Practical Guide to Cloud Network Isolation

Do you ever feel like your network infrastructure is a black box? When I first dove into cloud networking, the term Virtual Private Cloud (VPC) sounded mysterious—like a secret compartment in the sky. Over the years, I’ve come to see a VPC as your custom sandbox inside a public cloud: a private playground built on shared real estate. In this post, we’ll unpack what a VPC really is, how it works under the hood, and why it’s an indispensable tool for any software craftsperson aiming for secure, scalable cloud architecture. ...

August 21, 2024 · 5 min · 895 words · Eakan Gopalakrishnan
Cyberpunk illustration of a person looking down a glass tunnel over a neon-lit city highway, holding a tablet showing an envelope with a tiny figure on it

The journey of an email - from sender to receiver and everything in between

Background In my previous role, while working in the Insurance domain, we provided a mobile app to all customers who bought cyber insurance. This had some cool value added services that helped small enterprises check if their employees’ knowledge of cybersecurity is good enough to protect the organization from being compromised. Thus, we implemented a one-click phishing campaign solution, which enabled users to click a button and initiate a phishing campaign for the organization. This was a really fun thing to work on. This was when I invested some time looking into how email really worked. ...

February 18, 2024 · 11 min · 2305 words · Eakan Gopalakrishnan
Eyeglasses on a desk, with blurred screens of code behind brought into focus through the lenses

Why and When would you use a Serverless approach to solving your problem?

Background As a relatively senior engineering manager, I have been transforming into a less technical person over time. The reason being, I am in charge of two fantastic teams that both have excellent engineers. I generally rely on the technical leads of the respective teams to own the technical aspects of their domains and try to interfere as little as possible. I do this to empower them to take more ownership and learn to be accountable. After all, it is humanly impossible to be everywhere at the same time. I build my teams based on trust, psychological safety and accountability. However, I do review their technical proposals and other documents or design diagrams etc. and I challenge them by asking questions. I have never had to tell them what is right or wrong so far, and I don’t think that I’ll ever need to do that either because our hiring process is good enough to filter out problem candidates. I give them the feedback they need at the time they need it, covering their blind-spots when necessary. ...

June 11, 2023 · 7 min · 1375 words · Eakan Gopalakrishnan
Cache

What is Caching? The different types of caches and interfaces in .NET Core for caching

What is caching? Storing frequently accessed information closer to where you need it for faster subsequent access to it. Caching is so ubiquitous that you probably have benefited from it without even knowing about it. Your computer or your phone or other mobile devices use caching at different levels like at its hard drive, CPU, GPU, browser, operating system etc to improve its performance. And when you think about things outside your computer, like databases, web servers, DNS etc also use caches for the same reason, improving performance, by keeping frequently requested for items closest to where it is accessed, in a faster, more volatile storage system. Also cache storage is often times more expensive than regular storage, as it is often stored either in super fast access memory or solid state drives. Hence choosing what you store in the cache and how much you store in the cache is also something you must consider before deciding to use a cache. ...

June 20, 2021 · 5 min · 1056 words