System Design
Link to part 1 - Computer Basics - I
Link to part 2 - Computer Basics - II
Link to part 3 - Computer Basics - III
Imagine building a house. You wouldn’t just start laying bricks on an empty plot, right? First, you’d think about things like location, size, floor plans, plumbing, wiring, and more.
Similarly, when building software like Instagram, Uber, or Netflix, you need careful planning. This is where system design comes in. It's essential for breaking down a large, complex system into different parts that work together.
As a product manager, you may not code, but it’s important to understand how the system is built, its components, and how they interact. This helps you make better decisions and guide the development process.
System design is the process of designing the architecture, components, modules, interface and data for a system to satisfy specified requirements. The design process should be well-documented and easy to follow so that everyone on the team understands the system.As a PM you will be working with different teams like developer, marketing, design and so on. You must keep in mind these important points:
- User Needs : What you customer actually wants and is your product fulfilling those.
- Company Goals : Line up your system design with the future goals of your company
- Technology, Budget & Resources : Check with the other teams regarding the available resources and efficient tech-stack
- Data Management: Identify the data the system will handle, how it will be stored, accessed, and protected. Address privacy and security early.
- System Integration: Ensure that the product integrates with other systems smoothly
- Functional - These are the requirements that the end user specifically demands as basic facilities that the system should offer. Eg. features & functionality
- Non-Functional - These are basically the quality constraints that the system must satisfy according to the project contract. Eg. performance, reliability.
- Upload Image
- Like
- Comment
- Share
- Any image uploaded by a user should not be lost.
- There should be no downtime.
- The load time of images should be very less.
- Multiple people should be able to access the platform at the same time.
To master system design, I have curated a list from which you can practice questions with the answer available -
Practice Question -
You are the Product Manager at Amazon and you have your meeting lined up your stakeholders (engineers, QA, DevOps). Create the high-level design (HLD) for a cart reminder notification on Amazon.
Comments
Post a Comment