Posts

Showing posts with the label Technical Questions

System Design Concepts for Product Managers — Part 2

Image
This is a system design series for Product Managers who should have a high-level understanding of System Design.  We will first cover the basic concepts of System Design. This is part 2 of System Design. Stay tuned for future updates. You can find  part_1  here. Database Sharding What is database Sharding? Credits:  https://www.geeksforgeeks.org/ Let’s start with an example, assume that you are a software engineer who is building a product for user management. You have to store the data of millions of users in your database. You have already realized that your user base is increasing rapidly; what you will do? First, you will try to increase the capacity of the Database; increasing the capacity of the database make the search query to be slow. Then you realize that you need to do a partition of the data and query the database according to the request. Databas e  Sharding is the process of breaking up the large data into smaller chunks called shards; a shard is a horizontal data partiti

System Design Concepts for Product Managers — Part 1

Image
This is a system design series for Product Managers who should have a high-level understanding of System Design. We will first cover the basic concepts of System Design. This is part 1, and stay tuned for future updates. 1. Load Balancer What is a Load Balancer? Load Balancer:  Load Balancer is a common term used widely when you are working on an application tha t  serves enormous traffic. Let’s understand with an example: Assume that Netflix has deployed several servers to handle the number of client requests. When we hit “Netflix.com”, how does Netflix know which server it has routed my request to? This is where the load balancer comes into the picture; load Balancers distribute the incoming traffic from the client efficiently across different servers and make sure that no server is getting overheated or overloaded. Reliability and availability are maintained by redirecting the incoming request to the available servers. Credits:  https://codeburst.io/ Load Balancing Algorithms The lo

Technical Fundamentals for Product Managers [3/3]

Image
  In   part-1   of the Technical fundamentals, we have understood about apps and databases. In   part-2 , we have understood software architecture and architectural views. In part 3 of Technical fundamentals, we will be discussing networking and cloud computing. We will understand all the concepts and keywords and then answer the question of “How the Internet works”. Computer Networks Computer Networks Computer networks are a set of interconnected   devices which are capable of sending and receiving data. The network devices are called nodes, and the links connecting the nodes are called communication channels. A node in the user application that participates as a server is called the host. Network Data Transmission Network Data Transmission Data is transferred from different layers from the uppermost layer (Application Layer) to the lowest layer (Physical layer). The user data from the application layer goes to the transport layer, where the data is attached to the port number, which

Technical Fundamentals for Product Managers [2/3]

Image
In part-1  of the Technical fundamentals, we have understood about apps and databases. In this part 2 of this article, we will be looking into application architecture and architecture views. There are broadly four types of application architecture. Application Architecture Client-Server Architecture: Client-Server Architecture In a client-server architecture, we have two parties; one is the client, and another is the server. The server provides services to multiple clients components, and the client components request services provided by the server. The server continues to listen for any request from the client component. For example, Email service N-tier Architecture: N-Tier Architecure In an N-tie r  architecture, different layers are abstract to provide unique functionality. Each layer has some programs written and which do a specific subtask. The output of one layer goes into another layer as an input. The most common layers in the N-tier architecture are following: Presentation