![Think Software](/img/default-banner.jpg)
- 35
- 1 047 356
Think Software
United States
Registrace 14. 07. 2019
Entrepreneur | Expert in Distributed Systems | Expert in Operating Systems | Technical Leader | Architect
If you are looking for information about
- How to ace the system design interview questions in big tech companies like Google, Facebook, Amazon, Microsoft, Apple, etc.
- Tips on improving your programming/coding skills
- Career advice about Software Development and working in a big technology company
You have come to the right channel. In this channel, I will be sharing my experiences in the field of software development.
Who am I? I am a Principal Engineer / Architect in one of the big technology companies having 16+ years of extensive experience of designing and developing distributed systems, system-level software and operating system components. I have a passion for helping and mentoring others. Through this CZcams channel, I like to expand my help to not just people who know me personally but to you who are sitting thousands of miles away from me.
If you are looking for information about
- How to ace the system design interview questions in big tech companies like Google, Facebook, Amazon, Microsoft, Apple, etc.
- Tips on improving your programming/coding skills
- Career advice about Software Development and working in a big technology company
You have come to the right channel. In this channel, I will be sharing my experiences in the field of software development.
Who am I? I am a Principal Engineer / Architect in one of the big technology companies having 16+ years of extensive experience of designing and developing distributed systems, system-level software and operating system components. I have a passion for helping and mentoring others. Through this CZcams channel, I like to expand my help to not just people who know me personally but to you who are sitting thousands of miles away from me.
Twitter Likes Count Design | Youtube Views Count Design | Near Realtime Counter System Design
CZcams Views Count Design | Twitter Likes Count Design | Near Realtime Counter System Design - In this video, I am discussing how to design a near realtime counter for counting systems like:
- Twitter Likes Count
- CZcams Views Count
- FB/Instagram Post Views Count
- FB/Instagram Post Likes Count
- Live Streaming View Count
Distributed System Design Interviews Bible | Best online resource for System Design Interview Preparation is now online. Please visit: www.thinksoftwarelearning.com?CZcams-tweet-likes-count
Please follow me on Think.Software.Community if you like to get notified about new course chapters getting added or any other updates. I will also take your suggestions there about the course and the channel.
Check out our following articles:
- How to Ace Object-Oriented Design Interviews: thinksoftware.medium.com/how-to-ace-object-oriented-design-interviews-4f9a667e0780
- Elevator System Design - A tricky technical interview question: thinksoftware.medium.com/elevator-system-design-a-tricky-technical-interview-question-116f396f2b1c
- System Design of URL Shortening Service like TinyURL: thinksoftware.medium.com/tinyurl-design-from-the-bible-of-distributed-system-design-interviews-fcf821ec859
- File Sharing Service Like Dropbox Or Google Drive - How To Tackle System Design Interview: thinksoftware.medium.com/how-to-tackle-system-design-interview-for-file-sharing-service-like-dropbox-or-google-drive-7983fdbf1a82
- Design Twitter - Microservices Architecture of Twitter Service: thinksoftware.medium.com/design-twitter-microservices-architecture-of-twitter-service-996ddd68e1ca
- How to Effectively Use Mock Interviews to Prepare for FAANG Software Engineering Interviews: thinksoftware.medium.com/how-to-effectively-use-mock-interviews-to-prepare-for-faang-software-engineering-interviews-7e7bffac978
- Robinhood Backend System Design - How to receive realtime stock updates: thinksoftware.medium.com/robinhood-backend-system-design-how-to-receive-realtime-stock-updates-56cd0009bd0
- Payment Gateway System Design - How does the Stripe work: thinksoftware.medium.com/payment-gateway-system-design-how-does-the-stripe-work-917b2ba976f
- Grokking the Product Design vs. System Design Interviews: thinksoftware.medium.com/grokking-the-product-design-vs-system-design-interviews-419520a65d49
- Selecting the best database for your service: thinksoftware.medium.com/selecting-the-best-database-for-your-system-design-interview-c184d6828694
#SystemDesign #DistributedSystems #FAANG #Facebook #Google #Amazon #Apple #Microsoft #Uber #Netflix #Oracle #Lyft #Interview #ComputerProgramming
- Twitter Likes Count
- CZcams Views Count
- FB/Instagram Post Views Count
- FB/Instagram Post Likes Count
- Live Streaming View Count
Distributed System Design Interviews Bible | Best online resource for System Design Interview Preparation is now online. Please visit: www.thinksoftwarelearning.com?CZcams-tweet-likes-count
Please follow me on Think.Software.Community if you like to get notified about new course chapters getting added or any other updates. I will also take your suggestions there about the course and the channel.
Check out our following articles:
- How to Ace Object-Oriented Design Interviews: thinksoftware.medium.com/how-to-ace-object-oriented-design-interviews-4f9a667e0780
- Elevator System Design - A tricky technical interview question: thinksoftware.medium.com/elevator-system-design-a-tricky-technical-interview-question-116f396f2b1c
- System Design of URL Shortening Service like TinyURL: thinksoftware.medium.com/tinyurl-design-from-the-bible-of-distributed-system-design-interviews-fcf821ec859
- File Sharing Service Like Dropbox Or Google Drive - How To Tackle System Design Interview: thinksoftware.medium.com/how-to-tackle-system-design-interview-for-file-sharing-service-like-dropbox-or-google-drive-7983fdbf1a82
- Design Twitter - Microservices Architecture of Twitter Service: thinksoftware.medium.com/design-twitter-microservices-architecture-of-twitter-service-996ddd68e1ca
- How to Effectively Use Mock Interviews to Prepare for FAANG Software Engineering Interviews: thinksoftware.medium.com/how-to-effectively-use-mock-interviews-to-prepare-for-faang-software-engineering-interviews-7e7bffac978
- Robinhood Backend System Design - How to receive realtime stock updates: thinksoftware.medium.com/robinhood-backend-system-design-how-to-receive-realtime-stock-updates-56cd0009bd0
- Payment Gateway System Design - How does the Stripe work: thinksoftware.medium.com/payment-gateway-system-design-how-does-the-stripe-work-917b2ba976f
- Grokking the Product Design vs. System Design Interviews: thinksoftware.medium.com/grokking-the-product-design-vs-system-design-interviews-419520a65d49
- Selecting the best database for your service: thinksoftware.medium.com/selecting-the-best-database-for-your-system-design-interview-c184d6828694
#SystemDesign #DistributedSystems #FAANG #Facebook #Google #Amazon #Apple #Microsoft #Uber #Netflix #Oracle #Lyft #Interview #ComputerProgramming
zhlédnutí: 17 408
Video
Foundation of Distributed Systems Security | Symmetric Keys | Asymmetric Keys | Digital Certificates
zhlédnutí 2,6KPřed rokem
Foundation of Distributed Systems Security | Symmetric Keys | Asymmetric Keys | Digital Certificates - In this video, we are discussing important computer cryptography concepts like Symmetric Key, Asymmetric or Public-Private Key Pair and Digital Certificates. Distributed System Design Interviews Bible | Best online resource for System Design Interview Preparation is now online. Please visit: w...
Types of Databases | Criteria to choose the best database in the System Design Interview
zhlédnutí 17KPřed rokem
One of the most important things in a System Design interview is to choose the best database for the right use case. In this video we are discussing what are the different types of databases, what are different criteria to choose the best database for your service and how to choose the best database for your service during system design interview. 00:00 - Introduction & why choosing the best da...
Cracking the Coding Interview | How To Ace Coding Interview | Binary Tree Right Side View
zhlédnutí 2,1KPřed 2 lety
Cracking the Coding Interview |How To Ace Coding Interview | Binary Tree Right Side View In this video, I am discussing how to crack the coding interview. This video discusses what are the different steps that you should follow to ace the coding interview. I am providing different tips that you should follow during your coding interview question. Then I am also solving a leetcode coding questio...
Object Storage Service Design | S3 System Design | Mock Interview | Distributed System Design
zhlédnutí 3,1KPřed 2 lety
Object Storage Service Design | S3 System Design | Mock Interview | Distributed System Design. This video is a mock system design interview for designing an object storage service like S3. Distributed System Design Interviews Bible | Best online resource for System Design Interview Preparation is now online. Please visit: www.thinksoftwarelearning.com?CZcams-S3-mock Please follow me on facebook...
Grokking the Product Design vs. System Design Interviews | Using Stripe Payment Gateway Design
zhlédnutí 7KPřed 2 lety
Grokking the Product Design vs. System Design Interviews | Using Stripe Payment Gateway Design - In this video, we are going to discuss what are the differences between a Product Design vs. a System Design Interview. Now, a days many companies are asking Product Design Interviews as well (such as Meta) to even software engineering candidates. Most candidates do not understand the difference bet...
Introduction to Payment Gateway System Design | Design Payment System | Stripe Product Design
zhlédnutí 57KPřed 2 lety
Payment Gateway System Design | Design Payment System | Payment Service Design | Stripe Product System Design - In this video, we are discussing how to design a payment gateway service such as Stripe Payment Service. A Payment service is an important distributed system that is used almost everywhere where money is involved. In this video we are discussing how does the credit card system work an...
Robinhood Stock Exchange System Design | How to Receive Realtime Stock Updates
zhlédnutí 48KPřed 2 lety
This is related to Stock Exchange System Design. In this video, I am discussing how Robinhood or similar stock exchange broker apps can enable receiving realtime stock updates for their customers. In this video, I first discuss a very simple design and then evolve that design to support scalability and high-availability. 00:00 - Introduction 01:35 - A Very Simple Design of Robinhood Realtime St...
How to best prepare for system design interviews | Top Tips for system design interviews preparation
zhlédnutí 21KPřed 2 lety
How to best prepare for system design interviews - In this video I am sharing tips about how to prepare for system design interviews. Distributed System Design Interviews Bible | Best online resource for System Design Interview Preparation is now online. Please visit: www.thinksoftwarelearning.com?CZcams-top-tips-prep Please follow me on Think.Software.Community if you like to get ...
Eventual Consistency vs. Strong Consistency | How to decide between the two in System Design
zhlédnutí 14KPřed 3 lety
This video discusses the reasons why we prefer eventual consistency over strong consistency in certain scenarios and discuss three real-life scenarios. 00:00 - Introduction 01:00 - Criteria for using eventual consistency vs strong consistency 01:50 - Strong consistency in TinyURL Datastore vs eventual consistency 03:38 - Eventual Consistency in calculating likes count on a Tweet in Twitter Desi...
Facebook Newsfeed | Instagram Newsfeed | System Design Mock Interview From System Design Bible
zhlédnutí 7KPřed 3 lety
Check how you can tailor the experience you gain from System Design of Twitter Service to conduct Facebook Newsfeed System Design or Instagram Newsfeed System Design. This is a partial video from the course and for full video check out the course. Distributed System Design Interviews Bible | Best online resource for System Design Interview Preparation is now online. Please visit: www.thinksoftw...
Robinhood Stock Application Backend Design | Mock System Design Interview From System Design Bible
zhlédnutí 26KPřed 3 lety
For the full video check out the course Distributed System Design Interviews Bible. Distributed System Design Interviews Bible | Best online resource for System Design Interview Preparation is now online. Please visit: www.thinksoftwarelearning.com?CZcams-robinhood-mock Please follow me on Think.Software.Community if you like to get notified about new course chapters getting added ...
Google Drive System Design | Dropbox System Design | File Sharing Service System Design
zhlédnutí 44KPřed 3 lety
Dropbox System Design video discusses the high-level system design of a file sharing service like Dropbox or Google Drive. For more details on the design of file sharing services like Dropbox or Google Drive, check the chapter on the Dropbox System Design in Distributed System Design Interviews Bible | Best online resource for System Design Interview Preparation. Please visit www.thinksoftwarel...
Distributed Systems Introduction | From Single Machine Application to Distributed Service
zhlédnutí 25KPřed 3 lety
Distributed Systems Introduction | From Single Machine Application to Distributed Service This video provides a high-level overview of what distributed systems are? In this video, we are discussing how to evolve a single machine service to a true distributed service. In this video, you can find the following: 00:00 - Introduction to Distributed Systems 00:40 - A Single Machine Service 02:00 - I...
Netflix System Design - Mock System Design Interview Highlights from System Design Interview Bible
zhlédnutí 6KPřed 3 lety
Netflix System Design - Mock System Design Interview Highlights from System Design Interview Bible
Elevator System Design | Grokking the Object Oriented System Design Interview Question
zhlédnutí 161KPřed 3 lety
Elevator System Design | Grokking the Object Oriented System Design Interview Question
Distributed System Design Interviews Bible | Best resource for System Design Interviews Preparation
zhlédnutí 3,7KPřed 3 lety
Distributed System Design Interviews Bible | Best resource for System Design Interviews Preparation
Uber System Design - Mock Interview from The Bible of Distributed Systems Design Interviews Course
zhlédnutí 12KPřed 3 lety
Uber System Design - Mock Interview from The Bible of Distributed Systems Design Interviews Course
Distributed Systems | Best Distributed Systems Design Interview Preparation Course
zhlédnutí 3,4KPřed 3 lety
Distributed Systems | Best Distributed Systems Design Interview Preparation Course
Online Resources for System Design Interviews | 1000 Subscribers Milestone Reached - Yay!
zhlédnutí 4,6KPřed 4 lety
Online Resources for System Design Interviews | 1000 Subscribers Milestone Reached - Yay!
System Design And Architecture Interview Preparation Series
zhlédnutí 8KPřed 4 lety
System Design And Architecture Interview Preparation Series
How to tackle System Design Interview | Youtube System Design | Youtube Search System Design
zhlédnutí 18KPřed 4 lety
How to tackle System Design Interview | CZcams System Design | CZcams Search System Design
Tinder Microservices Architecture | Online Dating App System Design
zhlédnutí 21KPřed 4 lety
Tinder Microservices Architecture | Online Dating App System Design
Parking Lot Design | Grokking The Object Oriented Design Interview Question
zhlédnutí 304KPřed 4 lety
Parking Lot Design | Grokking The Object Oriented Design Interview Question
Programming Tips 101 - Don't mix transactional and non-transactional database calls
zhlédnutí 2KPřed 4 lety
Programming Tips 101 - Don't mix transactional and non-transactional database calls
Whatsapp System Design | Chat Messaging Systems Design - System Design Interview Question
zhlédnutí 46KPřed 4 lety
Whatsapp System Design | Chat Messaging Systems Design - System Design Interview Question
Programming Tips 101 - The Right Way To Access Hash table
zhlédnutí 2,7KPřed 4 lety
Programming Tips 101 - The Right Way To Access Hash table
Grokking the Uber System Design Interview - Ride Sharing Service Design | OLA System Design
zhlédnutí 52KPřed 4 lety
Grokking the Uber System Design Interview - Ride Sharing Service Design | OLA System Design
Twitter System Design - Part II - System Design Twitter Search
zhlédnutí 18KPřed 4 lety
Twitter System Design - Part II - System Design Twitter Search
Twitter System Design - Microservices Architecture Part I - Google Interview Question
zhlédnutí 27KPřed 4 lety
Twitter System Design - Microservices Architecture Part I - Google Interview Question
the removal of parking spots from min heap wont be kLog(n)... but it will be top for only 1 heap right for others it need not be the top element... finding the element will take time and so after removal heapify will run.... increasing the time
Excellent and thought provoking, I like your teaching style where you answer and give thought provoking questions.
Great system-design-of-nextflix-or-other-products video!
so I am not sure how things are concluded. is the cache going to hold counters for all of the history that ever exists? and there's two types of consumers? one that writes individual like records to DB and one that stream aggregate and update increments to the Distributed cache?
very useful video
Waste of time. This is just an ad.
Thanks for such a great video! I have a query, why are we passing time and spot type instead of just passing the ticket (which contains both) ? Is it because of principle of least privilege?
While System design you somewhere jumped into problem solving with different scenarios. I feel that is not the goal of system design.
14:40 we can not search using key-value data store for specific value. Facebook used for messenger HBase NoSql database (key-value store) then they moved to "MyRocks, Facebook’s open source database project that integrates RocksDB as a MySQL storage engine." In messenger there's clearly an option to search by phrase. Q: Can you give some comment regarding this matter ?
I'd like to see a deep dive into Session or Fanout services
For the last use case for dispatcher algorithm where the elevator is going opposite direction to passenger, how is it different from the state where the elevator is going opposite direction to which the passenger wants to go? Seems like the same state else we are more inclined to say that passenger is on floor 1 and elevator is moving to any floor which is > 1, the last state did not make much sense to me or I got it wrong.. do let me know..
Functional requirement mentioned the need to check for the max weight and number of passengers translates to the max weight.. I did not get what we would not need the passenger class in this design as the above are calculated based on passenger object attributes
can you please suggest the order in which I should go through your videos on system design
explained very well and so easily
Doubt, when we're using queues, how dispatch server knows what are all stocks that i had to initiate connection with stock exchange ? Say, User is interested in Apple, how that's being communicated to dispatch server ?
Good video , please add database selection info more like what db and why ?
I don't see how divide and conquer would help in this scenario. Most people would go from floor 1 to the floor where they live and back. Very rarely you would see people going to other floors from floor x != 1. You could have them change elevator cars midway or so, but that is quite an inconvenience (and it would be very annoying if I had to switch 3 or more cars to reach my floor from the bottom). Maybe an adaptive system based on real-time traffic would work, or maybe a division based on functional areas of the building: office floors, living floors, cafeteria/gym floors etc, but that would entail a lot of extra complexity.
This is great content. Thanks!
This is good you create curiosity what could be done to fix, what could be done to optimise.. Good teacher does not provide the exact solution they lead to that solution
Do we really need ParkingSpotNearEntrance class extending ParkingSpotAgreementStrategy?? I am bit confused on how it is going to help
such a 42.49 minutes waste of my time.... total waste.....
Watched. --
watched. --
One of the best video content sir, keep on doing it .!
Hello, thank you for the video! I wanted to ask, why do we model different types of parking spots (e.g. handicap, compact, etc.) if the assignment of cars coming in to a parking spot does not seem to consider the type of car that should match the type of parking spot?
Dont we need to consider the weight of the passenger? The total weight of passengers should be less thn threshold. I feel we need passenger object
This shows that you already know about elevator. Also there is no implementation. I would like to see requirement -> implementation. Refine requirement, refine implementation,
interns at the end🤣
Every tweet will have the tweet_like_count field. Shouldn't we add the tweet_like_count field to the existing Tweets table? What are the pros of creating a new table?
You said no need to include vehicles but is there even a need to have a parking spot object? You could just have an ints tracking the available counts. Especially since in reality people wouldn't be allocated a particular spot...if the machine says "park on the top floor at the back" but they see a person just starting to leave on the first floor near the shop entrance then they would take that one instead You said enum type is bad but the general mantra is "favour composition over inheritance" Similarly you have entry/exit terminal using inheritance but they have different methods and you'd have to cast to make use of them
Very well explained. This should be the top video for explaining how certificates and TLS works. Liking and sharing as well.
The first part was good but the algorithm part was confusing. And at no in this video did you mention about state of the elevators controlled by the people who are inside the elevator. There would be a number pad inside the elevator where people press the actual floor button. For example, 10 people get in the elevator on floor 2. One of them wants to go to floor 1 and 9 of them want to go floor 100. Essentially it has two key functions: elevator summon and passanger dispatch. You haven't attempted to make any distinction between the two at any point in this video
There are only 65,410 ports available for general use. You don't mention this when outlining the system design.
What if the counter db fails? It is not fault tolerant in that case right?
Please improve your handwriting
Why don't you use a database to write the updates from exchange. The front end servers may be stateless and just query (point read) from database.
Watched. --
best one
similar question asked in razorpay, today
Thanks for covering the breadth of the different solutions. You started with brute force and worked up to suggest some kind of an optimal solution. However, rather than telling the "WHY" part of choosing a design pattern - you are leaving it up to the viewers to interpret and decide. Would have definitely subscribed and liked your content for wholesome information and depth.
How is top down approach not following OOPs principles?
As per your design, if a new queue is created for each follower, twitter has to create billions of queues to update the messages in home time line of all the folllowers for all active users. Assume we use Kafka. Is it possible to maintain bllions of topics/queues?
Where am I suggesting to create as many queues as followers?
I found it very useful and insightful, happy to explore whatsapp videos for any missing stuff. I am not a developer but this gives a good overview.
13:47 if you use kafka and your consumer manually commit offsets, then after consumer died zookeeper will re-arrange topics and assign the topic to another consumer. new consumer will continue from last comimted offset. considering that, we may want to put all the updates regarding the batch into single transaction, rather than do atomic updates for every tweet.
Thankyou for asking so many questions during the design. It really helps to take a pause, think and question yourself. Your system design is very clear and informative. Thankyou
It will be nice to show how the records in each db looks like in your video. It will help to digest your content.
How will you search for an element and remove it from a minheap in log(n)? I think it is not possible.
What is the lifespan/life cycle of a session? Is same sesion and session id maintained between two users for ever?
Thanks!
Let's say we are using 4 min heaps for 4 entrances to get the closest parking spot. Then we also have 4 of 5 different types of parking spots (handicap, regular, compact, large, motorcycle), then how can we fulfill that requirement? Should we keep separate heaps for types as well?