Testimonials

Services

Priority DM . 7 days reply
5

Ask away 🚀

Got a question? Ask me!
FREE
Priority DM . 7 days reply
4.9
FREE

About me

I work on distributed systems at Cohesity, building products and services that power data management at scale.

Frequently asked questions

What are distributed systems in computer science?

Distributed systems in computer science are collections of independent computers that coordinate over a network to behave as one single system. Users never see the individual machines — they only experience one fast, reliable service. Google Search, WhatsApp, the UPI payment network, and cloud storage platforms all run on distributed systems. They are engineered for scale, fault tolerance, and high availability, which is why companies managing data at scale — storage and data-management firms like Cohesity — build entire engineering teams around this specialty.

How to learn distributed systems as a beginner?

The practical path for how to learn distributed systems is fundamentals first, core concepts next, and hands-on building throughout. Get comfortable with one language (Java, Go, or Python) along with operating systems, networking, and databases, then study CAP theorem, consistency models, replication, partitioning, and consensus protocols like Raft. A structured distributed systems course such as MIT 6.824, read alongside Designing Data-Intensive Applications, plus small projects like a key-value store, works for most engineers. Getting doubts cleared by someone who builds such systems daily — Sarvesh Hon works on distributed systems and storage at Cohesity — can cut months off the learning curve.

What are some good distributed systems projects for beginners?

Strong beginner distributed systems projects include a replicated key-value store, a simple message queue with at-least-once delivery, a sharded URL shortener, a distributed cache, a rate limiter, and a leader-election service built on Raft. Each one forces you to solve real problems — replication, failure handling, consistency trade-offs — that interviewers love to probe. Push the code to GitHub with a README explaining your design decisions, since documented trade-offs matter more than project count for backend and distributed systems roles.

Which is the best distributed systems book for beginners?

The most recommended distributed systems book for practitioners is Designing Data-Intensive Applications by Martin Kleppmann, because it connects theory to how real databases and storage engines actually work. For the academic treatment, Distributed Systems: Principles and Paradigms by Tanenbaum and van Steen is the classic textbook used in university courses. A simple approach: read Kleppmann cover to cover, then dip into Tanenbaum when you want deeper fundamentals.

Distributed systems vs microservices: what is the actual difference?

The simplest way to understand distributed systems vs microservices is that microservices are one way of building a distributed system. A distributed system is any set of networked machines cooperating as one — a storage cluster, a database, a CDN, or a payments platform. Microservices architecture splits an application into independently deployable services that communicate over the network, which makes the application distributed by design. So every microservices app is a distributed system, but not every distributed system uses microservices.

What are the most common distributed systems interview questions?

The most frequently asked distributed systems interview questions cover CAP theorem and its trade-offs, strong vs eventual consistency, replication strategies, partitioning and sharding, consensus algorithms like Raft and Paxos, leader election, idempotency, and exactly-once vs at-least-once delivery. You are often asked to design a distributed cache, message queue, or URL shortener on the spot. These appear regularly in backend interviews at product companies for SDE-2 and senior roles, and at a lighter depth for fresher roles.

What is backend development in simple words?

In simple words, backend development is everything that happens on the server side of an application — the business logic, databases, APIs, authentication, and integrations that users never see but every app depends on. When you order food on Swiggy or pay through UPI, a backend processed that request, updated the database, and returned a response. Backend developers typically work with languages like Java, Python, and Go, databases like MySQL, PostgreSQL, and MongoDB, and frameworks like Spring Boot and Django.

How to learn backend development step by step as a fresher?

A proven backend development roadmap for freshers in India: (1) get strong in one language — Java, Python, or Go; (2) learn Git/GitHub and basic Linux; (3) master SQL and database fundamentals; (4) build REST APIs with a framework like Spring Boot, Django, or FastAPI; (5) add authentication, file handling, and third-party integrations; (6) deploy two or three complete projects with clear READMEs; (7) then layer on Docker, caching, message queues, and basic system design. Pair this with DSA practice, since most Indian product-company interviews test both. Six to nine months of consistent effort is a realistic timeline.

Is backend development using Python a good career choice in India?

Yes — backend development using Python is a solid choice, especially for startups and product companies that run Django, FastAPI, and Flask in production. Python is also one of the easiest languages to learn backend concepts with, and the skills (APIs, databases, caching, auth) transfer directly to Java or Go later. One caveat: large Indian IT firms and many MNCs still run heavily on Java with Spring Boot, so scan job postings for your target companies before committing. If your target stack is Python-heavy, it is absolutely a career-safe bet.

Do I need a paid backend development course to get placed?

A backend development course can help with structure and accountability, but it is not mandatory to get placed. Free resources like CS50, freeCodeCamp, and official framework documentation, combined with two or three well-built projects on GitHub, are enough for most fresher portfolios in India. Recruiters screen for projects, DSA ability, and internship experience — not certificates. Pay for a course only if self-study is not working for you; otherwise invest that time in building and deploying.

How to prepare for a system design interview?

To prepare for a system design interview, build fundamentals first — load balancing, caching, SQL vs NoSQL, indexing, sharding, replication, CAP theorem, message queues, and CDNs. Then lock in a repeatable framework: clarify requirements, estimate scale, define the API, design the data model, sketch the high-level architecture, and deep-dive into the main bottleneck. Practice 10–15 classic designs out loud (URL shortener, chat app, news feed, rate limiter) and do a few mock interviews. For fresher and SDE-1 roles in India, solid high-level design basics usually suffice, while SDE-2 interviews expect deeper trade-off discussions.

What are the most frequently asked system design interview questions?

The classic system design interview questions are: design a URL shortener, design WhatsApp or a chat app, design an Instagram/Twitter feed, design Uber, design Netflix or YouTube, design a notification system, design a rate limiter, design a web crawler, and design a ticket-booking system like BookMyShow. Companies like Amazon, Microsoft, Flipkart, Swiggy, and Zomato draw heavily from this set, with follow-ups on scaling, caching, and database choice. Preparing these 8–10 designs thoroughly covers most interviews.

Is the System Design Interview by Alex Xu enough to prepare?

System Design Interview by Alex Xu (Volumes 1 and 2) is one of the best foundations — Volume 1 teaches the step-by-step framework and core building blocks, while Volume 2 goes into advanced components like consistent hashing in depth and unique ID generation. On its own, though, it is not enough: you must practice articulating designs out loud, take mock interviews, and study how real systems handle failure. Treat the book as the backbone, then add speaking practice and hands-on depth.

What is Grokking the System Design Interview?

Grokking the System Design Interview is a well-known interactive course that teaches system design through a repeatable pattern — requirements, estimation, API design, data model, deep dive — applied to classics like the URL shortener, chat system, and news feed. It is commonly used alongside Alex Xu's books during interview prep. It is worth it as a structured starting point, but remember that interviews test live reasoning, so practice designing out loud and defending trade-offs rather than memorizing templates.

How to get a referral to Cohesity?

To get a referral to Cohesity, find a matching open role on the company careers page, tailor your resume to that specific job description, and reach out to a Cohesity employee with a short, specific ask — role ID, one line on why you fit, and your resume attached. Referred applications typically get reviewed faster than cold applications. Sarvesh Hon, a Software Engineer II at Cohesity, offers referrals through a priority DM or a 1:1 call, which is a direct route compared to applying cold. A polite, specific request with a clean, role-aligned resume dramatically improves your odds.