Jumpstart Your Career: Learn System Design Concepts Now
Jumpstart Your Career: Learn System Design Concepts Now

Jumpstart Your Career: Learn System Design Concepts Now

Why do people think that system design concepts come only from experience?

Do you agree with that?

Yes, I agree with that, but that does not mean that system design concepts come only from experience and that you should not learn these concepts early in your career.

Should you wait 10-15 years to learn system design concepts?

I don't think so, and I don't agree with that. System design concepts are the foundation for software product development. If you start learning these concepts early in your career, you will have a good understanding of software product development and can grow faster in your career.

How?

Because if you can learn these things earlier in 5-7 years instead of waiting 10-15 years, then what's the problem?

After 5 years of experience, interviewers start expecting you to be aware of system design concepts, which makes perfect sense.

Don't you think so?

If not, think about it. The moment you start working as a senior software engineer or lead, you must start learning the concepts of system design and different approaches to system design. As your experience grows, the expectations of interviewers and companies also grow. They start expecting more from you.

What are the basic system design concepts?

First, to design a good system, you must understand the system requirements, including what you are going to develop, why you are developing it, and how you will develop the system. This is the very first step to designing a good system.

Second, you need to research if a similar system has already been developed in the market. If it has, you need to think about how you can design and develop a better system by adding additional features.

Third, design the complete steps on paper, detailing how the system will work, from taking inputs from the user to executing all the steps and achieving the end result. This approach will give you confidence and a complete picture of how your system will work end to end.

Fourth, design a complete business flow using online tools like draw.io . This is also called a Business Requirements Specification (BRS) document. This step will give you more confidence. Remember, each step will provide you with more and more confidence.

Fifth, once your BRS document is ready, convert it into an SRS (Software Requirements Specification) document, also known as an HLD (High-Level Diagram). This document will be more technical, detailing all the technical data flow, API integrations, third-party integrations, etc.

Sixth, it's now easy to convert that HLD diagram into a Low-Level Diagram (LLD). The LLD is a more detailed form of the system architecture, including the skeleton of the system, database architecture, controllers, models, and views. It covers each and everything in depth. An LLD means a developer can start their work based on that document without wasting time understanding what to do and how to do it. This document will cover everything and save the time of your developers, preventing them from getting stuck at every step.

Seventh, based on the BRS and SRS, the wireframe will be designed by product managers. Based on the wireframes, the UX will be designed by the UX team and converted into UI by the UI team.

Eighth, all the UI screens will be provided to the full-stack developers or individual frontend and backend teams. Backend developers will write all the required APIs, and the UI team or full-stack developers will integrate the APIs with the frontend. This is also called the engineering development phase.

Ninth, all the modules will be integrated into a single system after testing individual modules, and the complete software product will go for QA (Quality Analysis) or testing.

A complete deployment document will then be prepared by the engineering team, detailing all the necessary steps, such as dependencies to install on the server, required technologies to run the application, and infrastructure preparation by the DevOps team to deploy the application.

Tenth, based on the technical document provided by the engineering team, the infrastructure will be prepared on the cloud, and the application will be deployed via the CICD pipeline.

Eleventh, it is now the DevOps team's responsibility to monitor the application and address any issues with the help of the engineering team.

System design is not a small part; it includes everything. However, many people think that HLD and LLD are the only aspects of system design. In reality, all these steps are part of system design, not just the architecture.

HLD and LLD focus more on system performance, scalability, and user experience. They determine what technologies will be used to make the system scalable and perform all the necessary calculations based on daily traffic, such as how much RAM and disk space will be required, where to use caching, and queuing techniques, including the efficient use of data structures.

Don't wait for time to pass until you have 10-15 years of experience to learn all the system design concepts.

What if I can help you learn all these concepts earlier?

Doesn't that sound good? If it does, then drop me a message, and I will connect with you.


Sami Ahmad

Sr. Software Engineer | Expert in PHP, Laravel, CodeIgniter, JavaScript, and DevOps | Specializing in Travel CRM Solutions | 7+ Years of Experience

3 个月

Thanks

要查看或添加评论,请登录

Imtiyaz Khan的更多文章

社区洞察

其他会员也浏览了