Full transcript of prepare-system-design-interviews. Source: https://www.youtube.com/watch?v=Ru54dxzCyD0

WEBVTT Kind: captions Language: en

00:00:00.240 —> 00:00:01.829 align:start position:0%

If<00:00:00.400> you<00:00:00.560> click<00:00:00.800> play<00:00:00.960> on<00:00:01.120> this<00:00:01.280> video,<00:00:01.600> then

00:00:01.829 —> 00:00:01.839 align:start position:0% If you click play on this video, then

00:00:01.839 —> 00:00:03.110 align:start position:0% If you click play on this video, then you<00:00:02.000> probably<00:00:02.240> have<00:00:02.399> an<00:00:02.639> interview<00:00:02.879> coming

00:00:03.110 —> 00:00:03.120 align:start position:0% you probably have an interview coming

00:00:03.120 —> 00:00:04.789 align:start position:0% you probably have an interview coming up.<00:00:03.679> My<00:00:03.840> guess<00:00:04.000> is<00:00:04.160> that<00:00:04.319> you<00:00:04.400> feel<00:00:04.560> good<00:00:04.720> about

00:00:04.789 —> 00:00:04.799 align:start position:0% up. My guess is that you feel good about

00:00:04.799 —> 00:00:06.230 align:start position:0% up. My guess is that you feel good about how<00:00:04.960> to<00:00:05.120> prepare<00:00:05.279> for<00:00:05.440> coding<00:00:05.759> interviews,

00:00:06.230 —> 00:00:06.240 align:start position:0% how to prepare for coding interviews,

00:00:06.240 —> 00:00:08.190 align:start position:0% how to prepare for coding interviews, but<00:00:06.560> system<00:00:06.879> design<00:00:07.359> makes<00:00:07.600> you<00:00:07.759> a<00:00:07.839> little<00:00:07.919> bit

00:00:08.190 —> 00:00:08.200 align:start position:0% but system design makes you a little bit

00:00:08.200 —> 00:00:10.629 align:start position:0% but system design makes you a little bit nervous.<00:00:09.200> I’m<00:00:09.360> Evan.<00:00:09.840> I’m<00:00:10.000> a<00:00:10.160> former<00:00:10.320> Meta

00:00:10.629 —> 00:00:10.639 align:start position:0% nervous. I’m Evan. I’m a former Meta

00:00:10.639 —> 00:00:12.150 align:start position:0% nervous. I’m Evan. I’m a former Meta Staff<00:00:10.880> engineer<00:00:11.200> and<00:00:11.360> I’ve<00:00:11.519> conducted<00:00:11.840> many

00:00:12.150 —> 00:00:12.160 align:start position:0% Staff engineer and I’ve conducted many

00:00:12.160 —> 00:00:13.830 align:start position:0% Staff engineer and I’ve conducted many hundreds<00:00:12.480> of<00:00:12.639> interviews.<00:00:13.280> And<00:00:13.440> I’m<00:00:13.599> now<00:00:13.759> the

00:00:13.830 —> 00:00:13.840 align:start position:0% hundreds of interviews. And I’m now the

00:00:13.840 —> 00:00:15.990 align:start position:0% hundreds of interviews. And I’m now the co-founder<00:00:14.320> of<00:00:14.480> Hello<00:00:14.880> Interview.<00:00:15.679> Hello

00:00:15.990 —> 00:00:16.000 align:start position:0% co-founder of Hello Interview. Hello

00:00:16.000 —> 00:00:17.189 align:start position:0% co-founder of Hello Interview. Hello Interview<00:00:16.240> is<00:00:16.320> a<00:00:16.480> platform<00:00:16.800> that<00:00:16.960> helps

00:00:17.189 —> 00:00:17.199 align:start position:0% Interview is a platform that helps

00:00:17.199 —> 00:00:18.710 align:start position:0% Interview is a platform that helps candidates<00:00:17.680> just<00:00:17.840> like<00:00:18.000> you<00:00:18.240> prepare<00:00:18.560> for

00:00:18.710 —> 00:00:18.720 align:start position:0% candidates just like you prepare for

00:00:18.720 —> 00:00:20.790 align:start position:0% candidates just like you prepare for their<00:00:18.880> upcoming<00:00:19.279> interviews.<00:00:20.160> In<00:00:20.400> this<00:00:20.560> role,

00:00:20.790 —> 00:00:20.800 align:start position:0% their upcoming interviews. In this role,

00:00:20.800 —> 00:00:22.070 align:start position:0% their upcoming interviews. In this role, I’ve<00:00:21.039> now<00:00:21.199> worked<00:00:21.359> with<00:00:21.600> hundreds<00:00:21.920> of

00:00:22.070 —> 00:00:22.080 align:start position:0% I’ve now worked with hundreds of

00:00:22.080 —> 00:00:23.670 align:start position:0% I’ve now worked with hundreds of thousands<00:00:22.400> of<00:00:22.560> candidates.<00:00:23.359> And<00:00:23.519> through

00:00:23.670 —> 00:00:23.680 align:start position:0% thousands of candidates. And through

00:00:23.680 —> 00:00:24.870 align:start position:0% thousands of candidates. And through that,<00:00:23.920> I’ve<00:00:24.080> gained<00:00:24.320> a<00:00:24.480> really<00:00:24.640> good

00:00:24.870 —> 00:00:24.880 align:start position:0% that, I’ve gained a really good

00:00:24.880 —> 00:00:26.470 align:start position:0% that, I’ve gained a really good understanding<00:00:25.359> of<00:00:25.519> what<00:00:25.760> works<00:00:26.000> and<00:00:26.240> what

00:00:26.470 —> 00:00:26.480 align:start position:0% understanding of what works and what

00:00:26.480 —> 00:00:28.470 align:start position:0% understanding of what works and what doesn’t.<00:00:27.439> And<00:00:27.599> so<00:00:27.760> I<00:00:27.920> know<00:00:28.000> that<00:00:28.160> system

00:00:28.470 —> 00:00:28.480 align:start position:0% doesn’t. And so I know that system

00:00:28.480 —> 00:00:30.550 align:start position:0% doesn’t. And so I know that system design<00:00:28.800> can<00:00:28.960> feel<00:00:29.199> incredibly<00:00:29.679> overwhelming,

00:00:30.550 —> 00:00:30.560 align:start position:0% design can feel incredibly overwhelming,

00:00:30.560 —> 00:00:33.110 align:start position:0% design can feel incredibly overwhelming, but<00:00:30.800> it<00:00:31.039> doesn’t<00:00:31.359> have<00:00:31.599> to<00:00:31.760> be.<00:00:32.480> The<00:00:32.719> key,<00:00:32.960> just

00:00:33.110 —> 00:00:33.120 align:start position:0% but it doesn’t have to be. The key, just

00:00:33.120 —> 00:00:34.709 align:start position:0% but it doesn’t have to be. The key, just like<00:00:33.280> with<00:00:33.440> leak<00:00:33.760> code<00:00:33.920> for<00:00:34.079> coding<00:00:34.320> prep,<00:00:34.559> is

00:00:34.709 —> 00:00:34.719 align:start position:0% like with leak code for coding prep, is

00:00:34.719 —> 00:00:37.190 align:start position:0% like with leak code for coding prep, is to<00:00:34.880> work<00:00:35.120> backwards<00:00:35.600> from<00:00:35.840> common<00:00:36.200> problems.

00:00:37.190 —> 00:00:37.200 align:start position:0% to work backwards from common problems.

00:00:37.200 —> 00:00:38.549 align:start position:0% to work backwards from common problems. I’m<00:00:37.360> going<00:00:37.440> to<00:00:37.520> tell<00:00:37.680> you<00:00:37.840> exactly<00:00:38.239> which

00:00:38.549 —> 00:00:38.559 align:start position:0% I’m going to tell you exactly which

00:00:38.559 —> 00:00:40.389 align:start position:0% I’m going to tell you exactly which problems<00:00:39.040> I<00:00:39.280> would<00:00:39.440> focus<00:00:39.680> on<00:00:39.840> and<00:00:40.000> in<00:00:40.239> what

00:00:40.389 —> 00:00:40.399 align:start position:0% problems I would focus on and in what

00:00:40.399 —> 00:00:42.069 align:start position:0% problems I would focus on and in what order<00:00:40.879> a<00:00:41.120> little<00:00:41.200> bit<00:00:41.360> later<00:00:41.520> on<00:00:41.680> in<00:00:41.920> this

00:00:42.069 —> 00:00:42.079 align:start position:0% order a little bit later on in this

00:00:42.079 —> 00:00:44.310 align:start position:0% order a little bit later on in this video.<00:00:42.800> But<00:00:42.960> before<00:00:43.280> diving<00:00:43.680> into<00:00:43.920> specific

00:00:44.310 —> 00:00:44.320 align:start position:0% video. But before diving into specific

00:00:44.320 —> 00:00:46.110 align:start position:0% video. But before diving into specific questions,<00:00:45.120> you<00:00:45.280> would<00:00:45.440> need<00:00:45.520> a<00:00:45.760> basic

00:00:46.110 —> 00:00:46.120 align:start position:0% questions, you would need a basic

00:00:46.120 —> 00:00:47.990 align:start position:0% questions, you would need a basic foundation.<00:00:47.120> And<00:00:47.280> so<00:00:47.440> the<00:00:47.600> first<00:00:47.680> thing<00:00:47.840> I

00:00:47.990 —> 00:00:48.000 align:start position:0% foundation. And so the first thing I

00:00:48.000 —> 00:00:49.190 align:start position:0% foundation. And so the first thing I would<00:00:48.079> do<00:00:48.160> is<00:00:48.320> I<00:00:48.480> would<00:00:48.559> understand<00:00:48.879> what<00:00:49.039> the

00:00:49.190 —> 00:00:49.200 align:start position:0% would do is I would understand what the

00:00:49.200 —> 00:00:51.389 align:start position:0% would do is I would understand what the hell<00:00:49.360> a<00:00:49.600> system<00:00:49.840> design<00:00:50.239> interview<00:00:50.879> actually

00:00:51.389 —> 00:00:51.399 align:start position:0% hell a system design interview actually

00:00:51.399 —> 00:00:54.150 align:start position:0% hell a system design interview actually is.<00:00:52.399> Then<00:00:52.879> I<00:00:53.120> would<00:00:53.199> go<00:00:53.360> ahead<00:00:53.520> and<00:00:53.680> refresh<00:00:54.000> on

00:00:54.150 —> 00:00:54.160 align:start position:0% is. Then I would go ahead and refresh on

00:00:54.160 —> 00:00:55.510 align:start position:0% is. Then I would go ahead and refresh on my<00:00:54.320> fundamentals.<00:00:54.960> These<00:00:55.120> are<00:00:55.280> going<00:00:55.280> to<00:00:55.360> be

00:00:55.510 —> 00:00:55.520 align:start position:0% my fundamentals. These are going to be

00:00:55.520 —> 00:00:57.189 align:start position:0% my fundamentals. These are going to be concepts<00:00:55.840> that<00:00:56.000> you<00:00:56.160> likely<00:00:56.480> learned<00:00:56.719> back<00:00:56.960> in

00:00:57.189 —> 00:00:57.199 align:start position:0% concepts that you likely learned back in

00:00:57.199 —> 00:00:59.590 align:start position:0% concepts that you likely learned back in college<00:00:57.440> and<00:00:57.680> just<00:00:57.840> need<00:00:58.000> a<00:00:58.160> touch<00:00:58.359> up.<00:00:59.359> From

00:00:59.590 —> 00:00:59.600 align:start position:0% college and just need a touch up. From

00:00:59.600 —> 00:01:01.430 align:start position:0% college and just need a touch up. From here,<00:00:59.840> I’d<00:01:00.079> get<00:01:00.239> familiar<00:01:00.480> with<00:01:00.719> the<00:01:00.960> basic

00:01:01.430 —> 00:01:01.440 align:start position:0% here, I’d get familiar with the basic

00:01:01.440 —> 00:01:03.349 align:start position:0% here, I’d get familiar with the basic components<00:01:01.920> that<00:01:02.160> are<00:01:02.320> present<00:01:02.559> in<00:01:02.719> in<00:01:03.039> almost

00:01:03.349 —> 00:01:03.359 align:start position:0% components that are present in in almost

00:01:03.359 —> 00:01:06.070 align:start position:0% components that are present in in almost every<00:01:03.520> single<00:01:03.840> system<00:01:04.280> design.<00:01:05.280> And<00:01:05.519> then<00:01:05.920> we

00:01:06.070 —> 00:01:06.080 align:start position:0% every single system design. And then we

00:01:06.080 —> 00:01:07.590 align:start position:0% every single system design. And then we can<00:01:06.240> finally<00:01:06.560> start<00:01:06.720> to<00:01:06.880> work<00:01:07.040> backwards<00:01:07.439> from

00:01:07.590 —> 00:01:07.600 align:start position:0% can finally start to work backwards from

00:01:07.600 —> 00:01:09.350 align:start position:0% can finally start to work backwards from those<00:01:07.760> common<00:01:08.080> problems<00:01:08.720> so<00:01:08.880> that<00:01:09.040> we<00:01:09.200> can

00:01:09.350 —> 00:01:09.360 align:start position:0% those common problems so that we can

00:01:09.360 —> 00:01:11.910 align:start position:0% those common problems so that we can build<00:01:09.600> a<00:01:09.840> deeper<00:01:10.520> understanding.<00:01:11.520> Now,

00:01:11.910 —> 00:01:11.920 align:start position:0% build a deeper understanding. Now,

00:01:11.920 —> 00:01:13.190 align:start position:0% build a deeper understanding. Now, you’ll<00:01:12.159> probably<00:01:12.320> note<00:01:12.640> this<00:01:12.799> strategy

00:01:13.190 —> 00:01:13.200 align:start position:0% you’ll probably note this strategy

00:01:13.200 —> 00:01:15.030 align:start position:0% you’ll probably note this strategy mirrors<00:01:13.600> how<00:01:13.840> you’re<00:01:14.080> already<00:01:14.479> preparing<00:01:14.799> for

00:01:15.030 —> 00:01:15.040 align:start position:0% mirrors how you’re already preparing for

00:01:15.040 —> 00:01:17.190 align:start position:0% mirrors how you’re already preparing for coding<00:01:15.360> interviews,<00:01:16.240> identifying<00:01:16.720> patterns

00:01:17.190 —> 00:01:17.200 align:start position:0% coding interviews, identifying patterns

00:01:17.200 —> 00:01:19.270 align:start position:0% coding interviews, identifying patterns across<00:01:17.680> problems<00:01:18.320> rather<00:01:18.640> than<00:01:18.799> memorizing

00:01:19.270 —> 00:01:19.280 align:start position:0% across problems rather than memorizing

00:01:19.280 —> 00:01:21.510 align:start position:0% across problems rather than memorizing random<00:01:19.680> solutions.<00:01:20.640> Let<00:01:20.880> me<00:01:20.960> show<00:01:21.040> you<00:01:21.200> what<00:01:21.360> I

00:01:21.510 —> 00:01:21.520 align:start position:0% random solutions. Let me show you what I

00:01:21.520 —> 00:01:23.749 align:start position:0% random solutions. Let me show you what I mean.<00:01:21.920> So,<00:01:22.240> first<00:01:22.400> off,<00:01:22.799> what<00:01:23.040> is<00:01:23.280> a<00:01:23.439> system

00:01:23.749 —> 00:01:23.759 align:start position:0% mean. So, first off, what is a system

00:01:23.759 —> 00:01:25.749 align:start position:0% mean. So, first off, what is a system design<00:01:24.080> interview?<00:01:24.799> Well,<00:01:25.040> a<00:01:25.200> system<00:01:25.439> design

00:01:25.749 —> 00:01:25.759 align:start position:0% design interview? Well, a system design

00:01:25.759 —> 00:01:27.190 align:start position:0% design interview? Well, a system design interview<00:01:26.080> evaluates<00:01:26.560> your<00:01:26.720> ability<00:01:26.960> to

00:01:27.190 —> 00:01:27.200 align:start position:0% interview evaluates your ability to

00:01:27.200 —> 00:01:29.830 align:start position:0% interview evaluates your ability to architect<00:01:27.759> complex,<00:01:28.640> scalable<00:01:29.200> systems<00:01:29.520> that

00:01:29.830 —> 00:01:29.840 align:start position:0% architect complex, scalable systems that

00:01:29.840 —> 00:01:32.149 align:start position:0% architect complex, scalable systems that solve<00:01:30.159> real<00:01:30.400> world<00:01:30.759> problems.<00:01:31.759> Sounds<00:01:32.000> like

00:01:32.149 —> 00:01:32.159 align:start position:0% solve real world problems. Sounds like

00:01:32.159 —> 00:01:34.069 align:start position:0% solve real world problems. Sounds like something<00:01:32.320> out<00:01:32.560> of<00:01:32.640> a<00:01:32.799> textbook.<00:01:33.520> What<00:01:33.680> is<00:01:33.840> it

00:01:34.069 —> 00:01:34.079 align:start position:0% something out of a textbook. What is it

00:01:34.079 —> 00:01:35.910 align:start position:0% something out of a textbook. What is it really?<00:01:34.720> You<00:01:34.880> come<00:01:35.040> to<00:01:35.119> a<00:01:35.280> whiteboard.<00:01:35.759> The

00:01:35.910 —> 00:01:35.920 align:start position:0% really? You come to a whiteboard. The

00:01:35.920 —> 00:01:37.429 align:start position:0% really? You come to a whiteboard. The interviewer<00:01:36.320> asks<00:01:36.479> you<00:01:36.640> to<00:01:36.720> design<00:01:36.880> a<00:01:37.040> system,

00:01:37.429 —> 00:01:37.439 align:start position:0% interviewer asks you to design a system,

00:01:37.439 —> 00:01:39.190 align:start position:0% interviewer asks you to design a system, something<00:01:37.680> like<00:01:37.840> Ticket<00:01:38.159> Master<00:01:38.479> or<00:01:38.640> Uber,

00:01:39.190 —> 00:01:39.200 align:start position:0% something like Ticket Master or Uber,

00:01:39.200 —> 00:01:41.270 align:start position:0% something like Ticket Master or Uber, and<00:01:39.439> you<00:01:39.600> draw<00:01:39.840> boxes<00:01:40.400> explaining<00:01:40.799> at<00:01:40.960> a<00:01:41.119> high

00:01:41.270 —> 00:01:41.280 align:start position:0% and you draw boxes explaining at a high

00:01:41.280 —> 00:01:43.510 align:start position:0% and you draw boxes explaining at a high level<00:01:41.600> what<00:01:41.920> services<00:01:42.400> and<00:01:42.640> interactions<00:01:43.280> are

00:01:43.510 —> 00:01:43.520 align:start position:0% level what services and interactions are

00:01:43.520 —> 00:01:45.910 align:start position:0% level what services and interactions are necessary<00:01:44.240> to<00:01:44.560> pull<00:01:44.960> off<00:01:45.280> designing<00:01:45.680> the

00:01:45.910 —> 00:01:45.920 align:start position:0% necessary to pull off designing the

00:01:45.920 —> 00:01:47.830 align:start position:0% necessary to pull off designing the system.<00:01:46.560> You’re<00:01:46.720> not<00:01:46.880> writing<00:01:47.200> code.<00:01:47.600> It’s

00:01:47.830 —> 00:01:47.840 align:start position:0% system. You’re not writing code. It’s

00:01:47.840 —> 00:01:50.469 align:start position:0% system. You’re not writing code. It’s typically<00:01:48.159> just<00:01:48.399> boxes<00:01:48.880> and<00:01:49.119> arrows.<00:01:50.159> Now,

00:01:50.469 —> 00:01:50.479 align:start position:0% typically just boxes and arrows. Now,

00:01:50.479 —> 00:01:51.830 align:start position:0% typically just boxes and arrows. Now, this<00:01:50.640> diagram<00:01:50.960> shows<00:01:51.200> that<00:01:51.280> there<00:01:51.439> are<00:01:51.520> a<00:01:51.680> few

00:01:51.830 —> 00:01:51.840 align:start position:0% this diagram shows that there are a few

00:01:51.840 —> 00:01:53.670 align:start position:0% this diagram shows that there are a few types<00:01:52.159> of<00:01:52.479> heavily<00:01:52.960> overlapping<00:01:53.439> design

00:01:53.670 —> 00:01:53.680 align:start position:0% types of heavily overlapping design

00:01:53.680 —> 00:01:55.990 align:start position:0% types of heavily overlapping design interviews.<00:01:54.640> In<00:01:54.880> this<00:01:55.040> video,<00:01:55.439> we’re<00:01:55.759> talking

00:01:55.990 —> 00:01:56.000 align:start position:0% interviews. In this video, we’re talking

00:01:56.000 —> 00:01:58.149 align:start position:0% interviews. In this video, we’re talking about<00:01:56.320> by<00:01:56.560> far<00:01:56.720> the<00:01:56.960> most<00:01:57.200> common,<00:01:57.600> which<00:01:57.840> are

00:01:58.149 —> 00:01:58.159 align:start position:0% about by far the most common, which are

00:01:58.159 —> 00:02:01.030 align:start position:0% about by far the most common, which are product<00:01:58.560> and<00:01:58.799> infraesign<00:01:59.560> problems.<00:02:00.560> Now,<00:02:00.799> a

00:02:01.030 —> 00:02:01.040 align:start position:0% product and infraesign problems. Now, a

00:02:01.040 —> 00:02:02.789 align:start position:0% product and infraesign problems. Now, a product<00:02:01.360> problem,<00:02:02.079> this<00:02:02.320> is<00:02:02.399> when<00:02:02.560> you’re

00:02:02.789 —> 00:02:02.799 align:start position:0% product problem, this is when you’re

00:02:02.799 —> 00:02:04.630 align:start position:0% product problem, this is when you’re designing<00:02:03.040> an<00:02:03.280> app<00:02:03.520> or<00:02:03.759> a<00:02:04.000> website<00:02:04.240> that<00:02:04.479> you

00:02:04.630 —> 00:02:04.640 align:start position:0% designing an app or a website that you

00:02:04.640 —> 00:02:07.270 align:start position:0% designing an app or a website that you use<00:02:04.880> every<00:02:05.119> day.<00:02:05.520> Something<00:02:05.759> like<00:02:06.079> Dropbox<00:02:06.960> or

00:02:07.270 —> 00:02:07.280 align:start position:0% use every day. Something like Dropbox or

00:02:07.280 —> 00:02:09.190 align:start position:0% use every day. Something like Dropbox or Uber,<00:02:07.840> Netflix,<00:02:08.399> all<00:02:08.560> these<00:02:08.800> things<00:02:09.039> that

00:02:09.190 —> 00:02:09.200 align:start position:0% Uber, Netflix, all these things that

00:02:09.200 —> 00:02:11.910 align:start position:0% Uber, Netflix, all these things that that<00:02:09.440> you<00:02:09.599> know<00:02:10.039> well.<00:02:11.039> Infra,<00:02:11.520> on<00:02:11.680> the<00:02:11.840> other

00:02:11.910 —> 00:02:11.920 align:start position:0% that you know well. Infra, on the other

00:02:11.920 —> 00:02:13.750 align:start position:0% that you know well. Infra, on the other hand,<00:02:12.239> infrastructure<00:02:13.040> design<00:02:13.360> problems,

00:02:13.750 —> 00:02:13.760 align:start position:0% hand, infrastructure design problems,

00:02:13.760 —> 00:02:16.390 align:start position:0% hand, infrastructure design problems, these<00:02:14.000> are<00:02:14.160> non-userfacing<00:02:15.120> systems.<00:02:16.160> So

00:02:16.390 —> 00:02:16.400 align:start position:0% these are non-userfacing systems. So

00:02:16.400 —> 00:02:17.750 align:start position:0% these are non-userfacing systems. So components<00:02:16.879> like<00:02:17.040> designing<00:02:17.360> a<00:02:17.520> rate

00:02:17.750 —> 00:02:17.760 align:start position:0% components like designing a rate

00:02:17.760 —> 00:02:19.910 align:start position:0% components like designing a rate limiter,<00:02:18.160> maybe<00:02:18.319> designing<00:02:18.640> a<00:02:18.879> message<00:02:19.200> cue,

00:02:19.910 —> 00:02:19.920 align:start position:0% limiter, maybe designing a message cue,

00:02:19.920 —> 00:02:21.830 align:start position:0% limiter, maybe designing a message cue, or<00:02:20.160> even<00:02:20.480> data<00:02:20.800> processing<00:02:21.200> pipelines,

00:02:21.830 —> 00:02:21.840 align:start position:0% or even data processing pipelines,

00:02:21.840 —> 00:02:24.070 align:start position:0% or even data processing pipelines, things<00:02:22.000> like<00:02:22.080> an<00:02:22.319> adclick<00:02:22.840> aggregator.<00:02:23.840> But

00:02:24.070 —> 00:02:24.080 align:start position:0% things like an adclick aggregator. But

00:02:24.080 —> 00:02:25.589 align:start position:0% things like an adclick aggregator. But in<00:02:24.319> general,<00:02:24.640> when<00:02:24.800> you<00:02:24.959> have<00:02:25.040> a<00:02:25.280> system

00:02:25.589 —> 00:02:25.599 align:start position:0% in general, when you have a system

00:02:25.599 —> 00:02:27.350 align:start position:0% in general, when you have a system design<00:02:25.920> interview,<00:02:26.640> it’s<00:02:26.879> likely<00:02:27.120> going<00:02:27.280> to

00:02:27.350 —> 00:02:27.360 align:start position:0% design interview, it’s likely going to

00:02:27.360 —> 00:02:29.350 align:start position:0% design interview, it’s likely going to come<00:02:27.520> out<00:02:27.760> of<00:02:27.920> one<00:02:28.160> of<00:02:28.319> these<00:02:28.560> two<00:02:28.800> buckets.

00:02:29.350 —> 00:02:29.360 align:start position:0% come out of one of these two buckets.

00:02:29.360 —> 00:02:31.270 align:start position:0% come out of one of these two buckets. Either<00:02:29.680> product<00:02:30.000> design<00:02:30.400> or<00:02:30.640> infrastructure

00:02:31.270 —> 00:02:31.280 align:start position:0% Either product design or infrastructure

00:02:31.280 —> 00:02:33.190 align:start position:0% Either product design or infrastructure design.<00:02:31.920> When<00:02:32.160> you<00:02:32.239> get<00:02:32.400> into<00:02:32.560> an<00:02:32.800> interview,

00:02:33.190 —> 00:02:33.200 align:start position:0% design. When you get into an interview,

00:02:33.200 —> 00:02:34.630 align:start position:0% design. When you get into an interview, it’s<00:02:33.519> really,<00:02:33.840> really,<00:02:34.080> really<00:02:34.400> important

00:02:34.630 —> 00:02:34.640 align:start position:0% it’s really, really, really important

00:02:34.640 —> 00:02:36.790 align:start position:0% it’s really, really, really important that<00:02:34.879> you<00:02:35.040> follow<00:02:35.280> a<00:02:35.599> framework.<00:02:36.400> This<00:02:36.560> keeps

00:02:36.790 —> 00:02:36.800 align:start position:0% that you follow a framework. This keeps

00:02:36.800 —> 00:02:38.229 align:start position:0% that you follow a framework. This keeps you<00:02:36.959> focused<00:02:37.280> and<00:02:37.519> it<00:02:37.680> makes<00:02:37.920> sure<00:02:38.000> that

00:02:38.229 —> 00:02:38.239 align:start position:0% you focused and it makes sure that

00:02:38.239 —> 00:02:40.390 align:start position:0% you focused and it makes sure that you’re<00:02:38.480> on<00:02:38.800> time.<00:02:39.440> And<00:02:39.599> so<00:02:39.760> as<00:02:39.920> you<00:02:40.080> prepare,

00:02:40.390 —> 00:02:40.400 align:start position:0% you’re on time. And so as you prepare,

00:02:40.400 —> 00:02:41.670 align:start position:0% you’re on time. And so as you prepare, you’ll<00:02:40.640> want<00:02:40.720> to<00:02:40.800> choose<00:02:40.959> a<00:02:41.120> framework<00:02:41.440> that

00:02:41.670 —> 00:02:41.680 align:start position:0% you’ll want to choose a framework that

00:02:41.680 —> 00:02:43.670 align:start position:0% you’ll want to choose a framework that works<00:02:41.920> really<00:02:42.080> well<00:02:42.239> for<00:02:42.400> you.<00:02:42.959> I<00:02:43.280> strongly

00:02:43.670 —> 00:02:43.680 align:start position:0% works really well for you. I strongly

00:02:43.680 —> 00:02:45.710 align:start position:0% works really well for you. I strongly recommend<00:02:44.000> that<00:02:44.160> you<00:02:44.319> choose<00:02:44.720> this<00:02:45.040> framework

00:02:45.710 —> 00:02:45.720 align:start position:0% recommend that you choose this framework

00:02:45.720 —> 00:02:47.670 align:start position:0% recommend that you choose this framework here.<00:02:46.720> What<00:02:46.879> you’re<00:02:47.040> going<00:02:47.120> to<00:02:47.200> do<00:02:47.280> when<00:02:47.440> the

00:02:47.670 —> 00:02:47.680 align:start position:0% here. What you’re going to do when the

00:02:47.680 —> 00:02:48.790 align:start position:0% here. What you’re going to do when the interview<00:02:47.920> starts<00:02:48.160> and<00:02:48.319> you’re<00:02:48.480> asked<00:02:48.640> to

00:02:48.790 —> 00:02:48.800 align:start position:0% interview starts and you’re asked to

00:02:48.800 —> 00:02:50.710 align:start position:0% interview starts and you’re asked to design<00:02:49.040> a<00:02:49.200> system<00:02:49.599> like<00:02:50.000> design<00:02:50.319> ticket

00:02:50.710 —> 00:02:50.720 align:start position:0% design a system like design ticket

00:02:50.720 —> 00:02:52.150 align:start position:0% design a system like design ticket master<00:02:51.280> is<00:02:51.519> you’re<00:02:51.680> going<00:02:51.760> to<00:02:51.840> start<00:02:52.000> by

00:02:52.150 —> 00:02:52.160 align:start position:0% master is you’re going to start by

00:02:52.160 —> 00:02:53.509 align:start position:0% master is you’re going to start by outlining<00:02:52.640> the<00:02:52.800> requirements<00:02:53.200> of<00:02:53.360> the

00:02:53.509 —> 00:02:53.519 align:start position:0% outlining the requirements of the

00:02:53.519 —> 00:02:55.509 align:start position:0% outlining the requirements of the system.<00:02:54.080> Now,<00:02:54.319> this<00:02:54.560> includes<00:02:54.959> both<00:02:55.280> the

00:02:55.509 —> 00:02:55.519 align:start position:0% system. Now, this includes both the

00:02:55.519 —> 00:02:57.509 align:start position:0% system. Now, this includes both the functional<00:02:56.000> requirements<00:02:56.959> and<00:02:57.280> the

00:02:57.509 —> 00:02:57.519 align:start position:0% functional requirements and the

00:02:57.519 —> 00:02:59.509 align:start position:0% functional requirements and the non-functional<00:02:58.239> requirements.<00:02:59.120> Functional

00:02:59.509 —> 00:02:59.519 align:start position:0% non-functional requirements. Functional

00:02:59.519 —> 00:03:00.790 align:start position:0% non-functional requirements. Functional requirements<00:02:59.920> are<00:03:00.080> just<00:03:00.239> the<00:03:00.400> features<00:03:00.640> of

00:03:00.790 —> 00:03:00.800 align:start position:0% requirements are just the features of

00:03:00.800 —> 00:03:02.710 align:start position:0% requirements are just the features of the<00:03:00.959> system<00:03:01.360> like<00:03:01.599> a<00:03:01.760> user<00:03:02.000> should<00:03:02.159> be<00:03:02.239> able<00:03:02.400> to

00:03:02.710 —> 00:03:02.720 align:start position:0% the system like a user should be able to

00:03:02.720 —> 00:03:04.790 align:start position:0% the system like a user should be able to book<00:03:02.959> a<00:03:03.120> ticket<00:03:03.760> and<00:03:03.920> a<00:03:04.159> non-functional

00:03:04.790 —> 00:03:04.800 align:start position:0% book a ticket and a non-functional

00:03:04.800 —> 00:03:07.030 align:start position:0% book a ticket and a non-functional requirement<00:03:05.200> is<00:03:05.440> the<00:03:05.680> quality<00:03:05.920> of<00:03:06.080> the<00:03:06.319> system

00:03:07.030 —> 00:03:07.040 align:start position:0% requirement is the quality of the system

00:03:07.040 —> 00:03:08.790 align:start position:0% requirement is the quality of the system like<00:03:07.360> booking<00:03:07.680> tickets<00:03:08.159> should<00:03:08.400> be<00:03:08.560> low

00:03:08.790 —> 00:03:08.800 align:start position:0% like booking tickets should be low

00:03:08.800 —> 00:03:10.470 align:start position:0% like booking tickets should be low latency,<00:03:09.519> right?<00:03:09.680> and<00:03:09.760> or<00:03:09.920> the<00:03:10.080> system<00:03:10.239> should

00:03:10.470 —> 00:03:10.480 align:start position:0% latency, right? and or the system should

00:03:10.480 —> 00:03:12.309 align:start position:0% latency, right? and or the system should be<00:03:10.560> able<00:03:10.720> to<00:03:10.800> scale<00:03:11.120> to<00:03:11.280> however<00:03:11.680> many<00:03:12.080> number

00:03:12.309 —> 00:03:12.319 align:start position:0% be able to scale to however many number

00:03:12.319 —> 00:03:15.190 align:start position:0% be able to scale to however many number of<00:03:12.760> users.<00:03:13.760> This<00:03:14.000> ensures<00:03:14.400> upfront<00:03:14.879> that<00:03:15.040> you

00:03:15.190 —> 00:03:15.200 align:start position:0% of users. This ensures upfront that you

00:03:15.200 —> 00:03:16.869 align:start position:0% of users. This ensures upfront that you and<00:03:15.360> your<00:03:15.519> interviewer<00:03:16.000> agree<00:03:16.400> on<00:03:16.640> what

00:03:16.869 —> 00:03:16.879 align:start position:0% and your interviewer agree on what

00:03:16.879 —> 00:03:19.270 align:start position:0% and your interviewer agree on what you’re<00:03:17.040> going<00:03:17.120> to<00:03:17.200> be<00:03:17.720> designing.<00:03:18.720> Next,<00:03:19.120> you

00:03:19.270 —> 00:03:19.280 align:start position:0% you’re going to be designing. Next, you

00:03:19.280 —> 00:03:21.670 align:start position:0% you’re going to be designing. Next, you want<00:03:19.440> to<00:03:19.519> outline<00:03:20.000> the<00:03:20.239> core<00:03:20.480> entities<00:03:21.200> of<00:03:21.440> the

00:03:21.670 —> 00:03:21.680 align:start position:0% want to outline the core entities of the

00:03:21.680 —> 00:03:23.750 align:start position:0% want to outline the core entities of the system.<00:03:22.400> These<00:03:22.640> typically<00:03:23.040> map<00:03:23.280> directly<00:03:23.599> to

00:03:23.750 —> 00:03:23.760 align:start position:0% system. These typically map directly to

00:03:23.760 —> 00:03:25.589 align:start position:0% system. These typically map directly to the<00:03:23.920> tables<00:03:24.159> in<00:03:24.319> your<00:03:24.480> database.<00:03:25.200> These<00:03:25.519> are

00:03:25.589 —> 00:03:25.599 align:start position:0% the tables in your database. These are

00:03:25.599 —> 00:03:27.430 align:start position:0% the tables in your database. These are just<00:03:25.760> the<00:03:26.000> entities<00:03:26.400> that<00:03:26.640> your<00:03:26.879> system<00:03:27.200> will

00:03:27.430 —> 00:03:27.440 align:start position:0% just the entities that your system will

00:03:27.440 —> 00:03:29.910 align:start position:0% just the entities that your system will persist<00:03:27.840> and<00:03:28.000> that<00:03:28.159> your<00:03:28.319> API<00:03:28.800> will<00:03:28.959> exchange.

00:03:29.910 —> 00:03:29.920 align:start position:0% persist and that your API will exchange.

00:03:29.920 —> 00:03:32.470 align:start position:0% persist and that your API will exchange. So,<00:03:30.159> think<00:03:30.400> like<00:03:30.640> a<00:03:30.959> user,<00:03:31.440> an<00:03:31.680> event,<00:03:32.239> a

00:03:32.470 —> 00:03:32.480 align:start position:0% So, think like a user, an event, a

00:03:32.480 —> 00:03:35.030 align:start position:0% So, think like a user, an event, a ticket.<00:03:33.280> Simple<00:03:33.599> as<00:03:33.760> that.

00:03:35.030 —> 00:03:35.040 align:start position:0% ticket. Simple as that.

00:03:35.040 —> 00:03:36.789 align:start position:0% ticket. Simple as that. Then<00:03:35.360> you’re<00:03:35.599> going<00:03:35.599> to<00:03:35.760> outline<00:03:36.080> the<00:03:36.400> basic

00:03:36.789 —> 00:03:36.799 align:start position:0% Then you’re going to outline the basic

00:03:36.799 —> 00:03:38.550 align:start position:0% Then you’re going to outline the basic APIs<00:03:37.440> needed<00:03:37.680> to<00:03:37.840> meet<00:03:38.000> your<00:03:38.159> functional

00:03:38.550 —> 00:03:38.560 align:start position:0% APIs needed to meet your functional

00:03:38.560 —> 00:03:40.470 align:start position:0% APIs needed to meet your functional requirements.<00:03:39.519> Nine<00:03:39.840> times<00:03:40.000> out<00:03:40.159> of<00:03:40.319> 10,

00:03:40.470 —> 00:03:40.480 align:start position:0% requirements. Nine times out of 10,

00:03:40.480 —> 00:03:41.670 align:start position:0% requirements. Nine times out of 10, these<00:03:40.720> are<00:03:40.879> probably<00:03:41.040> going<00:03:41.120> to<00:03:41.200> be<00:03:41.360> REST

00:03:41.670 —> 00:03:41.680 align:start position:0% these are probably going to be REST

00:03:41.680 —> 00:03:43.830 align:start position:0% these are probably going to be REST endpoints,<00:03:42.560> but<00:03:42.879> there<00:03:43.120> might<00:03:43.360> be<00:03:43.519> unique

00:03:43.830 —> 00:03:43.840 align:start position:0% endpoints, but there might be unique

00:03:43.840 —> 00:03:46.390 align:start position:0% endpoints, but there might be unique cases<00:03:44.480> where<00:03:44.720> GraphQL<00:03:45.680> or<00:03:45.920> something<00:03:46.159> else

00:03:46.390 —> 00:03:46.400 align:start position:0% cases where GraphQL or something else

00:03:46.400 —> 00:03:49.190 align:start position:0% cases where GraphQL or something else makes<00:03:46.720> more<00:03:47.239> sense.<00:03:48.239> But<00:03:48.480> from<00:03:48.640> here,<00:03:48.959> you

00:03:49.190 —> 00:03:49.200 align:start position:0% makes more sense. But from here, you

00:03:49.200 —> 00:03:51.750 align:start position:0% makes more sense. But from here, you then<00:03:49.440> get<00:03:49.680> into<00:03:50.080> the<00:03:50.319> fun<00:03:50.640> stuff.<00:03:51.280> You<00:03:51.440> get<00:03:51.599> to

00:03:51.750 —> 00:03:51.760 align:start position:0% then get into the fun stuff. You get to

00:03:51.760 —> 00:03:52.869 align:start position:0% then get into the fun stuff. You get to head<00:03:51.840> over<00:03:52.000> to<00:03:52.080> that<00:03:52.239> whiteboard<00:03:52.560> and<00:03:52.720> you’re

00:03:52.869 —> 00:03:52.879 align:start position:0% head over to that whiteboard and you’re

00:03:52.879 —> 00:03:55.030 align:start position:0% head over to that whiteboard and you’re going<00:03:52.959> to<00:03:53.040> start<00:03:53.280> drawing<00:03:53.680> boxes<00:03:54.400> and<00:03:54.560> arrows

00:03:55.030 —> 00:03:55.040 align:start position:0% going to start drawing boxes and arrows

00:03:55.040 —> 00:03:56.789 align:start position:0% going to start drawing boxes and arrows starting<00:03:55.280> with<00:03:55.440> a<00:03:55.680> really<00:03:55.920> simple<00:03:56.239> highle

00:03:56.789 —> 00:03:56.799 align:start position:0% starting with a really simple highle

00:03:56.799 —> 00:03:58.949 align:start position:0% starting with a really simple highle design<00:03:57.680> where<00:03:57.920> the<00:03:58.080> goal<00:03:58.239> of<00:03:58.400> the<00:03:58.560> highle

00:03:58.949 —> 00:03:58.959 align:start position:0% design where the goal of the highle

00:03:58.959 —> 00:04:01.190 align:start position:0% design where the goal of the highle design<00:03:59.360> is<00:03:59.599> to<00:03:59.920> meet<00:04:00.319> the<00:04:00.640> functional

00:04:01.190 —> 00:04:01.200 align:start position:0% design is to meet the functional

00:04:01.200 —> 00:04:03.270 align:start position:0% design is to meet the functional requirements<00:04:01.680> of<00:04:01.920> your<00:04:02.080> system.<00:04:02.879> So,<00:04:03.040> a

00:04:03.270 —> 00:04:03.280 align:start position:0% requirements of your system. So, a

00:04:03.280 —> 00:04:05.990 align:start position:0% requirements of your system. So, a really<00:04:03.599> simple,<00:04:04.319> not<00:04:04.640> complex<00:04:05.120> design<00:04:05.680> that

00:04:05.990 —> 00:04:06.000 align:start position:0% really simple, not complex design that

00:04:06.000 —> 00:04:08.670 align:start position:0% really simple, not complex design that can<00:04:06.159> allow<00:04:06.480> users<00:04:06.879> to<00:04:07.200> say<00:04:07.760> book<00:04:08.000> a

00:04:08.670 —> 00:04:08.680 align:start position:0% can allow users to say book a

00:04:08.680 —> 00:04:11.350 align:start position:0% can allow users to say book a ticket.<00:04:09.680> From<00:04:10.000> here,<00:04:10.720> you’re<00:04:10.959> going<00:04:11.040> to<00:04:11.120> get

00:04:11.350 —> 00:04:11.360 align:start position:0% ticket. From here, you’re going to get

00:04:11.360 —> 00:04:13.030 align:start position:0% ticket. From here, you’re going to get deep<00:04:12.000> and<00:04:12.239> this<00:04:12.400> is<00:04:12.480> where<00:04:12.640> you’re<00:04:12.799> going<00:04:12.879> to

00:04:13.030 —> 00:04:13.040 align:start position:0% deep and this is where you’re going to

00:04:13.040 —> 00:04:15.350 align:start position:0% deep and this is where you’re going to enhance<00:04:13.439> that<00:04:13.680> initial<00:04:14.080> highle<00:04:14.640> design<00:04:14.959> via

00:04:15.350 —> 00:04:15.360 align:start position:0% enhance that initial highle design via

00:04:15.360 —> 00:04:17.430 align:start position:0% enhance that initial highle design via deep<00:04:15.599> dives<00:04:16.320> where<00:04:16.560> the<00:04:16.720> goal<00:04:16.880> of<00:04:17.040> the<00:04:17.199> deep

00:04:17.430 —> 00:04:17.440 align:start position:0% deep dives where the goal of the deep

00:04:17.440 —> 00:04:19.909 align:start position:0% deep dives where the goal of the deep dives<00:04:18.000> are<00:04:18.239> to<00:04:18.479> satisfy<00:04:18.959> your<00:04:19.199> non-functional

00:04:19.909 —> 00:04:19.919 align:start position:0% dives are to satisfy your non-functional

00:04:19.919 —> 00:04:21.830 align:start position:0% dives are to satisfy your non-functional requirements.<00:04:20.720> So,<00:04:20.880> now<00:04:21.040> that<00:04:21.199> I<00:04:21.359> can<00:04:21.440> book<00:04:21.600> a

00:04:21.830 —> 00:04:21.840 align:start position:0% requirements. So, now that I can book a

00:04:21.840 —> 00:04:23.350 align:start position:0% requirements. So, now that I can book a ticket,<00:04:22.320> how<00:04:22.479> do<00:04:22.560> I<00:04:22.720> make<00:04:22.800> sure<00:04:22.960> that<00:04:23.120> booking

00:04:23.350 —> 00:04:23.360 align:start position:0% ticket, how do I make sure that booking

00:04:23.360 —> 00:04:25.350 align:start position:0% ticket, how do I make sure that booking it<00:04:23.520> is<00:04:23.680> low<00:04:23.840> latency?<00:04:24.639> How<00:04:24.800> do<00:04:24.880> I<00:04:25.120> make<00:04:25.280> sure

00:04:25.350 —> 00:04:25.360 align:start position:0% it is low latency? How do I make sure

00:04:25.360 —> 00:04:27.749 align:start position:0% it is low latency? How do I make sure that<00:04:25.600> it’s<00:04:25.840> strongly<00:04:26.240> consistent?<00:04:27.280> How<00:04:27.440> do<00:04:27.600> I

00:04:27.749 —> 00:04:27.759 align:start position:0% that it’s strongly consistent? How do I

00:04:27.759 —> 00:04:29.510 align:start position:0% that it’s strongly consistent? How do I make<00:04:27.840> sure<00:04:27.919> that<00:04:28.160> it<00:04:28.320> can<00:04:28.479> scale<00:04:29.040> to<00:04:29.280> those

00:04:29.510 —> 00:04:29.520 align:start position:0% make sure that it can scale to those

00:04:29.520 —> 00:04:31.189 align:start position:0% make sure that it can scale to those scale<00:04:29.919> numbers<00:04:30.240> that<00:04:30.479> you<00:04:30.639> might<00:04:30.800> have<00:04:30.960> agreed

00:04:31.189 —> 00:04:31.199 align:start position:0% scale numbers that you might have agreed

00:04:31.199 —> 00:04:33.270 align:start position:0% scale numbers that you might have agreed upon<00:04:31.600> with<00:04:31.840> your<00:04:32.080> interviewer?<00:04:32.880> Now,<00:04:33.040> the

00:04:33.270 —> 00:04:33.280 align:start position:0% upon with your interviewer? Now, the

00:04:33.280 —> 00:04:34.710 align:start position:0% upon with your interviewer? Now, the last<00:04:33.360> step<00:04:33.600> in<00:04:33.759> understanding<00:04:34.080> what<00:04:34.240> a<00:04:34.400> system

00:04:34.710 —> 00:04:34.720 align:start position:0% last step in understanding what a system

00:04:34.720 —> 00:04:37.350 align:start position:0% last step in understanding what a system design<00:04:35.040> interview<00:04:35.520> is<00:04:36.080> is<00:04:36.400> understanding<00:04:37.120> how

00:04:37.350 —> 00:04:37.360 align:start position:0% design interview is is understanding how

00:04:37.360 —> 00:04:38.790 align:start position:0% design interview is is understanding how your<00:04:37.600> interviewer<00:04:38.080> is<00:04:38.320> going<00:04:38.479> to<00:04:38.639> be

00:04:38.790 —> 00:04:38.800 align:start position:0% your interviewer is going to be

00:04:38.800 —> 00:04:41.189 align:start position:0% your interviewer is going to be evaluating<00:04:39.360> you.<00:04:40.240> Now,<00:04:40.560> every<00:04:40.800> company<00:04:41.040> is

00:04:41.189 —> 00:04:41.199 align:start position:0% evaluating you. Now, every company is

00:04:41.199 —> 00:04:42.950 align:start position:0% evaluating you. Now, every company is slightly<00:04:41.520> different,<00:04:41.759> of<00:04:42.000> course,<00:04:42.560> but<00:04:42.800> they

00:04:42.950 —> 00:04:42.960 align:start position:0% slightly different, of course, but they

00:04:42.960 —> 00:04:45.350 align:start position:0% slightly different, of course, but they all<00:04:43.199> evaluate<00:04:43.600> you<00:04:43.759> on<00:04:44.000> some<00:04:44.240> permutation<00:04:45.120> of

00:04:45.350 —> 00:04:45.360 align:start position:0% all evaluate you on some permutation of

00:04:45.360 —> 00:04:48.070 align:start position:0% all evaluate you on some permutation of the<00:04:45.639> following.<00:04:46.639> One,<00:04:47.120> your<00:04:47.440> problem<00:04:47.759> solving

00:04:48.070 —> 00:04:48.080 align:start position:0% the following. One, your problem solving

00:04:48.080 —> 00:04:50.070 align:start position:0% the following. One, your problem solving skills.<00:04:48.880> So,<00:04:49.040> this<00:04:49.199> is<00:04:49.360> most<00:04:49.600> importantly

00:04:50.070 —> 00:04:50.080 align:start position:0% skills. So, this is most importantly

00:04:50.080 —> 00:04:52.390 align:start position:0% skills. So, this is most importantly your<00:04:50.320> ability<00:04:50.639> to<00:04:50.880> recognize<00:04:51.440> and<00:04:51.680> prioritize

00:04:52.390 —> 00:04:52.400 align:start position:0% your ability to recognize and prioritize

00:04:52.400 —> 00:04:54.710 align:start position:0% your ability to recognize and prioritize the<00:04:52.720> core<00:04:53.040> challenges<00:04:53.520> of<00:04:53.680> the<00:04:53.840> system.<00:04:54.400> So<00:04:54.560> if

00:04:54.710 —> 00:04:54.720 align:start position:0% the core challenges of the system. So if

00:04:54.720 —> 00:04:56.230 align:start position:0% the core challenges of the system. So if you’re<00:04:54.800> designing<00:04:55.120> ticket<00:04:55.520> master,<00:04:56.000> you’re

00:04:56.230 —> 00:04:56.240 align:start position:0% you’re designing ticket master, you’re

00:04:56.240 —> 00:04:57.990 align:start position:0% you’re designing ticket master, you’re focused<00:04:56.479> on<00:04:56.639> the<00:04:56.800> booking<00:04:57.120> flow.<00:04:57.680> You’re<00:04:57.840> not

00:04:57.990 —> 00:04:58.000 align:start position:0% focused on the booking flow. You’re not

00:04:58.000 —> 00:05:01.110 align:start position:0% focused on the booking flow. You’re not focused<00:04:58.320> on<00:04:58.840> authentication,<00:04:59.840> for<00:05:00.120> example.

00:05:01.110 —> 00:05:01.120 align:start position:0% focused on authentication, for example.

00:05:01.120 —> 00:05:03.270 align:start position:0% focused on authentication, for example. Next<00:05:01.360> is<00:05:01.600> your<00:05:01.840> solution<00:05:02.320> design.<00:05:02.960> This<00:05:03.120> is

00:05:03.270 —> 00:05:03.280 align:start position:0% Next is your solution design. This is

00:05:03.280 —> 00:05:05.430 align:start position:0% Next is your solution design. This is your<00:05:03.440> highle<00:05:03.919> design<00:05:04.240> from<00:05:04.479> that<00:05:04.720> framework

00:05:05.430 —> 00:05:05.440 align:start position:0% your highle design from that framework

00:05:05.440 —> 00:05:07.430 align:start position:0% your highle design from that framework uh<00:05:05.520> that<00:05:05.759> we<00:05:05.919> showed<00:05:06.240> just<00:05:06.400> a<00:05:06.560> moment<00:05:06.720> ago.<00:05:07.280> Did

00:05:07.430 —> 00:05:07.440 align:start position:0% uh that we showed just a moment ago. Did

00:05:07.440 —> 00:05:09.029 align:start position:0% uh that we showed just a moment ago. Did you<00:05:07.520> weigh<00:05:07.840> trade-offs<00:05:08.240> and<00:05:08.400> did<00:05:08.560> you<00:05:08.720> arrive

00:05:09.029 —> 00:05:09.039 align:start position:0% you weigh trade-offs and did you arrive

00:05:09.039 —> 00:05:11.550 align:start position:0% you weigh trade-offs and did you arrive at<00:05:09.280> something<00:05:09.840> that<00:05:10.240> meets<00:05:10.560> those<00:05:10.800> functional

00:05:11.550 —> 00:05:11.560 align:start position:0% at something that meets those functional

00:05:11.560 —> 00:05:13.670 align:start position:0% at something that meets those functional requirements?<00:05:12.560> Next<00:05:12.800> is<00:05:12.960> your<00:05:13.199> technical

00:05:13.670 —> 00:05:13.680 align:start position:0% requirements? Next is your technical

00:05:13.680 —> 00:05:15.510 align:start position:0% requirements? Next is your technical excellence.<00:05:14.560> And<00:05:14.800> this<00:05:14.960> is<00:05:15.039> where<00:05:15.280> you’re

00:05:15.510 —> 00:05:15.520 align:start position:0% excellence. And this is where you’re

00:05:15.520 —> 00:05:18.070 align:start position:0% excellence. And this is where you’re going<00:05:15.759> to<00:05:16.320> show<00:05:16.639> off<00:05:16.960> in<00:05:17.280> your<00:05:17.440> deep<00:05:17.759> dives

00:05:18.070 —> 00:05:18.080 align:start position:0% going to show off in your deep dives

00:05:18.080 —> 00:05:21.590 align:start position:0% going to show off in your deep dives that<00:05:18.240> you<00:05:18.400> have<00:05:18.560> technical<00:05:19.320> expertise<00:05:20.600> in

00:05:21.590 —> 00:05:21.600 align:start position:0% that you have technical expertise in

00:05:21.600 —> 00:05:24.550 align:start position:0% that you have technical expertise in some,<00:05:22.320> not<00:05:22.560> all,<00:05:22.880> but<00:05:23.120> in<00:05:23.360> some<00:05:23.680> areas<00:05:24.080> of<00:05:24.320> the

00:05:24.550 —> 00:05:24.560 align:start position:0% some, not all, but in some areas of the

00:05:24.560 —> 00:05:26.390 align:start position:0% some, not all, but in some areas of the system.<00:05:25.120> Can<00:05:25.280> you<00:05:25.440> go<00:05:25.600> deep?<00:05:26.000> Talk<00:05:26.240> about

00:05:26.390 —> 00:05:26.400 align:start position:0% system. Can you go deep? Talk about

00:05:26.400 —> 00:05:27.990 align:start position:0% system. Can you go deep? Talk about specific<00:05:26.880> technologies.<00:05:27.600> Talk<00:05:27.840> about

00:05:27.990 —> 00:05:28.000 align:start position:0% specific technologies. Talk about

00:05:28.000 —> 00:05:30.070 align:start position:0% specific technologies. Talk about specific<00:05:28.400> areas<00:05:28.720> where<00:05:29.039> things<00:05:29.280> could<00:05:29.520> break

00:05:30.070 —> 00:05:30.080 align:start position:0% specific areas where things could break

00:05:30.080 —> 00:05:31.990 align:start position:0% specific areas where things could break all<00:05:30.320> of<00:05:30.479> this.<00:05:31.120> And<00:05:31.280> then<00:05:31.440> lastly,<00:05:31.759> of<00:05:31.919> course,

00:05:31.990 —> 00:05:32.000 align:start position:0% all of this. And then lastly, of course,

00:05:32.000 —> 00:05:33.749 align:start position:0% all of this. And then lastly, of course, is<00:05:32.160> your<00:05:32.400> communication<00:05:32.800> skills.<00:05:33.440> Can<00:05:33.600> you

00:05:33.749 —> 00:05:33.759 align:start position:0% is your communication skills. Can you

00:05:33.759 —> 00:05:35.749 align:start position:0% is your communication skills. Can you clearly<00:05:34.160> explain<00:05:34.720> complex<00:05:35.280> technical

00:05:35.749 —> 00:05:35.759 align:start position:0% clearly explain complex technical

00:05:35.759 —> 00:05:38.310 align:start position:0% clearly explain complex technical concepts?<00:05:36.720> You’ll<00:05:36.960> be<00:05:37.120> talking<00:05:37.600> for<00:05:37.919> 35

00:05:38.310 —> 00:05:38.320 align:start position:0% concepts? You’ll be talking for 35

00:05:38.320 —> 00:05:39.830 align:start position:0% concepts? You’ll be talking for 35 minutes<00:05:38.560> to<00:05:38.800> an<00:05:39.039> hour<00:05:39.199> during<00:05:39.440> the<00:05:39.600> system

00:05:39.830 —> 00:05:39.840 align:start position:0% minutes to an hour during the system

00:05:39.840 —> 00:05:41.510 align:start position:0% minutes to an hour during the system design<00:05:40.160> interview.<00:05:40.639> You<00:05:40.880> need<00:05:40.960> to<00:05:41.039> be<00:05:41.199> clear

00:05:41.510 —> 00:05:41.520 align:start position:0% design interview. You need to be clear

00:05:41.520 —> 00:05:46.310 align:start position:0% design interview. You need to be clear and<00:05:41.759> competent<00:05:42.160> in<00:05:42.400> doing<00:05:42.560> so.

00:05:46.310 —> 00:05:46.320 align:start position:0%

00:05:46.320 —> 00:05:47.350 align:start position:0%

Next<00:05:46.560> up,<00:05:46.800> you’re<00:05:46.960> going<00:05:46.960> to<00:05:47.120> want<00:05:47.199> to<00:05:47.280> make

00:05:47.350 —> 00:05:47.360 align:start position:0% Next up, you’re going to want to make

00:05:47.360 —> 00:05:48.950 align:start position:0% Next up, you’re going to want to make sure<00:05:47.440> that<00:05:47.520> you<00:05:47.680> have<00:05:47.840> at<00:05:47.840> least<00:05:48.160> a<00:05:48.479> basic

00:05:48.950 —> 00:05:48.960 align:start position:0% sure that you have at least a basic

00:05:48.960 —> 00:05:50.710 align:start position:0% sure that you have at least a basic foundational<00:05:49.680> understanding<00:05:50.160> of<00:05:50.400> some<00:05:50.639> of

00:05:50.710 —> 00:05:50.720 align:start position:0% foundational understanding of some of

00:05:50.720 —> 00:05:52.629 align:start position:0% foundational understanding of some of the<00:05:50.919> fundamentals.<00:05:51.919> And<00:05:52.080> so,<00:05:52.320> people<00:05:52.560> are

00:05:52.629 —> 00:05:52.639 align:start position:0% the fundamentals. And so, people are

00:05:52.639 —> 00:05:54.550 align:start position:0% the fundamentals. And so, people are going<00:05:52.720> to<00:05:52.880> provide<00:05:53.120> these<00:05:53.440> long<00:05:53.919> overwhelming

00:05:54.550 —> 00:05:54.560 align:start position:0% going to provide these long overwhelming

00:05:54.560 —> 00:05:56.070 align:start position:0% going to provide these long overwhelming lists.<00:05:54.880> You’ve<00:05:55.039> probably<00:05:55.280> seen<00:05:55.520> them<00:05:55.680> online,

00:05:56.070 —> 00:05:56.080 align:start position:0% lists. You’ve probably seen them online,

00:05:56.080 —> 00:05:57.350 align:start position:0% lists. You’ve probably seen them online, of<00:05:56.320> all<00:05:56.479> these<00:05:56.720> things<00:05:56.800> that<00:05:56.960> you<00:05:57.120> need<00:05:57.199> to

00:05:57.350 —> 00:05:57.360 align:start position:0% of all these things that you need to

00:05:57.360 —> 00:06:00.230 align:start position:0% of all these things that you need to know.<00:05:58.000> But<00:05:58.160> in<00:05:58.320> reality,<00:05:59.199> knowing<00:05:59.520> these<00:05:59.919> six

00:06:00.230 —> 00:06:00.240 align:start position:0% know. But in reality, knowing these six

00:06:00.240 —> 00:06:02.310 align:start position:0% know. But in reality, knowing these six concepts<00:06:00.720> here<00:06:00.960> are<00:06:01.199> going<00:06:01.280> to<00:06:01.360> get<00:06:01.600> you<00:06:01.919> 90

00:06:02.310 —> 00:06:02.320 align:start position:0% concepts here are going to get you 90

00:06:02.320 —> 00:06:04.710 align:start position:0% concepts here are going to get you 90 plus%<00:06:03.039> of<00:06:03.199> the<00:06:03.360> way<00:06:03.440> there.<00:06:04.080> And<00:06:04.240> so,<00:06:04.400> this<00:06:04.639> is

00:06:04.710 —> 00:06:04.720 align:start position:0% plus% of the way there. And so, this is

00:06:04.720 —> 00:06:07.590 align:start position:0% plus% of the way there. And so, this is where<00:06:04.880> I<00:06:05.039> would<00:06:05.199> focus<00:06:05.440> my<00:06:05.759> time.<00:06:06.560> First<00:06:06.880> up<00:06:07.280> is

00:06:07.590 —> 00:06:07.600 align:start position:0% where I would focus my time. First up is

00:06:07.600 —> 00:06:09.670 align:start position:0% where I would focus my time. First up is storage<00:06:08.000> fundamentals.<00:06:08.960> When<00:06:09.199> it<00:06:09.280> comes<00:06:09.440> to

00:06:09.670 —> 00:06:09.680 align:start position:0% storage fundamentals. When it comes to

00:06:09.680 —> 00:06:11.430 align:start position:0% storage fundamentals. When it comes to storage,<00:06:10.400> you<00:06:10.560> should<00:06:10.720> be<00:06:10.800> able<00:06:10.960> to<00:06:11.120> discuss

00:06:11.430 —> 00:06:11.440 align:start position:0% storage, you should be able to discuss

00:06:11.440 —> 00:06:13.350 align:start position:0% storage, you should be able to discuss various<00:06:11.919> data<00:06:12.319> storage<00:06:12.639> models<00:06:12.960> and<00:06:13.199> the

00:06:13.350 —> 00:06:13.360 align:start position:0% various data storage models and the

00:06:13.360 —> 00:06:15.430 align:start position:0% various data storage models and the appropriate<00:06:13.759> use<00:06:14.000> cases.<00:06:14.800> And<00:06:14.960> so<00:06:15.280> be

00:06:15.430 —> 00:06:15.440 align:start position:0% appropriate use cases. And so be

00:06:15.440 —> 00:06:17.430 align:start position:0% appropriate use cases. And so be prepared<00:06:15.759> to<00:06:16.000> explain<00:06:16.400> things<00:06:16.639> like<00:06:16.880> how<00:06:17.120> data

00:06:17.430 —> 00:06:17.440 align:start position:0% prepared to explain things like how data

00:06:17.440 —> 00:06:19.909 align:start position:0% prepared to explain things like how data is<00:06:17.600> organized<00:06:18.240> in<00:06:18.560> a<00:06:18.880> relational<00:06:19.360> database

00:06:19.909 —> 00:06:19.919 align:start position:0% is organized in a relational database

00:06:19.919 —> 00:06:21.790 align:start position:0% is organized in a relational database where<00:06:20.160> you<00:06:20.319> have<00:06:20.400> normalized<00:06:20.960> tables<00:06:21.280> with

00:06:21.790 —> 00:06:21.800 align:start position:0% where you have normalized tables with

00:06:21.800 —> 00:06:24.309 align:start position:0% where you have normalized tables with relationships<00:06:22.800> versus<00:06:23.280> document<00:06:23.759> stores

00:06:24.309 —> 00:06:24.319 align:start position:0% relationships versus document stores

00:06:24.319 —> 00:06:26.070 align:start position:0% relationships versus document stores where<00:06:24.560> you<00:06:24.720> have<00:06:24.880> nested<00:06:25.360> JSON-like

00:06:26.070 —> 00:06:26.080 align:start position:0% where you have nested JSON-like

00:06:26.080 —> 00:06:28.390 align:start position:0% where you have nested JSON-like structures<00:06:26.639> like<00:06:26.960> this.<00:06:27.600> And<00:06:27.759> then<00:06:27.919> also<00:06:28.160> key

00:06:28.390 —> 00:06:28.400 align:start position:0% structures like this. And then also key

00:06:28.400 —> 00:06:30.230 align:start position:0% structures like this. And then also key value<00:06:28.800> stores<00:06:29.199> where<00:06:29.440> you<00:06:29.520> have<00:06:29.600> a<00:06:29.840> simple

00:06:30.230 —> 00:06:30.240 align:start position:0% value stores where you have a simple

00:06:30.240 —> 00:06:33.189 align:start position:0% value stores where you have a simple lookup<00:06:30.639> mechanism<00:06:31.440> based<00:06:31.759> on<00:06:31.919> a<00:06:32.080> key.<00:06:32.960> Your

00:06:33.189 —> 00:06:33.199 align:start position:0% lookup mechanism based on a key. Your

00:06:33.199 —> 00:06:34.950 align:start position:0% lookup mechanism based on a key. Your interviewer<00:06:33.520> is<00:06:33.759> also<00:06:34.000> going<00:06:34.160> to<00:06:34.319> expect<00:06:34.720> that

00:06:34.950 —> 00:06:34.960 align:start position:0% interviewer is also going to expect that

00:06:34.960 —> 00:06:37.909 align:start position:0% interviewer is also going to expect that you<00:06:35.280> understand<00:06:36.000> acid<00:06:36.479> properties<00:06:37.520> uh<00:06:37.680> for

00:06:37.909 —> 00:06:37.919 align:start position:0% you understand acid properties uh for

00:06:37.919 —> 00:06:40.150 align:start position:0% you understand acid properties uh for transactional<00:06:38.639> systems<00:06:39.039> in<00:06:39.280> particular<00:06:39.919> and

00:06:40.150 —> 00:06:40.160 align:start position:0% transactional systems in particular and

00:06:40.160 —> 00:06:41.670 align:start position:0% transactional systems in particular and that<00:06:40.319> you’re<00:06:40.560> able<00:06:40.720> to<00:06:40.800> compare<00:06:41.120> and<00:06:41.280> contrast

00:06:41.670 —> 00:06:41.680 align:start position:0% that you’re able to compare and contrast

00:06:41.680 —> 00:06:43.749 align:start position:0% that you’re able to compare and contrast these<00:06:42.000> with<00:06:42.319> base<00:06:42.720> principles<00:06:43.440> for

00:06:43.749 —> 00:06:43.759 align:start position:0% these with base principles for

00:06:43.759 —> 00:06:44.830 align:start position:0% these with base principles for distributed

00:06:44.830 —> 00:06:44.840 align:start position:0% distributed

00:06:44.840 —> 00:06:46.629 align:start position:0% distributed databases.<00:06:45.840> You<00:06:46.000> should<00:06:46.160> be<00:06:46.319> able<00:06:46.479> to

00:06:46.629 —> 00:06:46.639 align:start position:0% databases. You should be able to

00:06:46.639 —> 00:06:48.629 align:start position:0% databases. You should be able to articulate<00:06:47.360> when<00:06:47.600> each<00:06:47.840> storage<00:06:48.160> paradigm

00:06:48.629 —> 00:06:48.639 align:start position:0% articulate when each storage paradigm

00:06:48.639 —> 00:06:51.270 align:start position:0% articulate when each storage paradigm makes<00:06:48.880> sense<00:06:49.360> based<00:06:49.680> on<00:06:49.840> access<00:06:50.240> patterns<00:06:50.960> and

00:06:51.270 —> 00:06:51.280 align:start position:0% makes sense based on access patterns and

00:06:51.280 —> 00:06:52.950 align:start position:0% makes sense based on access patterns and the<00:06:51.440> given<00:06:51.759> consistency<00:06:52.319> requirements<00:06:52.720> of

00:06:52.950 —> 00:06:52.960 align:start position:0% the given consistency requirements of

00:06:52.960 —> 00:06:54.550 align:start position:0% the given consistency requirements of your<00:06:53.120> system<00:06:53.680> which<00:06:53.919> you<00:06:54.080> probably<00:06:54.319> agreed

00:06:54.550 —> 00:06:54.560 align:start position:0% your system which you probably agreed

00:06:54.560 —> 00:06:55.749 align:start position:0% your system which you probably agreed upon<00:06:54.800> in<00:06:55.039> your<00:06:55.120> non-functional

00:06:55.749 —> 00:06:55.759 align:start position:0% upon in your non-functional

00:06:55.759 —> 00:06:57.029 align:start position:0% upon in your non-functional requirements.<00:06:56.240> Now,<00:06:56.400> next<00:06:56.560> up<00:06:56.720> when<00:06:56.880> it<00:06:56.960> comes

00:06:57.029 —> 00:06:57.039 align:start position:0% requirements. Now, next up when it comes

00:06:57.039 —> 00:06:59.510 align:start position:0% requirements. Now, next up when it comes to<00:06:57.120> the<00:06:57.280> fundamentals<00:06:57.919> is<00:06:58.319> scalability.<00:06:59.280> And

00:06:59.510 —> 00:06:59.520 align:start position:0% to the fundamentals is scalability. And

00:06:59.520 —> 00:07:01.270 align:start position:0% to the fundamentals is scalability. And scalability<00:07:00.080> is<00:07:00.240> just<00:07:00.400> the<00:07:00.560> concept<00:07:00.880> of<00:07:01.120> how

00:07:01.270 —> 00:07:01.280 align:start position:0% scalability is just the concept of how

00:07:01.280 —> 00:07:03.029 align:start position:0% scalability is just the concept of how do<00:07:01.360> we<00:07:01.520> scale<00:07:01.759> our<00:07:02.080> system?<00:07:02.479> so<00:07:02.639> that<00:07:02.800> we<00:07:02.880> can

00:07:03.029 —> 00:07:03.039 align:start position:0% do we scale our system? so that we can

00:07:03.039 —> 00:07:05.430 align:start position:0% do we scale our system? so that we can support<00:07:03.360> more<00:07:03.599> users<00:07:04.000> and<00:07:04.240> more<00:07:04.479> requests.

00:07:05.430 —> 00:07:05.440 align:start position:0% support more users and more requests.

00:07:05.440 —> 00:07:07.350 align:start position:0% support more users and more requests. And<00:07:05.680> scalability<00:07:06.400> almost<00:07:06.720> always<00:07:07.039> comes<00:07:07.280> up

00:07:07.350 —> 00:07:07.360 align:start position:0% And scalability almost always comes up

00:07:07.360 —> 00:07:09.189 align:start position:0% And scalability almost always comes up in<00:07:07.520> a<00:07:07.680> system<00:07:07.919> design<00:07:08.240> interview.<00:07:08.960> And<00:07:09.039> so

00:07:09.189 —> 00:07:09.199 align:start position:0% in a system design interview. And so

00:07:09.199 —> 00:07:10.469 align:start position:0% in a system design interview. And so when<00:07:09.360> you’re<00:07:09.520> talking<00:07:09.680> about<00:07:09.919> scaling

00:07:10.469 —> 00:07:10.479 align:start position:0% when you’re talking about scaling

00:07:10.479 —> 00:07:11.749 align:start position:0% when you’re talking about scaling compute,<00:07:10.880> when<00:07:11.039> you’re<00:07:11.199> scaling<00:07:11.440> your

00:07:11.749 —> 00:07:11.759 align:start position:0% compute, when you’re scaling your

00:07:11.759 —> 00:07:13.510 align:start position:0% compute, when you’re scaling your servers,<00:07:12.319> you<00:07:12.479> should<00:07:12.639> know<00:07:12.800> about<00:07:13.120> vertical

00:07:13.510 —> 00:07:13.520 align:start position:0% servers, you should know about vertical

00:07:13.520 —> 00:07:16.230 align:start position:0% servers, you should know about vertical scaling,<00:07:14.240> beefier<00:07:14.880> machines,<00:07:15.360> more<00:07:15.680> CPU,

00:07:16.230 —> 00:07:16.240 align:start position:0% scaling, beefier machines, more CPU,

00:07:16.240 —> 00:07:18.550 align:start position:0% scaling, beefier machines, more CPU, more<00:07:16.400> RAM,<00:07:17.039> and<00:07:17.199> also<00:07:17.440> horizontal<00:07:18.000> scaling.

00:07:18.550 —> 00:07:18.560 align:start position:0% more RAM, and also horizontal scaling.

00:07:18.560 —> 00:07:20.629 align:start position:0% more RAM, and also horizontal scaling. Let’s<00:07:18.880> just<00:07:19.039> add<00:07:19.440> more<00:07:19.759> machines<00:07:20.160> to<00:07:20.319> be<00:07:20.479> able

00:07:20.629 —> 00:07:20.639 align:start position:0% Let’s just add more machines to be able

00:07:20.639 —> 00:07:23.350 align:start position:0% Let’s just add more machines to be able to<00:07:20.800> service<00:07:21.360> these<00:07:21.680> incoming<00:07:22.199> requests.<00:07:23.199> You

00:07:23.350 —> 00:07:23.360 align:start position:0% to service these incoming requests. You

00:07:23.360 —> 00:07:24.870 align:start position:0% to service these incoming requests. You should<00:07:23.520> also<00:07:23.759> understand<00:07:24.080> how<00:07:24.319> to<00:07:24.479> scale

00:07:24.870 —> 00:07:24.880 align:start position:0% should also understand how to scale

00:07:24.880 —> 00:07:27.029 align:start position:0% should also understand how to scale storage.<00:07:25.599> And<00:07:25.759> so<00:07:26.000> this<00:07:26.160> is<00:07:26.319> techniques<00:07:26.800> like

00:07:27.029 —> 00:07:27.039 align:start position:0% storage. And so this is techniques like

00:07:27.039 —> 00:07:29.110 align:start position:0% storage. And so this is techniques like partitioning<00:07:27.599> and<00:07:27.840> sharding,<00:07:28.639> splitting

00:07:29.110 —> 00:07:29.120 align:start position:0% partitioning and sharding, splitting

00:07:29.120 —> 00:07:31.430 align:start position:0% partitioning and sharding, splitting data<00:07:29.599> instead<00:07:29.919> of<00:07:30.080> on<00:07:30.319> a<00:07:30.479> single<00:07:30.720> database

00:07:31.430 —> 00:07:31.440 align:start position:0% data instead of on a single database

00:07:31.440 —> 00:07:34.710 align:start position:0% data instead of on a single database across<00:07:31.919> multiple<00:07:32.319> database<00:07:33.080> instances.<00:07:34.080> Um

00:07:34.710 —> 00:07:34.720 align:start position:0% across multiple database instances. Um

00:07:34.720 —> 00:07:36.870 align:start position:0% across multiple database instances. Um as<00:07:34.960> well<00:07:35.120> as<00:07:35.520> how<00:07:35.759> to<00:07:35.919> distribute<00:07:36.479> data

00:07:36.870 —> 00:07:36.880 align:start position:0% as well as how to distribute data

00:07:36.880 —> 00:07:38.510 align:start position:0% as well as how to distribute data efficiently<00:07:37.440> across<00:07:37.840> these<00:07:38.240> different

00:07:38.510 —> 00:07:38.520 align:start position:0% efficiently across these different

00:07:38.520 —> 00:07:41.029 align:start position:0% efficiently across these different instances<00:07:39.520> like<00:07:39.759> the<00:07:40.000> famous<00:07:40.479> consistent

00:07:41.029 —> 00:07:41.039 align:start position:0% instances like the famous consistent

00:07:41.039 —> 00:07:43.510 align:start position:0% instances like the famous consistent hashing<00:07:41.800> algorithm.<00:07:42.800> We<00:07:43.039> actually<00:07:43.199> have<00:07:43.360> a

00:07:43.510 —> 00:07:43.520 align:start position:0% hashing algorithm. We actually have a

00:07:43.520 —> 00:07:45.270 align:start position:0% hashing algorithm. We actually have a video<00:07:43.759> on<00:07:44.000> the<00:07:44.160> channel<00:07:44.639> that<00:07:44.880> goes<00:07:45.039> into

00:07:45.270 —> 00:07:45.280 align:start position:0% video on the channel that goes into

00:07:45.280 —> 00:07:47.589 align:start position:0% video on the channel that goes into detail<00:07:45.520> on<00:07:45.759> consistent<00:07:46.160> hashing.<00:07:46.960> So<00:07:47.360> if

00:07:47.589 —> 00:07:47.599 align:start position:0% detail on consistent hashing. So if

00:07:47.599 —> 00:07:49.270 align:start position:0% detail on consistent hashing. So if that’s<00:07:47.759> new<00:07:47.919> to<00:07:48.080> you,<00:07:48.560> check<00:07:48.720> that<00:07:48.880> one<00:07:49.039> out.

00:07:49.270 —> 00:07:49.280 align:start position:0% that’s new to you, check that one out.

00:07:49.280 —> 00:07:52.230 align:start position:0% that’s new to you, check that one out. Okay,<00:07:49.520> so<00:07:49.759> next<00:07:50.000> up<00:07:50.240> is<00:07:50.720> networking.<00:07:51.919> Uh,<00:07:52.160> when

00:07:52.230 —> 00:07:52.240 align:start position:0% Okay, so next up is networking. Uh, when

00:07:52.240 —> 00:07:53.589 align:start position:0% Okay, so next up is networking. Uh, when it<00:07:52.400> comes<00:07:52.479> to<00:07:52.639> networking,<00:07:53.120> you<00:07:53.280> probably

00:07:53.589 —> 00:07:53.599 align:start position:0% it comes to networking, you probably

00:07:53.599 —> 00:07:56.390 align:start position:0% it comes to networking, you probably remember<00:07:54.000> learning<00:07:54.400> about<00:07:54.639> these<00:07:54.960> OS<00:07:55.599> OSI

00:07:56.390 —> 00:07:56.400 align:start position:0% remember learning about these OS OSI

00:07:56.400 —> 00:07:58.710 align:start position:0% remember learning about these OS OSI layers,<00:07:56.720> excuse<00:07:57.039> me,<00:07:57.280> in<00:07:57.599> college.<00:07:58.400> And<00:07:58.560> I

00:07:58.710 —> 00:07:58.720 align:start position:0% layers, excuse me, in college. And I

00:07:58.720 —> 00:08:00.150 align:start position:0% layers, excuse me, in college. And I have<00:07:58.800> good<00:07:58.960> news<00:07:59.120> for<00:07:59.280> you.<00:07:59.680> When<00:07:59.840> it<00:07:59.919> comes<00:08:00.080> to

00:08:00.150 —> 00:08:00.160 align:start position:0% have good news for you. When it comes to

00:08:00.160 —> 00:08:01.990 align:start position:0% have good news for you. When it comes to your<00:08:00.400> interviews,<00:08:00.800> you<00:08:01.039> only<00:08:01.280> really<00:08:01.599> need<00:08:01.840> to

00:08:01.990 —> 00:08:02.000 align:start position:0% your interviews, you only really need to

00:08:02.000 —> 00:08:03.670 align:start position:0% your interviews, you only really need to know<00:08:02.240> three<00:08:02.479> of<00:08:02.639> them.<00:08:02.879> The<00:08:03.120> application

00:08:03.670 —> 00:08:03.680 align:start position:0% know three of them. The application

00:08:03.680 —> 00:08:05.510 align:start position:0% know three of them. The application layer,<00:08:03.919> transport<00:08:04.560> layer,<00:08:04.720> and<00:08:04.960> network

00:08:05.510 —> 00:08:05.520 align:start position:0% layer, transport layer, and network

00:08:05.520 —> 00:08:07.270 align:start position:0% layer, transport layer, and network layer.<00:08:06.000> And<00:08:06.160> so,<00:08:06.319> the<00:08:06.560> application<00:08:07.039> layer<00:08:07.120> is

00:08:07.270 —> 00:08:07.280 align:start position:0% layer. And so, the application layer is

00:08:07.280 —> 00:08:08.469 align:start position:0% layer. And so, the application layer is going to<00:08:07.360> be<00:08:07.440> the<00:08:07.680> most<00:08:07.840> important<00:08:08.080> for<00:08:08.319> your

00:08:08.469 —> 00:08:08.479 align:start position:0% going to be the most important for your

00:08:08.479 —> 00:08:10.309 align:start position:0% going to be the most important for your interviews.<00:08:09.120> And<00:08:09.280> this<00:08:09.440> is<00:08:09.599> where<00:08:09.840> you<00:08:10.160> are

00:08:10.309 —> 00:08:10.319 align:start position:0% interviews. And this is where you are

00:08:10.319 —> 00:08:12.550 align:start position:0% interviews. And this is where you are going<00:08:10.479> to<00:08:10.720> want<00:08:10.879> to<00:08:11.120> know<00:08:11.440> things<00:08:11.680> like<00:08:12.000> API

00:08:12.550 —> 00:08:12.560 align:start position:0% going to want to know things like API

00:08:12.560 —> 00:08:15.830 align:start position:0% going to want to know things like API design,<00:08:13.199> REST<00:08:13.680> versus<00:08:14.000> GraphQL<00:08:14.720> versus<00:08:15.039> gRPC,

00:08:15.830 —> 00:08:15.840 align:start position:0% design, REST versus GraphQL versus gRPC,

00:08:15.840 —> 00:08:17.830 align:start position:0% design, REST versus GraphQL versus gRPC, which<00:08:16.080> makes<00:08:16.240> sense<00:08:16.560> when.<00:08:17.280> And<00:08:17.440> you’ll<00:08:17.680> also

00:08:17.830 —> 00:08:17.840 align:start position:0% which makes sense when. And you’ll also

00:08:17.840 —> 00:08:19.550 align:start position:0% which makes sense when. And you’ll also want<00:08:18.000> to<00:08:18.160> understand<00:08:18.960> real-time

00:08:19.550 —> 00:08:19.560 align:start position:0% want to understand real-time

00:08:19.560 —> 00:08:22.230 align:start position:0% want to understand real-time communication<00:08:20.560> via<00:08:20.960> websockets<00:08:21.599> or<00:08:21.840> server

00:08:22.230 —> 00:08:22.240 align:start position:0% communication via websockets or server

00:08:22.240 —> 00:08:23.749 align:start position:0% communication via websockets or server sent<00:08:22.400> events.<00:08:22.800> This<00:08:22.960> is<00:08:23.039> what<00:08:23.199> you’ll<00:08:23.440> use<00:08:23.599> in

00:08:23.749 —> 00:08:23.759 align:start position:0% sent events. This is what you’ll use in

00:08:23.759 —> 00:08:25.909 align:start position:0% sent events. This is what you’ll use in the<00:08:23.919> case<00:08:24.080> of<00:08:24.319> designing<00:08:25.039> for<00:08:25.120> example<00:08:25.360> a<00:08:25.599> chat

00:08:25.909 —> 00:08:25.919 align:start position:0% the case of designing for example a chat

00:08:25.919 —> 00:08:28.550 align:start position:0% the case of designing for example a chat app.<00:08:26.800> And<00:08:26.960> then<00:08:27.199> second<00:08:27.520> is<00:08:27.680> the<00:08:27.919> transport

00:08:28.550 —> 00:08:28.560 align:start position:0% app. And then second is the transport

00:08:28.560 —> 00:08:30.790 align:start position:0% app. And then second is the transport layer.<00:08:29.039> And<00:08:29.199> so<00:08:29.360> for<00:08:29.599> infra<00:08:30.080> style<00:08:30.319> interviews

00:08:30.790 —> 00:08:30.800 align:start position:0% layer. And so for infra style interviews

00:08:30.800 —> 00:08:33.870 align:start position:0% layer. And so for infra style interviews in<00:08:31.039> particular,<00:08:31.759> knowing<00:08:32.240> about<00:08:32.640> TCP<00:08:33.440> versus

00:08:33.870 —> 00:08:33.880 align:start position:0% in particular, knowing about TCP versus

00:08:33.880 —> 00:08:36.630 align:start position:0% in particular, knowing about TCP versus UDP<00:08:34.880> for<00:08:35.039> example<00:08:35.599> and<00:08:35.839> the<00:08:36.080> request<00:08:36.399> life

00:08:36.630 —> 00:08:36.640 align:start position:0% UDP for example and the request life

00:08:36.640 —> 00:08:38.790 align:start position:0% UDP for example and the request life cycle<00:08:36.959> is<00:08:37.200> going<00:08:37.279> to<00:08:37.360> be<00:08:37.519> really<00:08:37.760> important.

00:08:38.790 —> 00:08:38.800 align:start position:0% cycle is going to be really important.

00:08:38.800 —> 00:08:40.310 align:start position:0% cycle is going to be really important. And<00:08:39.039> then<00:08:39.200> lastly,<00:08:39.680> when<00:08:39.839> it<00:08:40.000> comes<00:08:40.080> to<00:08:40.240> the

00:08:40.310 —> 00:08:40.320 align:start position:0% And then lastly, when it comes to the

00:08:40.320 —> 00:08:41.750 align:start position:0% And then lastly, when it comes to the network<00:08:40.800> layer,<00:08:41.039> you<00:08:41.200> should<00:08:41.360> have<00:08:41.519> some

00:08:41.750 —> 00:08:41.760 align:start position:0% network layer, you should have some

00:08:41.760 —> 00:08:43.430 align:start position:0% network layer, you should have some basic<00:08:42.080> understanding<00:08:42.640> at<00:08:42.719> least<00:08:42.959> of<00:08:43.120> load

00:08:43.430 —> 00:08:43.440 align:start position:0% basic understanding at least of load

00:08:43.440 —> 00:08:46.550 align:start position:0% basic understanding at least of load balancing<00:08:44.240> and<00:08:44.560> maybe<00:08:44.959> understand<00:08:45.839> firewalls

00:08:46.550 —> 00:08:46.560 align:start position:0% balancing and maybe understand firewalls

00:08:46.560 —> 00:08:49.269 align:start position:0% balancing and maybe understand firewalls or<00:08:46.880> access<00:08:47.200> control<00:08:47.600> lists,<00:08:48.560> but<00:08:48.800> unless<00:08:49.040> it’s

00:08:49.269 —> 00:08:49.279 align:start position:0% or access control lists, but unless it’s

00:08:49.279 —> 00:08:52.150 align:start position:0% or access control lists, but unless it’s a<00:08:49.440> a<00:08:49.760> specific<00:08:50.640> type<00:08:50.959> of<00:08:51.120> interview,<00:08:51.839> this<00:08:52.000> is

00:08:52.150 —> 00:08:52.160 align:start position:0% a a specific type of interview, this is

00:08:52.160 —> 00:08:54.710 align:start position:0% a a specific type of interview, this is maybe<00:08:52.399> less<00:08:52.640> likely<00:08:53.120> to<00:08:53.440> come<00:08:53.680> up.<00:08:54.320> Now,<00:08:54.640> just

00:08:54.710 —> 00:08:54.720 align:start position:0% maybe less likely to come up. Now, just

00:08:54.720 —> 00:08:56.470 align:start position:0% maybe less likely to come up. Now, just like<00:08:54.880> with<00:08:55.040> consistent<00:08:55.440> hashing,<00:08:56.000> we<00:08:56.160> have<00:08:56.240> a

00:08:56.470 —> 00:08:56.480 align:start position:0% like with consistent hashing, we have a

00:08:56.480 —> 00:08:58.790 align:start position:0% like with consistent hashing, we have a really<00:08:56.720> excellent<00:08:57.200> detailed<00:08:57.760> video<00:08:58.160> on<00:08:58.560> all

00:08:58.790 —> 00:08:58.800 align:start position:0% really excellent detailed video on all

00:08:58.800 —> 00:09:01.509 align:start position:0% really excellent detailed video on all thing<00:08:59.040> networking<00:08:59.680> essentials.<00:09:00.480> And<00:09:00.720> so,<00:09:01.360> if

00:09:01.509 —> 00:09:01.519 align:start position:0% thing networking essentials. And so, if

00:09:01.519 —> 00:09:03.190 align:start position:0% thing networking essentials. And so, if you<00:09:01.760> don’t<00:09:01.839> have<00:09:02.000> this<00:09:02.320> already<00:09:02.640> down,<00:09:03.040> that’s

00:09:03.190 —> 00:09:03.200 align:start position:0% you don’t have this already down, that’s

00:09:03.200 —> 00:09:04.550 align:start position:0% you don’t have this already down, that’s the<00:09:03.360> first<00:09:03.519> thing<00:09:03.600> I<00:09:03.839> would<00:09:03.920> do.<00:09:04.160> Head<00:09:04.320> over<00:09:04.480> to

00:09:04.550 —> 00:09:04.560 align:start position:0% the first thing I would do. Head over to

00:09:04.560 —> 00:09:06.550 align:start position:0% the first thing I would do. Head over to that<00:09:04.720> video<00:09:04.880> and<00:09:05.040> check<00:09:05.279> it<00:09:05.440> out.<00:09:05.920> Fourth<00:09:06.240> is

00:09:06.550 —> 00:09:06.560 align:start position:0% that video and check it out. Fourth is

00:09:06.560 —> 00:09:09.430 align:start position:0% that video and check it out. Fourth is latency,<00:09:07.279> throughput,<00:09:07.920> and<00:09:08.440> performance.

00:09:09.430 —> 00:09:09.440 align:start position:0% latency, throughput, and performance.

00:09:09.440 —> 00:09:10.790 align:start position:0% latency, throughput, and performance. And<00:09:09.600> so<00:09:09.839> there’s<00:09:10.000> a<00:09:10.240> decent<00:09:10.480> chance<00:09:10.640> that

00:09:10.790 —> 00:09:10.800 align:start position:0% And so there’s a decent chance that

00:09:10.800 —> 00:09:11.829 align:start position:0% And so there’s a decent chance that you’re<00:09:10.959> going<00:09:11.040> to<00:09:11.120> be<00:09:11.279> tasked<00:09:11.600> with

00:09:11.829 —> 00:09:11.839 align:start position:0% you’re going to be tasked with

00:09:11.839 —> 00:09:13.430 align:start position:0% you’re going to be tasked with optimizing<00:09:12.399> performance<00:09:12.800> somewhere<00:09:13.120> in<00:09:13.279> your

00:09:13.430 —> 00:09:13.440 align:start position:0% optimizing performance somewhere in your

00:09:13.440 —> 00:09:14.949 align:start position:0% optimizing performance somewhere in your interview.<00:09:14.000> And<00:09:14.160> so<00:09:14.320> you<00:09:14.480> should<00:09:14.640> be<00:09:14.720> able<00:09:14.880> to

00:09:14.949 —> 00:09:14.959 align:start position:0% interview. And so you should be able to

00:09:14.959 —> 00:09:17.190 align:start position:0% interview. And so you should be able to recall<00:09:15.440> approximate<00:09:16.080> latency<00:09:16.560> numbers<00:09:16.880> for

00:09:17.190 —> 00:09:17.200 align:start position:0% recall approximate latency numbers for

00:09:17.200 —> 00:09:19.030 align:start position:0% recall approximate latency numbers for common<00:09:17.519> operations,<00:09:18.240> things<00:09:18.480> like<00:09:18.640> memory

00:09:19.030 —> 00:09:19.040 align:start position:0% common operations, things like memory

00:09:19.040 —> 00:09:21.829 align:start position:0% common operations, things like memory access,<00:09:19.760> disk<00:09:20.080> reads,<00:09:20.399> or<00:09:20.640> network<00:09:21.040> calls.

00:09:21.829 —> 00:09:21.839 align:start position:0% access, disk reads, or network calls.

00:09:21.839 —> 00:09:22.949 align:start position:0% access, disk reads, or network calls. And<00:09:22.000> then<00:09:22.160> when<00:09:22.399> discussing<00:09:22.720> your

00:09:22.949 —> 00:09:22.959 align:start position:0% And then when discussing your

00:09:22.959 —> 00:09:24.230 align:start position:0% And then when discussing your requirements<00:09:23.440> in<00:09:23.600> the<00:09:23.760> beginning<00:09:23.920> of<00:09:24.000> the

00:09:24.230 —> 00:09:24.240 align:start position:0% requirements in the beginning of the

00:09:24.240 —> 00:09:25.350 align:start position:0% requirements in the beginning of the interview,<00:09:24.720> you’re<00:09:24.959> going<00:09:25.040> to<00:09:25.120> want<00:09:25.200> to

00:09:25.350 —> 00:09:25.360 align:start position:0% interview, you’re going to want to

00:09:25.360 —> 00:09:27.030 align:start position:0% interview, you’re going to want to demonstrate<00:09:25.839> your<00:09:26.080> ability<00:09:26.320> to<00:09:26.560> understand

00:09:27.030 —> 00:09:27.040 align:start position:0% demonstrate your ability to understand

00:09:27.040 —> 00:09:29.110 align:start position:0% demonstrate your ability to understand some<00:09:27.279> throughput<00:09:27.680> limitations<00:09:28.640> and<00:09:28.880> maybe

00:09:29.110 —> 00:09:29.120 align:start position:0% some throughput limitations and maybe

00:09:29.120 —> 00:09:31.030 align:start position:0% some throughput limitations and maybe perform<00:09:29.440> some<00:09:29.680> basic<00:09:30.160> capacity<00:09:30.640> planning

00:09:31.030 —> 00:09:31.040 align:start position:0% perform some basic capacity planning

00:09:31.040 —> 00:09:33.030 align:start position:0% perform some basic capacity planning estimations.<00:09:32.320> And<00:09:32.480> so<00:09:32.640> you<00:09:32.800> should<00:09:32.959> be

00:09:33.030 —> 00:09:33.040 align:start position:0% estimations. And so you should be

00:09:33.040 —> 00:09:35.430 align:start position:0% estimations. And so you should be prepared<00:09:33.279> to<00:09:33.680> identify<00:09:34.399> also<00:09:34.959> performance

00:09:35.430 —> 00:09:35.440 align:start position:0% prepared to identify also performance

00:09:35.440 —> 00:09:37.430 align:start position:0% prepared to identify also performance bottlenecks,<00:09:36.399> maybe<00:09:36.640> even<00:09:36.880> proposing

00:09:37.430 —> 00:09:37.440 align:start position:0% bottlenecks, maybe even proposing

00:09:37.440 —> 00:09:38.870 align:start position:0% bottlenecks, maybe even proposing solutions<00:09:38.000> in<00:09:38.240> your<00:09:38.399> distributed

00:09:38.870 —> 00:09:38.880 align:start position:0% solutions in your distributed

00:09:38.880 —> 00:09:40.949 align:start position:0% solutions in your distributed architecture.<00:09:39.680> For<00:09:39.760> example,<00:09:40.480> adding<00:09:40.800> a

00:09:40.949 —> 00:09:40.959 align:start position:0% architecture. For example, adding a

00:09:40.959 —> 00:09:43.670 align:start position:0% architecture. For example, adding a cache<00:09:41.279> to<00:09:41.440> lower<00:09:41.880> latency.<00:09:42.880> And<00:09:43.040> so<00:09:43.360> I’ve

00:09:43.670 —> 00:09:43.680 align:start position:0% cache to lower latency. And so I’ve

00:09:43.680 —> 00:09:45.350 align:start position:0% cache to lower latency. And so I’ve linked<00:09:43.920> down<00:09:44.160> below<00:09:44.399> an<00:09:44.640> article<00:09:44.880> that<00:09:45.120> should

00:09:45.350 —> 00:09:45.360 align:start position:0% linked down below an article that should

00:09:45.360 —> 00:09:47.030 align:start position:0% linked down below an article that should cover<00:09:45.600> everything<00:09:45.920> that<00:09:46.160> you<00:09:46.320> need<00:09:46.399> to<00:09:46.640> know

00:09:47.030 —> 00:09:47.040 align:start position:0% cover everything that you need to know

00:09:47.040 —> 00:09:48.949 align:start position:0% cover everything that you need to know about<00:09:47.360> performance<00:09:47.839> optimizations<00:09:48.480> as<00:09:48.640> well.

00:09:48.949 —> 00:09:48.959 align:start position:0% about performance optimizations as well.

00:09:48.959 —> 00:09:50.870 align:start position:0% about performance optimizations as well. Second<00:09:49.200> to<00:09:49.440> last,<00:09:49.600> we<00:09:49.760> have<00:09:49.920> fault<00:09:50.240> tolerance

00:09:50.870 —> 00:09:50.880 align:start position:0% Second to last, we have fault tolerance

00:09:50.880 —> 00:09:53.509 align:start position:0% Second to last, we have fault tolerance and<00:09:51.640> redundancy.<00:09:52.640> And<00:09:52.800> so<00:09:52.959> this<00:09:53.120> is

00:09:53.509 —> 00:09:53.519 align:start position:0% and redundancy. And so this is

00:09:53.519 —> 00:09:55.110 align:start position:0% and redundancy. And so this is relatively<00:09:54.000> basic.<00:09:54.399> You<00:09:54.560> should<00:09:54.640> be<00:09:54.800> able<00:09:54.880> to

00:09:55.110 —> 00:09:55.120 align:start position:0% relatively basic. You should be able to

00:09:55.120 —> 00:09:56.550 align:start position:0% relatively basic. You should be able to recognize<00:09:55.519> and<00:09:55.839> communicate<00:09:56.240> to<00:09:56.399> your

00:09:56.550 —> 00:09:56.560 align:start position:0% recognize and communicate to your

00:09:56.560 —> 00:09:58.870 align:start position:0% recognize and communicate to your interviewer<00:09:56.959> that<00:09:57.200> failures<00:09:57.839> are<00:09:58.160> inevitable

00:09:58.870 —> 00:09:58.880 align:start position:0% interviewer that failures are inevitable

00:09:58.880 —> 00:10:00.870 align:start position:0% interviewer that failures are inevitable in<00:09:59.200> distributed<00:09:59.680> systems.<00:10:00.320> And<00:10:00.560> so<00:10:00.720> you

00:10:00.870 —> 00:10:00.880 align:start position:0% in distributed systems. And so you

00:10:00.880 —> 00:10:02.790 align:start position:0% in distributed systems. And so you should<00:10:00.959> be<00:10:01.120> ready<00:10:01.279> to<00:10:01.440> discuss<00:10:02.240> things<00:10:02.480> like

00:10:02.790 —> 00:10:02.800 align:start position:0% should be ready to discuss things like

00:10:02.800 —> 00:10:04.710 align:start position:0% should be ready to discuss things like replication<00:10:03.440> strategies<00:10:04.000> and<00:10:04.320> failure

00:10:04.710 —> 00:10:04.720 align:start position:0% replication strategies and failure

00:10:04.720 —> 00:10:06.870 align:start position:0% replication strategies and failure detection<00:10:05.200> mechanisms.<00:10:06.160> And<00:10:06.399> your<00:10:06.560> design

00:10:06.870 —> 00:10:06.880 align:start position:0% detection mechanisms. And your design

00:10:06.880 —> 00:10:08.470 align:start position:0% detection mechanisms. And your design should<00:10:07.120> incorporate<00:10:07.680> redundancy<00:10:08.160> at<00:10:08.320> the

00:10:08.470 —> 00:10:08.480 align:start position:0% should incorporate redundancy at the

00:10:08.480 —> 00:10:10.710 align:start position:0% should incorporate redundancy at the appropriate<00:10:08.880> levels,<00:10:09.519> servers,<00:10:10.160> racks,

00:10:10.710 —> 00:10:10.720 align:start position:0% appropriate levels, servers, racks,

00:10:10.720 —> 00:10:12.470 align:start position:0% appropriate levels, servers, racks, maybe<00:10:10.959> data<00:10:11.279> centers,<00:10:11.839> so<00:10:12.000> that<00:10:12.160> you<00:10:12.320> can

00:10:12.470 —> 00:10:12.480 align:start position:0% maybe data centers, so that you can

00:10:12.480 —> 00:10:14.790 align:start position:0% maybe data centers, so that you can recover<00:10:12.800> from<00:10:13.040> these<00:10:13.440> failures<00:10:14.160> gracefully.

00:10:14.790 —> 00:10:14.800 align:start position:0% recover from these failures gracefully.

00:10:14.800 —> 00:10:16.389 align:start position:0% recover from these failures gracefully. Last<00:10:15.040> up<00:10:15.200> is<00:10:15.440> cap<00:10:15.760> theorem.<00:10:16.160> You’re<00:10:16.240> going<00:10:16.320> to

00:10:16.389 —> 00:10:16.399 align:start position:0% Last up is cap theorem. You’re going to

00:10:16.399 —> 00:10:17.750 align:start position:0% Last up is cap theorem. You’re going to talk<00:10:16.560> about<00:10:16.640> cap<00:10:16.959> theorem<00:10:17.279> earlier<00:10:17.440> in<00:10:17.600> your

00:10:17.750 —> 00:10:17.760 align:start position:0% talk about cap theorem earlier in your

00:10:17.760 —> 00:10:18.949 align:start position:0% talk about cap theorem earlier in your interview,<00:10:18.079> oftent<00:10:18.399> times<00:10:18.640> in<00:10:18.800> the

00:10:18.949 —> 00:10:18.959 align:start position:0% interview, oftent times in the

00:10:18.959 —> 00:10:20.710 align:start position:0% interview, oftent times in the non-functional<00:10:19.600> requirements,<00:10:20.399> and<00:10:20.560> you’re

00:10:20.710 —> 00:10:20.720 align:start position:0% non-functional requirements, and you’re

00:10:20.720 —> 00:10:22.150 align:start position:0% non-functional requirements, and you’re going<00:10:20.800> to<00:10:20.880> want<00:10:21.040> to<00:10:21.200> make<00:10:21.360> sure<00:10:21.600> that<00:10:21.839> your

00:10:22.150 —> 00:10:22.160 align:start position:0% going to want to make sure that your

00:10:22.160 —> 00:10:24.550 align:start position:0% going to want to make sure that your system<00:10:22.800> upholds<00:10:23.519> whatever<00:10:23.920> decision<00:10:24.320> you

00:10:24.550 —> 00:10:24.560 align:start position:0% system upholds whatever decision you

00:10:24.560 —> 00:10:26.870 align:start position:0% system upholds whatever decision you make<00:10:24.880> in<00:10:25.120> as<00:10:25.279> it<00:10:25.440> pertains<00:10:25.680> to<00:10:25.839> cap<00:10:26.160> theum.<00:10:26.720> And

00:10:26.870 —> 00:10:26.880 align:start position:0% make in as it pertains to cap theum. And

00:10:26.880 —> 00:10:29.030 align:start position:0% make in as it pertains to cap theum. And so<00:10:27.040> Capum<00:10:27.600> of<00:10:27.760> course<00:10:28.000> is<00:10:28.320> consistency,

00:10:29.030 —> 00:10:29.040 align:start position:0% so Capum of course is consistency,

00:10:29.040 —> 00:10:31.269 align:start position:0% so Capum of course is consistency, availability,<00:10:29.680> and<00:10:29.839> partition<00:10:30.279> tolerance.

00:10:31.269 —> 00:10:31.279 align:start position:0% availability, and partition tolerance.

00:10:31.279 —> 00:10:33.190 align:start position:0% availability, and partition tolerance. Your<00:10:31.600> system<00:10:31.920> can<00:10:32.160> only<00:10:32.399> have<00:10:32.640> two<00:10:32.880> of<00:10:33.040> the

00:10:33.190 —> 00:10:33.200 align:start position:0% Your system can only have two of the

00:10:33.200 —> 00:10:35.430 align:start position:0% Your system can only have two of the three.<00:10:34.000> Partition<00:10:34.480> tolerance<00:10:35.040> is<00:10:35.279> a

00:10:35.430 —> 00:10:35.440 align:start position:0% three. Partition tolerance is a

00:10:35.440 —> 00:10:37.829 align:start position:0% three. Partition tolerance is a guarantee.<00:10:36.240> And<00:10:36.399> so<00:10:36.640> your<00:10:36.880> only<00:10:37.200> decision<00:10:37.600> is

00:10:37.829 —> 00:10:37.839 align:start position:0% guarantee. And so your only decision is

00:10:37.839 —> 00:10:40.550 align:start position:0% guarantee. And so your only decision is should<00:10:38.079> my<00:10:38.320> system<00:10:38.640> prioritize<00:10:39.560> availability

00:10:40.550 —> 00:10:40.560 align:start position:0% should my system prioritize availability

00:10:40.560 —> 00:10:43.110 align:start position:0% should my system prioritize availability or<00:10:41.160> consistency?<00:10:42.160> And<00:10:42.320> now<00:10:42.560> if<00:10:42.800> this<00:10:42.959> is

00:10:43.110 —> 00:10:43.120 align:start position:0% or consistency? And now if this is

00:10:43.120 —> 00:10:44.550 align:start position:0% or consistency? And now if this is foreign<00:10:43.440> to<00:10:43.600> you,<00:10:43.839> you<00:10:44.000> don’t<00:10:44.160> know<00:10:44.240> what<00:10:44.399> I’m

00:10:44.550 —> 00:10:44.560 align:start position:0% foreign to you, you don’t know what I’m

00:10:44.560 —> 00:10:46.630 align:start position:0% foreign to you, you don’t know what I’m talking<00:10:44.800> about,<00:10:45.440> don’t<00:10:45.680> stress<00:10:46.000> it.<00:10:46.399> We<00:10:46.560> have

00:10:46.630 —> 00:10:46.640 align:start position:0% talking about, don’t stress it. We have

00:10:46.640 —> 00:10:48.710 align:start position:0% talking about, don’t stress it. We have a<00:10:46.880> really<00:10:47.040> detailed<00:10:47.519> video<00:10:47.760> on<00:10:48.000> Cap<00:10:48.399> theorem

00:10:48.710 —> 00:10:48.720 align:start position:0% a really detailed video on Cap theorem

00:10:48.720 —> 00:10:50.310 align:start position:0% a really detailed video on Cap theorem as<00:10:48.880> well.<00:10:49.200> I<00:10:49.440> think<00:10:49.519> it’s<00:10:49.680> less<00:10:49.920> than<00:10:50.079> 10

00:10:50.310 —> 00:10:50.320 align:start position:0% as well. I think it’s less than 10

00:10:50.320 —> 00:10:52.230 align:start position:0% as well. I think it’s less than 10 minutes<00:10:50.560> long.<00:10:51.040> Should<00:10:51.279> go<00:10:51.519> quick.<00:10:52.079> And

00:10:52.230 —> 00:10:52.240 align:start position:0% minutes long. Should go quick. And

00:10:52.240 —> 00:10:56.949 align:start position:0% minutes long. Should go quick. And that’s<00:10:52.480> also<00:10:52.720> linked<00:10:53.200> below.

00:10:56.949 —> 00:10:56.959 align:start position:0%

00:10:56.959 —> 00:10:58.949 align:start position:0%

And<00:10:57.120> then<00:10:57.279> we<00:10:57.440> have<00:10:57.600> our<00:10:57.839> database.<00:10:58.560> And<00:10:58.720> so

00:10:58.949 —> 00:10:58.959 align:start position:0% And then we have our database. And so

00:10:58.959 —> 00:11:00.550 align:start position:0% And then we have our database. And so this<00:10:59.120> is<00:10:59.200> where<00:10:59.440> your<00:10:59.600> data<00:10:59.920> lives<00:11:00.160> when<00:11:00.399> the

00:11:00.550 —> 00:11:00.560 align:start position:0% this is where your data lives when the

00:11:00.560 —> 00:11:02.550 align:start position:0% this is where your data lives when the power<00:11:00.800> goes<00:11:01.040> off.<00:11:01.600> You<00:11:01.760> have<00:11:01.920> options<00:11:02.240> here.

00:11:02.550 —> 00:11:02.560 align:start position:0% power goes off. You have options here.

00:11:02.560 —> 00:11:04.069 align:start position:0% power goes off. You have options here. You’ve<00:11:02.800> got<00:11:02.880> a<00:11:03.120> traditional<00:11:03.440> database<00:11:03.839> like

00:11:04.069 —> 00:11:04.079 align:start position:0% You’ve got a traditional database like

00:11:04.079 —> 00:11:05.509 align:start position:0% You’ve got a traditional database like Postgress,<00:11:04.800> which<00:11:05.040> is<00:11:05.200> going<00:11:05.279> to<00:11:05.360> keep

00:11:05.509 —> 00:11:05.519 align:start position:0% Postgress, which is going to keep

00:11:05.519 —> 00:11:07.030 align:start position:0% Postgress, which is going to keep everything<00:11:05.920> organized<00:11:06.399> in<00:11:06.560> these<00:11:06.800> strict

00:11:07.030 —> 00:11:07.040 align:start position:0% everything organized in these strict

00:11:07.040 —> 00:11:09.269 align:start position:0% everything organized in these strict little<00:11:07.360> tables<00:11:07.839> with<00:11:08.000> with<00:11:08.640> uh<00:11:08.800> clear<00:11:09.120> and

00:11:09.269 —> 00:11:09.279 align:start position:0% little tables with with uh clear and

00:11:09.279 —> 00:11:12.069 align:start position:0% little tables with with uh clear and defined<00:11:09.680> rules.<00:11:10.560> You<00:11:10.800> also<00:11:11.040> have<00:11:11.680> maybe

00:11:12.069 —> 00:11:12.079 align:start position:0% defined rules. You also have maybe

00:11:12.079 —> 00:11:14.870 align:start position:0% defined rules. You also have maybe relatively<00:11:12.640> newer<00:11:13.040> options<00:11:13.440> like<00:11:13.880> MongoDB.

00:11:14.870 —> 00:11:14.880 align:start position:0% relatively newer options like MongoDB.

00:11:14.880 —> 00:11:16.710 align:start position:0% relatively newer options like MongoDB. This<00:11:15.040> is<00:11:15.200> going<00:11:15.279> to<00:11:15.440> store<00:11:15.839> information<00:11:16.480> more

00:11:16.710 —> 00:11:16.720 align:start position:0% This is going to store information more

00:11:16.720 —> 00:11:19.190 align:start position:0% This is going to store information more in<00:11:16.959> documents<00:11:17.440> and<00:11:17.680> JSON<00:11:18.160> blobs.<00:11:18.880> And<00:11:19.040> then

00:11:19.190 —> 00:11:19.200 align:start position:0% in documents and JSON blobs. And then

00:11:19.200 —> 00:11:20.630 align:start position:0% in documents and JSON blobs. And then you<00:11:19.279> have<00:11:19.360> other<00:11:19.600> things<00:11:19.680> like<00:11:19.920> Reddus,<00:11:20.399> which

00:11:20.630 —> 00:11:20.640 align:start position:0% you have other things like Reddus, which

00:11:20.640 —> 00:11:22.790 align:start position:0% you have other things like Reddus, which is<00:11:20.800> going<00:11:21.040> to<00:11:21.360> store<00:11:21.680> simple<00:11:22.079> key<00:11:22.320> value<00:11:22.560> pairs

00:11:22.790 —> 00:11:22.800 align:start position:0% is going to store simple key value pairs

00:11:22.800 —> 00:11:24.550 align:start position:0% is going to store simple key value pairs that<00:11:22.959> you<00:11:23.040> can<00:11:23.200> look<00:11:23.279> up<00:11:23.519> really<00:11:23.760> quickly.

00:11:24.550 —> 00:11:24.560 align:start position:0% that you can look up really quickly.

00:11:24.560 —> 00:11:26.710 align:start position:0% that you can look up really quickly. Now,<00:11:25.279> importantly,<00:11:25.920> and<00:11:26.079> I<00:11:26.240> see<00:11:26.320> this<00:11:26.480> mistake

00:11:26.710 —> 00:11:26.720 align:start position:0% Now, importantly, and I see this mistake

00:11:26.720 —> 00:11:28.550 align:start position:0% Now, importantly, and I see this mistake a<00:11:26.880> lot,<00:11:27.120> don’t<00:11:27.279> get<00:11:27.440> caught<00:11:27.680> up<00:11:27.839> in<00:11:28.000> the<00:11:28.240> old

00:11:28.550 —> 00:11:28.560 align:start position:0% a lot, don’t get caught up in the old

00:11:28.560 —> 00:11:31.190 align:start position:0% a lot, don’t get caught up in the old SQL<00:11:28.959> versus<00:11:29.279> NoSQL<00:11:29.839> debate.<00:11:30.560> Most<00:11:30.880> modern

00:11:31.190 —> 00:11:31.200 align:start position:0% SQL versus NoSQL debate. Most modern

00:11:31.200 —> 00:11:33.670 align:start position:0% SQL versus NoSQL debate. Most modern databases<00:11:31.920> can<00:11:32.160> scale<00:11:32.560> well<00:11:33.200> and<00:11:33.440> can

00:11:33.670 —> 00:11:33.680 align:start position:0% databases can scale well and can

00:11:33.680 —> 00:11:35.590 align:start position:0% databases can scale well and can maintain<00:11:34.079> data<00:11:34.320> integrity.<00:11:35.120> And<00:11:35.279> so,<00:11:35.440> the

00:11:35.590 —> 00:11:35.600 align:start position:0% maintain data integrity. And so, the

00:11:35.600 —> 00:11:37.590 align:start position:0% maintain data integrity. And so, the real<00:11:35.839> question<00:11:36.079> isn’t<00:11:36.480> SQL<00:11:36.800> versus<00:11:37.040> NoSQL.

00:11:37.590 —> 00:11:37.600 align:start position:0% real question isn’t SQL versus NoSQL.

00:11:37.600 —> 00:11:39.030 align:start position:0% real question isn’t SQL versus NoSQL. It’s<00:11:37.760> how<00:11:37.839> does<00:11:38.000> your<00:11:38.160> app<00:11:38.399> need<00:11:38.560> to<00:11:38.640> read<00:11:38.800> and

00:11:39.030 —> 00:11:39.040 align:start position:0% It’s how does your app need to read and

00:11:39.040 —> 00:11:40.550 align:start position:0% It’s how does your app need to read and write<00:11:39.200> data?<00:11:39.760> And<00:11:39.920> then<00:11:40.079> you<00:11:40.240> should<00:11:40.320> choose

00:11:40.550 —> 00:11:40.560 align:start position:0% write data? And then you should choose

00:11:40.560 —> 00:11:42.230 align:start position:0% write data? And then you should choose the<00:11:40.720> option<00:11:41.040> that<00:11:41.279> makes<00:11:41.600> those<00:11:41.920> common

00:11:42.230 —> 00:11:42.240 align:start position:0% the option that makes those common

00:11:42.240 —> 00:11:44.389 align:start position:0% the option that makes those common operations<00:11:43.040> fast<00:11:43.440> and<00:11:43.680> simple<00:11:43.920> for<00:11:44.079> your<00:11:44.240> use

00:11:44.389 —> 00:11:44.399 align:start position:0% operations fast and simple for your use

00:11:44.399 —> 00:11:45.910 align:start position:0% operations fast and simple for your use case.<00:11:44.720> For<00:11:44.959> your<00:11:45.120> cache,<00:11:45.440> you<00:11:45.600> can<00:11:45.680> think<00:11:45.839> of

00:11:45.910 —> 00:11:45.920 align:start position:0% case. For your cache, you can think of

00:11:45.920 —> 00:11:47.670 align:start position:0% case. For your cache, you can think of this<00:11:46.160> like<00:11:46.399> your<00:11:46.640> systems<00:11:47.200> short-term

00:11:47.670 —> 00:11:47.680 align:start position:0% this like your systems short-term

00:11:47.680 —> 00:11:50.470 align:start position:0% this like your systems short-term memory.<00:11:48.480> And<00:11:48.640> so<00:11:48.880> caches,<00:11:49.680> Reddus<00:11:50.160> being<00:11:50.320> a

00:11:50.470 —> 00:11:50.480 align:start position:0% memory. And so caches, Reddus being a

00:11:50.480 —> 00:11:52.470 align:start position:0% memory. And so caches, Reddus being a popular<00:11:50.800> example,<00:11:51.519> they<00:11:51.760> store<00:11:52.000> frequently

00:11:52.470 —> 00:11:52.480 align:start position:0% popular example, they store frequently

00:11:52.480 —> 00:11:54.470 align:start position:0% popular example, they store frequently accessed<00:11:52.800> data<00:11:53.200> so<00:11:53.360> that<00:11:53.600> you<00:11:53.760> don’t<00:11:54.000> have<00:11:54.160> to

00:11:54.470 —> 00:11:54.480 align:start position:0% accessed data so that you don’t have to

00:11:54.480 —> 00:11:56.550 align:start position:0% accessed data so that you don’t have to keep<00:11:54.720> hitting<00:11:55.040> your<00:11:55.200> database.<00:11:56.079> Now,<00:11:56.320> they’re

00:11:56.550 —> 00:11:56.560 align:start position:0% keep hitting your database. Now, they’re

00:11:56.560 —> 00:11:59.269 align:start position:0% keep hitting your database. Now, they’re way<00:11:56.800> faster<00:11:57.920> um<00:11:58.240> but<00:11:58.560> they<00:11:58.800> do<00:11:58.959> come<00:11:59.120> with

00:11:59.269 —> 00:11:59.279 align:start position:0% way faster um but they do come with

00:11:59.279 —> 00:12:00.870 align:start position:0% way faster um but they do come with their<00:11:59.440> own<00:11:59.600> challenges<00:12:00.240> mainly<00:12:00.560> around

00:12:00.870 —> 00:12:00.880 align:start position:0% their own challenges mainly around

00:12:00.880 —> 00:12:02.949 align:start position:0% their own challenges mainly around keeping<00:12:01.200> data<00:12:01.519> fresh.<00:12:02.160> And<00:12:02.320> so<00:12:02.480> you<00:12:02.640> need<00:12:02.800> to

00:12:02.949 —> 00:12:02.959 align:start position:0% keeping data fresh. And so you need to

00:12:02.959 —> 00:12:04.310 align:start position:0% keeping data fresh. And so you need to decide,<00:12:03.279> for<00:12:03.360> example,<00:12:03.760> how<00:12:04.000> long

00:12:04.310 —> 00:12:04.320 align:start position:0% decide, for example, how long

00:12:04.320 —> 00:12:06.310 align:start position:0% decide, for example, how long information<00:12:05.120> stays<00:12:05.440> valid.<00:12:05.920> When<00:12:06.160> do<00:12:06.240> you

00:12:06.310 —> 00:12:06.320 align:start position:0% information stays valid. When do you

00:12:06.320 —> 00:12:08.389 align:start position:0% information stays valid. When do you kick<00:12:06.560> it<00:12:06.639> out<00:12:06.800> of<00:12:06.880> the<00:12:07.040> cache?<00:12:07.839> The<00:12:08.079> main<00:12:08.240> thing

00:12:08.389 —> 00:12:08.399 align:start position:0% kick it out of the cache? The main thing

00:12:08.399 —> 00:12:09.590 align:start position:0% kick it out of the cache? The main thing to<00:12:08.560> remember<00:12:08.800> when<00:12:08.959> you’re<00:12:09.120> introducing

00:12:09.590 —> 00:12:09.600 align:start position:0% to remember when you’re introducing

00:12:09.600 —> 00:12:11.030 align:start position:0% to remember when you’re introducing caches<00:12:10.160> is<00:12:10.399> that<00:12:10.560> they’re<00:12:10.720> going<00:12:10.800> to<00:12:10.880> make

00:12:11.030 —> 00:12:11.040 align:start position:0% caches is that they’re going to make

00:12:11.040 —> 00:12:13.190 align:start position:0% caches is that they’re going to make your<00:12:11.279> system<00:12:11.839> lightning<00:12:12.320> fast<00:12:12.560> for<00:12:12.720> repeated

00:12:13.190 —> 00:12:13.200 align:start position:0% your system lightning fast for repeated

00:12:13.200 —> 00:12:16.230 align:start position:0% your system lightning fast for repeated requests,<00:12:14.079> but<00:12:14.880> managing<00:12:15.360> them<00:12:15.600> adds<00:12:16.000> some

00:12:16.230 —> 00:12:16.240 align:start position:0% requests, but managing them adds some

00:12:16.240 —> 00:12:17.590 align:start position:0% requests, but managing them adds some additional<00:12:16.560> complexity<00:12:16.959> to<00:12:17.200> your<00:12:17.360> design

00:12:17.590 —> 00:12:17.600 align:start position:0% additional complexity to your design

00:12:17.600 —> 00:12:18.470 align:start position:0% additional complexity to your design that<00:12:17.839> you’re<00:12:17.920> going<00:12:18.000> to<00:12:18.079> want<00:12:18.160> to<00:12:18.240> be<00:12:18.320> aware

00:12:18.470 —> 00:12:18.480 align:start position:0% that you’re going to want to be aware

00:12:18.480 —> 00:12:19.990 align:start position:0% that you’re going to want to be aware of.<00:12:18.720> Message<00:12:18.959> cues<00:12:19.279> are<00:12:19.360> how<00:12:19.519> different<00:12:19.760> parts

00:12:19.990 —> 00:12:20.000 align:start position:0% of. Message cues are how different parts

00:12:20.000 —> 00:12:21.829 align:start position:0% of. Message cues are how different parts of<00:12:20.160> your<00:12:20.399> system<00:12:20.720> can<00:12:20.959> talk<00:12:21.120> to<00:12:21.279> each<00:12:21.440> other

00:12:21.829 —> 00:12:21.839 align:start position:0% of your system can talk to each other

00:12:21.839 —> 00:12:23.829 align:start position:0% of your system can talk to each other without<00:12:22.240> having<00:12:22.399> to<00:12:22.560> wait<00:12:22.800> around.<00:12:23.519> And<00:12:23.680> so

00:12:23.829 —> 00:12:23.839 align:start position:0% without having to wait around. And so

00:12:23.839 —> 00:12:26.150 align:start position:0% without having to wait around. And so instead<00:12:24.160> of<00:12:24.320> making<00:12:24.560> direct<00:12:24.959> calls,<00:12:25.920> one

00:12:26.150 —> 00:12:26.160 align:start position:0% instead of making direct calls, one

00:12:26.160 —> 00:12:28.230 align:start position:0% instead of making direct calls, one service<00:12:26.560> can<00:12:26.800> drop<00:12:26.959> a<00:12:27.200> message<00:12:27.360> into<00:12:27.600> a<00:12:27.760> queue.

00:12:28.230 —> 00:12:28.240 align:start position:0% service can drop a message into a queue.

00:12:28.240 —> 00:12:30.629 align:start position:0% service can drop a message into a queue. Popular<00:12:28.560> ones<00:12:28.800> are<00:12:28.959> like<00:12:29.120> Kafka,<00:12:29.680> Rabbit<00:12:30.000> MQ,

00:12:30.629 —> 00:12:30.639 align:start position:0% Popular ones are like Kafka, Rabbit MQ,

00:12:30.639 —> 00:12:33.110 align:start position:0% Popular ones are like Kafka, Rabbit MQ, maybe<00:12:30.880> SQS,<00:12:31.839> and<00:12:32.079> then<00:12:32.240> another<00:12:32.560> service<00:12:32.880> can

00:12:33.110 —> 00:12:33.120 align:start position:0% maybe SQS, and then another service can

00:12:33.120 —> 00:12:34.949 align:start position:0% maybe SQS, and then another service can pick<00:12:33.360> it<00:12:33.519> up<00:12:33.680> and<00:12:33.920> process<00:12:34.320> it<00:12:34.560> when<00:12:34.800> it’s

00:12:34.949 —> 00:12:34.959 align:start position:0% pick it up and process it when it’s

00:12:34.959 —> 00:12:37.030 align:start position:0% pick it up and process it when it’s ready.<00:12:35.600> And<00:12:35.839> so<00:12:36.079> you<00:12:36.240> can<00:12:36.320> think<00:12:36.480> of<00:12:36.560> this<00:12:36.800> like

00:12:37.030 —> 00:12:37.040 align:start position:0% ready. And so you can think of this like

00:12:37.040 —> 00:12:38.949 align:start position:0% ready. And so you can think of this like texting<00:12:37.519> instead<00:12:37.839> of<00:12:38.000> calling.<00:12:38.639> You<00:12:38.800> don’t

00:12:38.949 —> 00:12:38.959 align:start position:0% texting instead of calling. You don’t

00:12:38.959 —> 00:12:41.030 align:start position:0% texting instead of calling. You don’t need<00:12:39.120> both<00:12:39.440> sides<00:12:39.839> available<00:12:40.399> at<00:12:40.639> the<00:12:40.880> same

00:12:41.030 —> 00:12:41.040 align:start position:0% need both sides available at the same

00:12:41.040 —> 00:12:43.990 align:start position:0% need both sides available at the same time.<00:12:41.440> It<00:12:41.680> can<00:12:41.839> happen<00:12:42.680> asynchronously.<00:12:43.680> Now,

00:12:43.990 —> 00:12:44.000 align:start position:0% time. It can happen asynchronously. Now,

00:12:44.000 —> 00:12:45.910 align:start position:0% time. It can happen asynchronously. Now, this<00:12:44.240> helps<00:12:44.480> your<00:12:44.720> system<00:12:45.120> handle<00:12:45.519> traffic

00:12:45.910 —> 00:12:45.920 align:start position:0% this helps your system handle traffic

00:12:45.920 —> 00:12:47.829 align:start position:0% this helps your system handle traffic spikes<00:12:46.320> and<00:12:46.480> it<00:12:46.720> keeps<00:12:46.959> things<00:12:47.200> running,

00:12:47.829 —> 00:12:47.839 align:start position:0% spikes and it keeps things running,

00:12:47.839 —> 00:12:49.350 align:start position:0% spikes and it keeps things running, particularly<00:12:48.240> if<00:12:48.399> one<00:12:48.639> service<00:12:48.959> were<00:12:49.200> to

00:12:49.350 —> 00:12:49.360 align:start position:0% particularly if one service were to

00:12:49.360 —> 00:12:51.190 align:start position:0% particularly if one service were to crash,<00:12:49.680> for<00:12:49.760> example.<00:12:50.639> But<00:12:50.800> the<00:12:50.959> main

00:12:51.190 —> 00:12:51.200 align:start position:0% crash, for example. But the main

00:12:51.200 —> 00:12:53.350 align:start position:0% crash, for example. But the main challenge<00:12:51.440> is<00:12:52.000> making<00:12:52.320> sure<00:12:52.560> that<00:12:52.880> messages

00:12:53.350 —> 00:12:53.360 align:start position:0% challenge is making sure that messages

00:12:53.360 —> 00:12:54.550 align:start position:0% challenge is making sure that messages actually<00:12:53.680> get<00:12:53.839> delivered<00:12:54.160> in<00:12:54.320> the<00:12:54.399> first

00:12:54.550 —> 00:12:54.560 align:start position:0% actually get delivered in the first

00:12:54.560 —> 00:12:56.069 align:start position:0% actually get delivered in the first place.<00:12:55.040> And<00:12:55.200> so<00:12:55.440> sometimes<00:12:55.760> they<00:12:55.920> get

00:12:56.069 —> 00:12:56.079 align:start position:0% place. And so sometimes they get

00:12:56.079 —> 00:12:57.990 align:start position:0% place. And so sometimes they get delivered<00:12:56.320> once,<00:12:57.040> sometimes<00:12:57.519> potentially

00:12:57.990 —> 00:12:58.000 align:start position:0% delivered once, sometimes potentially

00:12:58.000 —> 00:12:59.829 align:start position:0% delivered once, sometimes potentially they<00:12:58.240> get<00:12:58.399> delivered<00:12:58.639> multiple<00:12:59.120> times.<00:12:59.680> And

00:12:59.829 —> 00:12:59.839 align:start position:0% they get delivered multiple times. And

00:12:59.839 —> 00:13:01.269 align:start position:0% they get delivered multiple times. And you’re<00:13:00.000> going<00:13:00.079> to<00:13:00.240> need<00:13:00.399> strategies<00:13:00.959> in<00:13:01.200> order

00:13:01.269 —> 00:13:01.279 align:start position:0% you’re going to need strategies in order

00:13:01.279 —> 00:13:02.710 align:start position:0% you’re going to need strategies in order to<00:13:01.440> handle<00:13:01.680> this.<00:13:02.000> You<00:13:02.160> can<00:13:02.240> think<00:13:02.320> of<00:13:02.399> a<00:13:02.560> load

00:13:02.710 —> 00:13:02.720 align:start position:0% to handle this. You can think of a load

00:13:02.720 —> 00:13:04.470 align:start position:0% to handle this. You can think of a load balancer<00:13:03.120> as<00:13:03.279> the<00:13:03.440> traffic<00:13:03.760> control<00:13:04.079> for<00:13:04.320> your

00:13:04.470 —> 00:13:04.480 align:start position:0% balancer as the traffic control for your

00:13:04.480 —> 00:13:06.790 align:start position:0% balancer as the traffic control for your system.<00:13:05.279> And<00:13:05.440> so<00:13:05.760> load<00:13:06.000> balancers<00:13:06.560> take

00:13:06.790 —> 00:13:06.800 align:start position:0% system. And so load balancers take

00:13:06.800 —> 00:13:09.030 align:start position:0% system. And so load balancers take incoming<00:13:07.279> requests<00:13:07.839> and<00:13:08.079> they<00:13:08.399> direct<00:13:08.800> them

00:13:09.030 —> 00:13:09.040 align:start position:0% incoming requests and they direct them

00:13:09.040 —> 00:13:11.350 align:start position:0% incoming requests and they direct them to<00:13:09.360> different<00:13:09.680> servers<00:13:10.320> so<00:13:10.560> that<00:13:10.720> no<00:13:11.040> single

00:13:11.350 —> 00:13:11.360 align:start position:0% to different servers so that no single

00:13:11.360 —> 00:13:13.829 align:start position:0% to different servers so that no single machine<00:13:11.760> gets<00:13:12.079> overwhelmed.<00:13:12.959> So<00:13:13.279> this<00:13:13.519> server

00:13:13.829 —> 00:13:13.839 align:start position:0% machine gets overwhelmed. So this server

00:13:13.839 —> 00:13:15.829 align:start position:0% machine gets overwhelmed. So this server box<00:13:14.160> here<00:13:14.480> typically<00:13:14.880> will<00:13:15.120> horizontally

00:13:15.829 —> 00:13:15.839 align:start position:0% box here typically will horizontally

00:13:15.839 —> 00:13:17.190 align:start position:0% box here typically will horizontally scale<00:13:16.079> it.<00:13:16.320> Meaning<00:13:16.480> we’ll<00:13:16.720> need<00:13:16.800> more<00:13:16.959> than

00:13:17.190 —> 00:13:17.200 align:start position:0% scale it. Meaning we’ll need more than

00:13:17.200 —> 00:13:18.790 align:start position:0% scale it. Meaning we’ll need more than just<00:13:17.360> one<00:13:17.600> computer.<00:13:18.000> We’ll<00:13:18.240> need<00:13:18.399> multiple

00:13:18.790 —> 00:13:18.800 align:start position:0% just one computer. We’ll need multiple

00:13:18.800 —> 00:13:20.790 align:start position:0% just one computer. We’ll need multiple servers.<00:13:19.519> And<00:13:19.680> then<00:13:19.760> the<00:13:19.920> load<00:13:20.160> balancer<00:13:20.639> is

00:13:20.790 —> 00:13:20.800 align:start position:0% servers. And then the load balancer is

00:13:20.800 —> 00:13:22.710 align:start position:0% servers. And then the load balancer is going<00:13:20.959> to<00:13:21.040> be<00:13:21.279> determining<00:13:22.160> when<00:13:22.399> a<00:13:22.560> new

00:13:22.710 —> 00:13:22.720 align:start position:0% going to be determining when a new

00:13:22.720 —> 00:13:24.629 align:start position:0% going to be determining when a new request<00:13:23.120> comes<00:13:23.279> in<00:13:23.760> which<00:13:24.000> of<00:13:24.160> those<00:13:24.320> servers

00:13:24.629 —> 00:13:24.639 align:start position:0% request comes in which of those servers

00:13:24.639 —> 00:13:26.790 align:start position:0% request comes in which of those servers it<00:13:24.800> should<00:13:24.959> route<00:13:25.200> that<00:13:25.360> request<00:13:25.680> to.<00:13:26.560> That

00:13:26.790 —> 00:13:26.800 align:start position:0% it should route that request to. That

00:13:26.800 —> 00:13:28.710 align:start position:0% it should route that request to. That simple.<00:13:27.200> Your<00:13:27.440> database<00:13:27.760> is<00:13:28.000> designed<00:13:28.399> for

00:13:28.710 —> 00:13:28.720 align:start position:0% simple. Your database is designed for

00:13:28.720 —> 00:13:31.269 align:start position:0% simple. Your database is designed for organized<00:13:29.600> structured<00:13:30.160> data<00:13:30.639> like<00:13:30.880> user

00:13:31.269 —> 00:13:31.279 align:start position:0% organized structured data like user

00:13:31.279 —> 00:13:33.269 align:start position:0% organized structured data like user accounts<00:13:31.519> or<00:13:31.760> product<00:13:32.079> information.<00:13:33.040> It’s

00:13:33.269 —> 00:13:33.279 align:start position:0% accounts or product information. It’s

00:13:33.279 —> 00:13:35.110 align:start position:0% accounts or product information. It’s not<00:13:33.440> designed<00:13:33.680> for<00:13:33.920> storing<00:13:34.160> large<00:13:34.480> files,

00:13:35.110 —> 00:13:35.120 align:start position:0% not designed for storing large files,

00:13:35.120 —> 00:13:37.509 align:start position:0% not designed for storing large files, things<00:13:35.360> like<00:13:35.519> images<00:13:35.920> or<00:13:36.240> videos.<00:13:37.120> And<00:13:37.279> so

00:13:37.509 —> 00:13:37.519 align:start position:0% things like images or videos. And so

00:13:37.519 —> 00:13:39.110 align:start position:0% things like images or videos. And so trying<00:13:37.760> to<00:13:37.839> cram<00:13:38.240> those<00:13:38.399> things<00:13:38.639> into<00:13:38.959> your

00:13:39.110 —> 00:13:39.120 align:start position:0% trying to cram those things into your

00:13:39.120 —> 00:13:41.030 align:start position:0% trying to cram those things into your database<00:13:39.600> is<00:13:39.839> like<00:13:40.000> forcing<00:13:40.320> a<00:13:40.480> square<00:13:40.720> peg

00:13:41.030 —> 00:13:41.040 align:start position:0% database is like forcing a square peg

00:13:41.040 —> 00:13:42.310 align:start position:0% database is like forcing a square peg into<00:13:41.200> a<00:13:41.279> round<00:13:41.519> hole.<00:13:41.760> It’s<00:13:41.920> going<00:13:42.000> to<00:13:42.079> bloat

00:13:42.310 —> 00:13:42.320 align:start position:0% into a round hole. It’s going to bloat

00:13:42.320 —> 00:13:43.829 align:start position:0% into a round hole. It’s going to bloat your<00:13:42.480> database<00:13:43.120> and<00:13:43.279> it’s<00:13:43.440> going<00:13:43.519> to<00:13:43.600> slow

00:13:43.829 —> 00:13:43.839 align:start position:0% your database and it’s going to slow

00:13:43.839 —> 00:13:44.949 align:start position:0% your database and it’s going to slow down<00:13:43.920> all<00:13:44.160> of<00:13:44.240> your<00:13:44.399> queries<00:13:44.639> and<00:13:44.800> make

00:13:44.949 —> 00:13:44.959 align:start position:0% down all of your queries and make

00:13:44.959 —> 00:13:47.110 align:start position:0% down all of your queries and make backups<00:13:45.279> a<00:13:45.440> nightmare.<00:13:46.160> And<00:13:46.320> so<00:13:46.480> that’s<00:13:46.720> why

00:13:47.110 —> 00:13:47.120 align:start position:0% backups a nightmare. And so that’s why

00:13:47.120 —> 00:13:49.910 align:start position:0% backups a nightmare. And so that’s why services<00:13:47.519> like<00:13:47.680> blob<00:13:48.160> storage<00:13:48.560> services,<00:13:49.360> S3

00:13:49.910 —> 00:13:49.920 align:start position:0% services like blob storage services, S3

00:13:49.920 —> 00:13:52.310 align:start position:0% services like blob storage services, S3 being<00:13:50.079> a<00:13:50.240> popular<00:13:50.560> example,<00:13:51.200> exist.<00:13:52.000> They’re

00:13:52.310 —> 00:13:52.320 align:start position:0% being a popular example, exist. They’re

00:13:52.320 —> 00:13:54.230 align:start position:0% being a popular example, exist. They’re specifically<00:13:52.880> built<00:13:53.120> to<00:13:53.279> handle<00:13:53.600> these<00:13:53.920> types

00:13:54.230 —> 00:13:54.240 align:start position:0% specifically built to handle these types

00:13:54.240 —> 00:13:56.949 align:start position:0% specifically built to handle these types of<00:13:54.480> unstructured<00:13:55.279> data.<00:13:55.920> This<00:13:56.079> is<00:13:56.240> typically

00:13:56.949 —> 00:13:56.959 align:start position:0% of unstructured data. This is typically

00:13:56.959 —> 00:14:00.310 align:start position:0% of unstructured data. This is typically media,<00:13:57.760> large<00:13:58.160> text<00:13:58.399> files,<00:13:59.519> etc.<00:13:59.920> and<00:14:00.160> they

00:14:00.310 —> 00:14:00.320 align:start position:0% media, large text files, etc. and they

00:14:00.320 —> 00:14:02.870 align:start position:0% media, large text files, etc. and they can<00:14:00.480> host<00:14:00.639> them<00:14:00.800> at<00:14:01.040> a<00:14:01.279> much<00:14:01.600> cheaper<00:14:02.000> cost.

00:14:02.870 —> 00:14:02.880 align:start position:0% can host them at a much cheaper cost.

00:14:02.880 —> 00:14:04.389 align:start position:0% can host them at a much cheaper cost. And<00:14:03.040> so<00:14:03.279> always<00:14:03.519> keep<00:14:03.680> your<00:14:03.839> structured<00:14:04.240> data

00:14:04.389 —> 00:14:04.399 align:start position:0% And so always keep your structured data

00:14:04.399 —> 00:14:06.069 align:start position:0% And so always keep your structured data in<00:14:04.560> your<00:14:04.720> database<00:14:05.279> and<00:14:05.519> you<00:14:05.680> keep<00:14:05.839> your

00:14:06.069 —> 00:14:06.079 align:start position:0% in your database and you keep your

00:14:06.079 —> 00:14:08.629 align:start position:0% in your database and you keep your unstructured<00:14:06.800> data<00:14:07.440> in<00:14:07.680> your<00:14:07.839> blog<00:14:08.160> storage.

00:14:08.629 —> 00:14:08.639 align:start position:0% unstructured data in your blog storage.

00:14:08.639 —> 00:14:10.790 align:start position:0% unstructured data in your blog storage. Your<00:14:08.800> CDN<00:14:09.360> or<00:14:09.600> your<00:14:09.839> content<00:14:10.240> delivery

00:14:10.790 —> 00:14:10.800 align:start position:0% Your CDN or your content delivery

00:14:10.800 —> 00:14:14.069 align:start position:0% Your CDN or your content delivery network<00:14:11.920> um<00:14:12.160> it’s<00:14:12.399> just<00:14:12.560> a<00:14:12.720> cache.<00:14:13.519> The<00:14:13.680> CDN

00:14:14.069 —> 00:14:14.079 align:start position:0% network um it’s just a cache. The CDN

00:14:14.079 —> 00:14:15.430 align:start position:0% network um it’s just a cache. The CDN confuses<00:14:14.399> a<00:14:14.560> lot<00:14:14.639> of<00:14:14.720> people,<00:14:14.959> but<00:14:15.120> it’s<00:14:15.279> just

00:14:15.430 —> 00:14:15.440 align:start position:0% confuses a lot of people, but it’s just

00:14:15.440 —> 00:14:17.590 align:start position:0% confuses a lot of people, but it’s just a<00:14:15.600> cache.<00:14:16.320> Uh<00:14:16.480> and<00:14:16.639> it<00:14:16.800> serves<00:14:17.040> as<00:14:17.199> your<00:14:17.360> global

00:14:17.590 —> 00:14:17.600 align:start position:0% a cache. Uh and it serves as your global

00:14:17.600 —> 00:14:19.430 align:start position:0% a cache. Uh and it serves as your global distribution<00:14:18.160> system.<00:14:18.880> And<00:14:18.959> so<00:14:19.120> you<00:14:19.360> can

00:14:19.430 —> 00:14:19.440 align:start position:0% distribution system. And so you can

00:14:19.440 —> 00:14:21.509 align:start position:0% distribution system. And so you can place<00:14:19.680> your<00:14:19.920> content<00:14:20.480> closer<00:14:20.880> to<00:14:21.120> users

00:14:21.509 —> 00:14:21.519 align:start position:0% place your content closer to users

00:14:21.519 —> 00:14:23.750 align:start position:0% place your content closer to users around<00:14:21.760> the<00:14:22.000> world.<00:14:22.560> So<00:14:22.800> popular<00:14:23.120> CDNs<00:14:23.600> are

00:14:23.750 —> 00:14:23.760 align:start position:0% around the world. So popular CDNs are

00:14:23.760 —> 00:14:26.949 align:start position:0% around the world. So popular CDNs are like<00:14:24.040> Cloudfare<00:14:25.199> uh<00:14:25.360> is<00:14:25.519> is<00:14:25.920> one<00:14:26.399> and<00:14:26.639> they<00:14:26.800> can

00:14:26.949 —> 00:14:26.959 align:start position:0% like Cloudfare uh is is one and they can

00:14:26.959 —> 00:14:28.710 align:start position:0% like Cloudfare uh is is one and they can store<00:14:27.199> the<00:14:27.440> copies<00:14:27.760> of<00:14:27.920> the<00:14:28.160> images<00:14:28.399> and<00:14:28.560> the

00:14:28.710 —> 00:14:28.720 align:start position:0% store the copies of the images and the

00:14:28.720 —> 00:14:30.550 align:start position:0% store the copies of the images and the videos<00:14:28.959> and<00:14:29.199> other<00:14:29.440> static<00:14:29.839> files<00:14:30.240> oftent

00:14:30.550 —> 00:14:30.560 align:start position:0% videos and other static files oftent

00:14:30.560 —> 00:14:31.990 align:start position:0% videos and other static files oftent times<00:14:30.800> that<00:14:30.959> you’re<00:14:31.120> hosting<00:14:31.360> in<00:14:31.519> your<00:14:31.680> blob

00:14:31.990 —> 00:14:32.000 align:start position:0% times that you’re hosting in your blob

00:14:32.000 —> 00:14:33.750 align:start position:0% times that you’re hosting in your blob storage<00:14:32.720> but<00:14:32.880> they’re<00:14:33.120> going<00:14:33.120> to<00:14:33.279> store<00:14:33.440> them

00:14:33.750 —> 00:14:33.760 align:start position:0% storage but they’re going to store them

00:14:33.760 —> 00:14:35.430 align:start position:0% storage but they’re going to store them closer<00:14:34.079> to<00:14:34.240> the<00:14:34.399> user<00:14:34.800> and<00:14:35.040> so<00:14:35.120> it’s<00:14:35.279> going<00:14:35.360> to

00:14:35.430 —> 00:14:35.440 align:start position:0% closer to the user and so it’s going to

00:14:35.440 —> 00:14:37.430 align:start position:0% closer to the user and so it’s going to make<00:14:35.600> it<00:14:35.760> a<00:14:35.920> lot<00:14:36.079> faster<00:14:36.560> for<00:14:36.880> users<00:14:37.199> to

00:14:37.430 —> 00:14:37.440 align:start position:0% make it a lot faster for users to

00:14:37.440 —> 00:14:39.269 align:start position:0% make it a lot faster for users to download<00:14:37.760> these<00:14:38.079> resources<00:14:38.800> because<00:14:39.040> they

00:14:39.269 —> 00:14:39.279 align:start position:0% download these resources because they

00:14:39.279 —> 00:14:40.949 align:start position:0% download these resources because they don’t<00:14:39.360> have<00:14:39.519> to<00:14:39.600> go<00:14:39.760> all<00:14:39.920> the<00:14:40.160> way<00:14:40.240> to<00:14:40.800> for

00:14:40.949 —> 00:14:40.959 align:start position:0% don’t have to go all the way to for

00:14:40.959 —> 00:14:43.350 align:start position:0% don’t have to go all the way to for example<00:14:41.440> America<00:14:41.920> if<00:14:42.079> they’re<00:14:42.240> in<00:14:42.480> India<00:14:43.120> they

00:14:43.350 —> 00:14:43.360 align:start position:0% example America if they’re in India they

00:14:43.360 —> 00:14:45.350 align:start position:0% example America if they’re in India they can<00:14:43.440> just<00:14:43.600> pull<00:14:43.839> in<00:14:44.079> these<00:14:44.320> images<00:14:44.560> and<00:14:44.880> files

00:14:45.350 —> 00:14:45.360 align:start position:0% can just pull in these images and files

00:14:45.360 —> 00:14:47.910 align:start position:0% can just pull in these images and files directly<00:14:45.839> from<00:14:46.079> a<00:14:46.320> CDN<00:14:46.959> server<00:14:47.519> in<00:14:47.760> their

00:14:47.910 —> 00:14:47.920 align:start position:0% directly from a CDN server in their

00:14:47.920 —> 00:14:51.990 align:start position:0% directly from a CDN server in their native<00:14:48.240> country.

00:14:51.990 —> 00:14:52.000 align:start position:0%

00:14:52.000 —> 00:14:54.150 align:start position:0%

Okay,<00:14:52.320> finally<00:14:52.720> the<00:14:52.959> most<00:14:53.199> important<00:14:53.600> part.

00:14:54.150 —> 00:14:54.160 align:start position:0% Okay, finally the most important part.

00:14:54.160 —> 00:14:55.590 align:start position:0% Okay, finally the most important part. So,<00:14:54.399> if<00:14:54.560> you’re<00:14:54.800> thinking<00:14:55.120> that<00:14:55.360> everything

00:14:55.590 —> 00:14:55.600 align:start position:0% So, if you’re thinking that everything

00:14:55.600 —> 00:14:57.509 align:start position:0% So, if you’re thinking that everything that<00:14:55.839> I<00:14:56.000> just<00:14:56.160> talked<00:14:56.399> about<00:14:56.639> was<00:14:56.959> not<00:14:57.199> foreign

00:14:57.509 —> 00:14:57.519 align:start position:0% that I just talked about was not foreign

00:14:57.519 —> 00:14:59.590 align:start position:0% that I just talked about was not foreign to<00:14:57.680> you,<00:14:58.240> then<00:14:58.480> you<00:14:58.639> are<00:14:58.800> already<00:14:59.199> ready<00:14:59.360> to

00:14:59.590 —> 00:14:59.600 align:start position:0% to you, then you are already ready to

00:14:59.600 —> 00:15:00.870 align:start position:0% to you, then you are already ready to start<00:14:59.760> working<00:15:00.000> through<00:15:00.160> the<00:15:00.320> problems.<00:15:00.720> Even

00:15:00.870 —> 00:15:00.880 align:start position:0% start working through the problems. Even

00:15:00.880 —> 00:15:02.389 align:start position:0% start working through the problems. Even if<00:15:00.959> you<00:15:01.120> weren’t<00:15:01.360> an<00:15:01.519> expert<00:15:01.920> on<00:15:02.160> everything

00:15:02.389 —> 00:15:02.399 align:start position:0% if you weren’t an expert on everything

00:15:02.399 —> 00:15:04.470 align:start position:0% if you weren’t an expert on everything that<00:15:02.560> we<00:15:02.720> just<00:15:02.959> described<00:15:03.760> for<00:15:04.079> anything<00:15:04.320> that

00:15:04.470 —> 00:15:04.480 align:start position:0% that we just described for anything that

00:15:04.480 —> 00:15:06.310 align:start position:0% that we just described for anything that was<00:15:04.639> maybe<00:15:04.880> less<00:15:05.199> clear,<00:15:05.600> I’ve<00:15:05.839> added<00:15:06.079> a<00:15:06.240> bunch

00:15:06.310 —> 00:15:06.320 align:start position:0% was maybe less clear, I’ve added a bunch

00:15:06.320 —> 00:15:08.069 align:start position:0% was maybe less clear, I’ve added a bunch of<00:15:06.480> links<00:15:06.720> below<00:15:06.959> as<00:15:07.199> you<00:15:07.360> know,<00:15:07.680> and<00:15:07.839> you<00:15:08.000> can

00:15:08.069 —> 00:15:08.079 align:start position:0% of links below as you know, and you can

00:15:08.079 —> 00:15:09.590 align:start position:0% of links below as you know, and you can go<00:15:08.240> either<00:15:08.560> watch<00:15:08.720> the<00:15:08.880> videos<00:15:09.120> or<00:15:09.279> read<00:15:09.440> the

00:15:09.590 —> 00:15:09.600 align:start position:0% go either watch the videos or read the

00:15:09.600 —> 00:15:11.509 align:start position:0% go either watch the videos or read the written<00:15:09.839> resources<00:15:10.399> in<00:15:10.639> order<00:15:10.720> to<00:15:10.959> help<00:15:11.279> close

00:15:11.509 —> 00:15:11.519 align:start position:0% written resources in order to help close

00:15:11.519 —> 00:15:14.389 align:start position:0% written resources in order to help close that<00:15:11.760> gap<00:15:12.000> for<00:15:12.160> you.<00:15:13.040> But<00:15:13.199> in<00:15:13.360> reality,<00:15:14.160> most

00:15:14.389 —> 00:15:14.399 align:start position:0% that gap for you. But in reality, most

00:15:14.399 —> 00:15:15.910 align:start position:0% that gap for you. But in reality, most of<00:15:14.560> your<00:15:14.720> learning<00:15:14.959> is<00:15:15.199> going<00:15:15.279> to<00:15:15.440> come<00:15:15.600> from

00:15:15.910 —> 00:15:15.920 align:start position:0% of your learning is going to come from

00:15:15.920 —> 00:15:18.629 align:start position:0% of your learning is going to come from working<00:15:16.399> through<00:15:16.800> core<00:15:17.199> problems.<00:15:18.000> And<00:15:18.160> so<00:15:18.399> I

00:15:18.629 —> 00:15:18.639 align:start position:0% working through core problems. And so I

00:15:18.639 —> 00:15:19.750 align:start position:0% working through core problems. And so I recommend<00:15:18.800> that<00:15:19.040> you<00:15:19.120> work<00:15:19.360> through<00:15:19.519> these

00:15:19.750 —> 00:15:19.760 align:start position:0% recommend that you work through these

00:15:19.760 —> 00:15:21.350 align:start position:0% recommend that you work through these problems<00:15:20.000> that<00:15:20.240> you<00:15:20.320> see<00:15:20.480> on<00:15:20.560> the<00:15:20.720> screen<00:15:20.959> here

00:15:21.350 —> 00:15:21.360 align:start position:0% problems that you see on the screen here

00:15:21.360 —> 00:15:23.590 align:start position:0% problems that you see on the screen here in<00:15:21.680> this<00:15:21.839> order,<00:15:22.320> starting<00:15:22.560> with<00:15:22.720> Bitly,<00:15:23.279> then

00:15:23.590 —> 00:15:23.600 align:start position:0% in this order, starting with Bitly, then

00:15:23.600 —> 00:15:25.670 align:start position:0% in this order, starting with Bitly, then Dropbox,<00:15:24.160> Ticket<00:15:24.480> Master,<00:15:25.120> and<00:15:25.279> then<00:15:25.440> all<00:15:25.519> the

00:15:25.670 —> 00:15:25.680 align:start position:0% Dropbox, Ticket Master, and then all the

00:15:25.680 —> 00:15:27.350 align:start position:0% Dropbox, Ticket Master, and then all the way<00:15:25.760> around<00:15:26.000> until<00:15:26.320> you<00:15:26.560> end<00:15:26.720> with<00:15:26.959> Post

00:15:27.350 —> 00:15:27.360 align:start position:0% way around until you end with Post

00:15:27.360 —> 00:15:29.509 align:start position:0% way around until you end with Post Search.<00:15:28.000> There’s<00:15:28.240> just<00:15:28.480> 10<00:15:28.720> problems<00:15:29.040> here,

00:15:29.509 —> 00:15:29.519 align:start position:0% Search. There’s just 10 problems here,

00:15:29.519 —> 00:15:31.590 align:start position:0% Search. There’s just 10 problems here, and<00:15:29.760> they<00:15:30.000> cover<00:15:30.240> the<00:15:30.560> overwhelming<00:15:31.279> majority

00:15:31.590 —> 00:15:31.600 align:start position:0% and they cover the overwhelming majority

00:15:31.600 —> 00:15:33.030 align:start position:0% and they cover the overwhelming majority of<00:15:31.839> concepts<00:15:32.160> that<00:15:32.399> you’re<00:15:32.560> going<00:15:32.639> to<00:15:32.720> see<00:15:32.880> in

00:15:33.030 —> 00:15:33.040 align:start position:0% of concepts that you’re going to see in

00:15:33.040 —> 00:15:35.110 align:start position:0% of concepts that you’re going to see in a<00:15:33.199> system<00:15:33.519> design<00:15:33.760> interview.<00:15:34.480> And<00:15:34.639> so<00:15:34.959> with

00:15:35.110 —> 00:15:35.120 align:start position:0% a system design interview. And so with

00:15:35.120 —> 00:15:36.870 align:start position:0% a system design interview. And so with each<00:15:35.519> with<00:15:35.839> each<00:15:36.000> one<00:15:36.160> of<00:15:36.240> these<00:15:36.480> problems,

00:15:36.870 —> 00:15:36.880 align:start position:0% each with each one of these problems,

00:15:36.880 —> 00:15:38.389 align:start position:0% each with each one of these problems, excuse<00:15:37.120> me,<00:15:37.440> you’re<00:15:37.680> going<00:15:37.760> to<00:15:37.839> be<00:15:38.000> introduced

00:15:38.389 —> 00:15:38.399 align:start position:0% excuse me, you’re going to be introduced

00:15:38.399 —> 00:15:40.069 align:start position:0% excuse me, you’re going to be introduced to<00:15:38.639> techniques<00:15:39.040> and<00:15:39.279> patterns<00:15:39.680> that<00:15:40.000> are

00:15:40.069 —> 00:15:40.079 align:start position:0% to techniques and patterns that are

00:15:40.079 —> 00:15:42.470 align:start position:0% to techniques and patterns that are going<00:15:40.160> to<00:15:40.399> continue<00:15:40.800> to<00:15:41.160> reappear<00:15:42.160> in

00:15:42.470 —> 00:15:42.480 align:start position:0% going to continue to reappear in

00:15:42.480 —> 00:15:44.710 align:start position:0% going to continue to reappear in problems<00:15:43.040> later<00:15:43.279> on<00:15:43.519> in<00:15:43.680> this<00:15:43.839> list,<00:15:44.320> which<00:15:44.560> is

00:15:44.710 —> 00:15:44.720 align:start position:0% problems later on in this list, which is

00:15:44.720 —> 00:15:46.629 align:start position:0% problems later on in this list, which is going<00:15:44.800> to<00:15:44.959> help<00:15:45.360> reaffirm<00:15:45.839> these<00:15:46.160> concepts<00:15:46.480> to

00:15:46.629 —> 00:15:46.639 align:start position:0% going to help reaffirm these concepts to

00:15:46.639 —> 00:15:48.870 align:start position:0% going to help reaffirm these concepts to you.<00:15:47.519> Now,<00:15:47.920> Stephan<00:15:48.240> and<00:15:48.320> I<00:15:48.480> have<00:15:48.639> written

00:15:48.870 —> 00:15:48.880 align:start position:0% you. Now, Stephan and I have written

00:15:48.880 —> 00:15:51.189 align:start position:0% you. Now, Stephan and I have written detailed<00:15:49.279> breakdowns<00:15:50.000> and<00:15:50.320> recorded<00:15:50.800> videos

00:15:51.189 —> 00:15:51.199 align:start position:0% detailed breakdowns and recorded videos

00:15:51.199 —> 00:15:53.670 align:start position:0% detailed breakdowns and recorded videos for<00:15:51.600> each<00:15:51.759> of<00:15:51.920> these<00:15:52.160> 10<00:15:52.399> problems,<00:15:53.279> as<00:15:53.519> well

00:15:53.670 —> 00:15:53.680 align:start position:0% for each of these 10 problems, as well

00:15:53.680 —> 00:15:56.550 align:start position:0% for each of these 10 problems, as well as<00:15:54.000> over<00:15:54.320> 15<00:15:54.639> others.<00:15:55.440> And<00:15:55.680> so,<00:15:56.079> you<00:15:56.320> have

00:15:56.550 —> 00:15:56.560 align:start position:0% as over 15 others. And so, you have

00:15:56.560 —> 00:15:59.069 align:start position:0% as over 15 others. And so, you have something<00:15:56.880> to<00:15:57.199> guide<00:15:57.519> you<00:15:57.759> throughout<00:15:58.160> this

00:15:59.069 —> 00:15:59.079 align:start position:0% something to guide you throughout this

00:15:59.079 —> 00:16:02.470 align:start position:0% something to guide you throughout this journey.<00:16:00.079> If<00:16:00.240> for<00:16:00.639> bitly<00:16:01.279> and<00:16:01.600> Dropbox<00:16:02.160> and

00:16:02.470 —> 00:16:02.480 align:start position:0% journey. If for bitly and Dropbox and

00:16:02.480 —> 00:16:04.710 align:start position:0% journey. If for bitly and Dropbox and maybe<00:16:02.720> even<00:16:03.040> Ticket<00:16:03.440> Master,<00:16:04.160> you<00:16:04.399> can<00:16:04.560> start

00:16:04.710 —> 00:16:04.720 align:start position:0% maybe even Ticket Master, you can start

00:16:04.720 —> 00:16:06.790 align:start position:0% maybe even Ticket Master, you can start by<00:16:04.959> just<00:16:05.120> passively<00:16:05.600> consuming<00:16:06.000> the<00:16:06.240> video.<00:16:06.639> I

00:16:06.790 —> 00:16:06.800 align:start position:0% by just passively consuming the video. I

00:16:06.800 —> 00:16:09.269 align:start position:0% by just passively consuming the video. I think<00:16:06.959> that’s<00:16:07.240> reasonable.<00:16:08.240> But<00:16:08.480> after<00:16:08.880> those

00:16:09.269 —> 00:16:09.279 align:start position:0% think that’s reasonable. But after those

00:16:09.279 —> 00:16:12.150 align:start position:0% think that’s reasonable. But after those three,<00:16:10.160> the<00:16:10.399> key,<00:16:10.560> and<00:16:10.800> this<00:16:10.959> is<00:16:11.120> so<00:16:11.279> so<00:16:11.360> so<00:16:11.519> so

00:16:12.150 —> 00:16:12.160 align:start position:0% three, the key, and this is so so so so

00:16:12.160 —> 00:16:13.590 align:start position:0% three, the key, and this is so so so so important,<00:16:12.480> the<00:16:12.720> key<00:16:12.880> is<00:16:13.040> to<00:16:13.279> try<00:16:13.440> it

00:16:13.590 —> 00:16:13.600 align:start position:0% important, the key is to try it

00:16:13.600 —> 00:16:15.670 align:start position:0% important, the key is to try it yourself.<00:16:14.560> And<00:16:14.800> so,<00:16:14.959> open<00:16:15.199> an<00:16:15.360> online

00:16:15.670 —> 00:16:15.680 align:start position:0% yourself. And so, open an online

00:16:15.680 —> 00:16:18.150 align:start position:0% yourself. And so, open an online whiteboard,<00:16:16.560> start<00:16:16.720> a<00:16:16.959> timer,<00:16:17.600> and<00:16:17.920> work

00:16:18.150 —> 00:16:18.160 align:start position:0% whiteboard, start a timer, and work

00:16:18.160 —> 00:16:20.870 align:start position:0% whiteboard, start a timer, and work through<00:16:18.480> the<00:16:18.800> problem.<00:16:19.759> At<00:16:20.079> the<00:16:20.240> end,<00:16:20.560> you’re

00:16:20.870 —> 00:16:20.880 align:start position:0% through the problem. At the end, you’re

00:16:20.880 —> 00:16:22.470 align:start position:0% through the problem. At the end, you’re going<00:16:20.959> to<00:16:21.040> know<00:16:21.360> exactly<00:16:21.839> where<00:16:22.160> you<00:16:22.320> were

00:16:22.470 —> 00:16:22.480 align:start position:0% going to know exactly where you were

00:16:22.480 —> 00:16:24.710 align:start position:0% going to know exactly where you were confused.<00:16:23.279> These<00:16:23.519> are<00:16:23.680> what<00:16:23.839> we<00:16:24.079> call<00:16:24.320> your

00:16:24.710 —> 00:16:24.720 align:start position:0% confused. These are what we call your

00:16:24.720 —> 00:16:27.030 align:start position:0% confused. These are what we call your known<00:16:25.279> unknowns.<00:16:26.160> And<00:16:26.320> so,<00:16:26.480> you<00:16:26.639> can<00:16:26.720> open<00:16:26.880> up

00:16:27.030 —> 00:16:27.040 align:start position:0% known unknowns. And so, you can open up

00:16:27.040 —> 00:16:28.790 align:start position:0% known unknowns. And so, you can open up Google,<00:16:27.360> you<00:16:27.440> can<00:16:27.519> open<00:16:27.680> up<00:16:27.759> ChatGBT,<00:16:28.480> and<00:16:28.639> you

00:16:28.790 —> 00:16:28.800 align:start position:0% Google, you can open up ChatGBT, and you

00:16:28.800 —> 00:16:30.470 align:start position:0% Google, you can open up ChatGBT, and you can<00:16:28.959> start<00:16:29.120> searching<00:16:29.440> and<00:16:29.759> filling<00:16:30.000> in<00:16:30.240> those

00:16:30.470 —> 00:16:30.480 align:start position:0% can start searching and filling in those

00:16:30.480 —> 00:16:32.030 align:start position:0% can start searching and filling in those blanks<00:16:30.800> that<00:16:30.959> you<00:16:31.120> have<00:16:31.279> in<00:16:31.519> your

00:16:32.030 —> 00:16:32.040 align:start position:0% blanks that you have in your

00:16:32.040 —> 00:16:34.870 align:start position:0% blanks that you have in your understanding.<00:16:33.040> And<00:16:33.279> then,<00:16:33.600> and<00:16:33.920> only<00:16:34.240> then,

00:16:34.870 —> 00:16:34.880 align:start position:0% understanding. And then, and only then,

00:16:34.880 —> 00:16:37.350 align:start position:0% understanding. And then, and only then, should<00:16:35.120> you<00:16:35.360> fire<00:16:35.600> up<00:16:35.839> YouTube<00:16:36.800> uh<00:16:36.880> or<00:16:37.120> open

00:16:37.350 —> 00:16:37.360 align:start position:0% should you fire up YouTube uh or open

00:16:37.360 —> 00:16:39.350 align:start position:0% should you fire up YouTube uh or open the<00:16:37.600> website<00:16:38.079> and<00:16:38.399> watch<00:16:38.560> the<00:16:38.800> video<00:16:38.959> or<00:16:39.199> read

00:16:39.350 —> 00:16:39.360 align:start position:0% the website and watch the video or read

00:16:39.360 —> 00:16:41.189 align:start position:0% the website and watch the video or read the<00:16:39.519> breakdown.<00:16:40.480> And<00:16:40.639> this<00:16:40.800> is<00:16:40.959> going<00:16:41.040> to<00:16:41.120> show

00:16:41.189 —> 00:16:41.199 align:start position:0% the breakdown. And this is going to show

00:16:41.199 —> 00:16:43.590 align:start position:0% the breakdown. And this is going to show you<00:16:41.360> then<00:16:41.600> all<00:16:41.759> of<00:16:41.920> the<00:16:42.160> unknown<00:16:42.639> unknowns<00:16:43.360> or

00:16:43.590 —> 00:16:43.600 align:start position:0% you then all of the unknown unknowns or

00:16:43.600 —> 00:16:45.269 align:start position:0% you then all of the unknown unknowns or the<00:16:43.759> things<00:16:43.920> that<00:16:44.240> you<00:16:44.480> didn’t<00:16:44.639> even<00:16:44.880> know<00:16:45.040> you

00:16:45.269 —> 00:16:45.279 align:start position:0% the things that you didn’t even know you

00:16:45.279 —> 00:16:47.509 align:start position:0% the things that you didn’t even know you were<00:16:45.440> missing.<00:16:46.320> And<00:16:46.480> then<00:16:46.720> rinse<00:16:46.959> and<00:16:47.199> repeat

00:16:47.509 —> 00:16:47.519 align:start position:0% were missing. And then rinse and repeat

00:16:47.519 —> 00:16:49.350 align:start position:0% were missing. And then rinse and repeat the<00:16:47.759> cycle<00:16:48.320> through<00:16:48.560> all<00:16:48.800> 10<00:16:48.959> of<00:16:49.120> these

00:16:49.350 —> 00:16:49.360 align:start position:0% the cycle through all 10 of these

00:16:49.360 —> 00:16:51.509 align:start position:0% the cycle through all 10 of these questions.<00:16:50.160> And<00:16:50.320> I<00:16:50.560> promise<00:16:50.800> you<00:16:51.040> that<00:16:51.199> after

00:16:51.509 —> 00:16:51.519 align:start position:0% questions. And I promise you that after

00:16:51.519 —> 00:16:53.990 align:start position:0% questions. And I promise you that after doing<00:16:51.759> so,<00:16:52.320> you<00:16:52.560> are<00:16:52.720> going<00:16:52.880> to<00:16:53.120> have<00:16:53.440> a<00:16:53.680> really

00:16:53.990 —> 00:16:54.000 align:start position:0% doing so, you are going to have a really

00:16:54.000 —> 00:16:55.509 align:start position:0% doing so, you are going to have a really solid<00:16:54.320> understanding<00:16:54.720> of<00:16:54.880> system<00:16:55.199> design

00:16:55.509 —> 00:16:55.519 align:start position:0% solid understanding of system design

00:16:55.519 —> 00:16:57.110 align:start position:0% solid understanding of system design concepts<00:16:56.000> and<00:16:56.320> feel<00:16:56.560> really<00:16:56.800> comfortable

00:16:57.110 —> 00:16:57.120 align:start position:0% concepts and feel really comfortable

00:16:57.120 —> 00:16:58.470 align:start position:0% concepts and feel really comfortable going<00:16:57.279> into<00:16:57.519> your<00:16:57.680> interviews.<00:16:58.000> Now,<00:16:58.240> if<00:16:58.399> you

00:16:58.470 —> 00:16:58.480 align:start position:0% going into your interviews. Now, if you

00:16:58.480 —> 00:17:01.509 align:start position:0% going into your interviews. Now, if you happen<00:16:58.639> to<00:16:58.800> be<00:16:58.880> a<00:16:59.120> Hello<00:17:00.079> Premium<00:17:00.639> user,<00:17:01.279> then

00:17:01.509 —> 00:17:01.519 align:start position:0% happen to be a Hello Premium user, then

00:17:01.519 —> 00:17:03.430 align:start position:0% happen to be a Hello Premium user, then we’ve<00:17:01.759> made<00:17:01.920> this<00:17:02.079> iterative<00:17:02.560> cycle<00:17:03.199> really

00:17:03.430 —> 00:17:03.440 align:start position:0% we’ve made this iterative cycle really

00:17:03.440 —> 00:17:05.429 align:start position:0% we’ve made this iterative cycle really easy<00:17:03.600> for<00:17:03.759> you<00:17:03.920> and<00:17:04.160> hopefully<00:17:04.480> kind<00:17:04.720> of<00:17:04.799> fun.

00:17:05.429 —> 00:17:05.439 align:start position:0% easy for you and hopefully kind of fun.

00:17:05.439 —> 00:17:07.590 align:start position:0% easy for you and hopefully kind of fun. So<00:17:05.679> for<00:17:05.919> each<00:17:06.079> of<00:17:06.160> these<00:17:06.400> 25<00:17:06.880> problems,<00:17:07.360> you

00:17:07.590 —> 00:17:07.600 align:start position:0% So for each of these 25 problems, you

00:17:07.600 —> 00:17:09.909 align:start position:0% So for each of these 25 problems, you can<00:17:07.760> open<00:17:08.000> up<00:17:08.240> what<00:17:08.480> we<00:17:08.640> call<00:17:08.880> guided<00:17:09.280> practice

00:17:09.909 —> 00:17:09.919 align:start position:0% can open up what we call guided practice

00:17:09.919 —> 00:17:12.150 align:start position:0% can open up what we call guided practice and<00:17:10.160> you<00:17:10.400> can<00:17:10.559> work<00:17:10.799> through<00:17:11.439> problems<00:17:11.919> in

00:17:12.150 —> 00:17:12.160 align:start position:0% and you can work through problems in

00:17:12.160 —> 00:17:14.069 align:start position:0% and you can work through problems in order<00:17:12.559> in<00:17:12.720> the<00:17:12.880> delivery<00:17:13.280> framework<00:17:13.679> that<00:17:13.839> we

00:17:14.069 —> 00:17:14.079 align:start position:0% order in the delivery framework that we

00:17:14.079 —> 00:17:16.710 align:start position:0% order in the delivery framework that we just<00:17:14.240> showed.<00:17:15.120> And<00:17:15.280> then<00:17:15.600> in<00:17:15.919> each,<00:17:16.640> for

00:17:16.710 —> 00:17:16.720 align:start position:0% just showed. And then in each, for

00:17:16.720 —> 00:17:18.630 align:start position:0% just showed. And then in each, for example,<00:17:17.439> answering<00:17:17.839> this<00:17:18.079> deep<00:17:18.319> dive

00:17:18.630 —> 00:17:18.640 align:start position:0% example, answering this deep dive

00:17:18.640 —> 00:17:20.549 align:start position:0% example, answering this deep dive question,<00:17:19.360> we’re<00:17:19.520> going<00:17:19.600> to<00:17:19.760> analyze<00:17:20.240> your

00:17:20.549 —> 00:17:20.559 align:start position:0% question, we’re going to analyze your

00:17:20.559 —> 00:17:22.230 align:start position:0% question, we’re going to analyze your whiteboard<00:17:20.959> as<00:17:21.199> well<00:17:21.280> as<00:17:21.439> whatever<00:17:21.760> your<00:17:21.919> text

00:17:22.230 —> 00:17:22.240 align:start position:0% whiteboard as well as whatever your text

00:17:22.240 —> 00:17:24.549 align:start position:0% whiteboard as well as whatever your text response<00:17:22.640> is<00:17:23.039> and<00:17:23.280> then<00:17:23.600> give<00:17:23.760> you<00:17:24.079> inline

00:17:24.549 —> 00:17:24.559 align:start position:0% response is and then give you inline

00:17:24.559 —> 00:17:27.029 align:start position:0% response is and then give you inline feedback<00:17:25.360> to<00:17:25.679> teach<00:17:25.919> you<00:17:26.160> concepts<00:17:26.559> and<00:17:26.880> help

00:17:27.029 —> 00:17:27.039 align:start position:0% feedback to teach you concepts and help

00:17:27.039 —> 00:17:30.150 align:start position:0% feedback to teach you concepts and help you<00:17:27.280> improve<00:17:28.079> as<00:17:28.400> you<00:17:28.559> go.<00:17:29.200> So<00:17:29.600> try<00:17:29.840> guided

00:17:30.150 —> 00:17:30.160 align:start position:0% you improve as you go. So try guided

00:17:30.160 —> 00:17:31.830 align:start position:0% you improve as you go. So try guided practice.<00:17:30.559> Ticket<00:17:30.880> Master<00:17:31.120> is<00:17:31.360> actually<00:17:31.600> free

00:17:31.830 —> 00:17:31.840 align:start position:0% practice. Ticket Master is actually free

00:17:31.840 —> 00:17:34.150 align:start position:0% practice. Ticket Master is actually free to<00:17:32.080> everybody,<00:17:32.640> but<00:17:32.880> for<00:17:33.039> premium<00:17:33.440> users,

00:17:34.150 —> 00:17:34.160 align:start position:0% to everybody, but for premium users,

00:17:34.160 —> 00:17:36.549 align:start position:0% to everybody, but for premium users, this<00:17:34.400> is<00:17:34.559> probably<00:17:34.880> even<00:17:35.120> a<00:17:35.360> better<00:17:35.600> way<00:17:36.240> to

00:17:36.549 —> 00:17:36.559 align:start position:0% this is probably even a better way to

00:17:36.559 —> 00:17:38.710 align:start position:0% this is probably even a better way to handle<00:17:36.880> that<00:17:37.120> practice<00:17:37.600> iteration<00:17:38.400> than

00:17:38.710 —> 00:17:38.720 align:start position:0% handle that practice iteration than

00:17:38.720 —> 00:17:41.070 align:start position:0% handle that practice iteration than opening<00:17:38.960> up<00:17:39.120> just<00:17:39.280> a<00:17:39.520> raw<00:17:39.760> whiteboard

00:17:41.070 —> 00:17:41.080 align:start position:0% opening up just a raw whiteboard

00:17:41.080 —> 00:17:43.350 align:start position:0% opening up just a raw whiteboard yourself.<00:17:42.080> So,<00:17:42.320> there<00:17:42.480> you<00:17:42.559> have<00:17:42.640> it,<00:17:42.880> folks.

00:17:43.350 —> 00:17:43.360 align:start position:0% yourself. So, there you have it, folks.

00:17:43.360 —> 00:17:44.789 align:start position:0% yourself. So, there you have it, folks. That<00:17:43.520> is<00:17:43.679> how<00:17:43.840> I<00:17:44.000> would<00:17:44.080> prepare<00:17:44.320> for<00:17:44.480> a<00:17:44.559> system

00:17:44.789 —> 00:17:44.799 align:start position:0% That is how I would prepare for a system

00:17:44.799 —> 00:17:46.630 align:start position:0% That is how I would prepare for a system design<00:17:45.120> interview<00:17:45.440> today.<00:17:45.919> You<00:17:46.080> have<00:17:46.240> all<00:17:46.400> the

00:17:46.630 —> 00:17:46.640 align:start position:0% design interview today. You have all the

00:17:46.640 —> 00:17:48.789 align:start position:0% design interview today. You have all the links<00:17:46.960> below.<00:17:47.679> Go<00:17:47.919> through<00:17:48.160> them,<00:17:48.480> especially

00:17:48.789 —> 00:17:48.799 align:start position:0% links below. Go through them, especially

00:17:48.799 —> 00:17:50.310 align:start position:0% links below. Go through them, especially in<00:17:48.960> the<00:17:49.120> concepts<00:17:49.440> that<00:17:49.600> are<00:17:49.760> less<00:17:49.919> clear<00:17:50.160> to

00:17:50.310 —> 00:17:50.320 align:start position:0% in the concepts that are less clear to

00:17:50.320 —> 00:17:51.430 align:start position:0% in the concepts that are less clear to you,<00:17:50.559> and<00:17:50.799> make<00:17:50.960> sure<00:17:51.039> that<00:17:51.200> you’re

00:17:51.430 —> 00:17:51.440 align:start position:0% you, and make sure that you’re

00:17:51.440 —> 00:17:53.270 align:start position:0% you, and make sure that you’re practicing.<00:17:52.240> The<00:17:52.480> only<00:17:52.640> last<00:17:52.880> thing<00:17:52.960> that<00:17:53.120> I

00:17:53.270 —> 00:17:53.280 align:start position:0% practicing. The only last thing that I

00:17:53.280 —> 00:17:54.710 align:start position:0% practicing. The only last thing that I would<00:17:53.440> add,<00:17:53.679> of<00:17:53.840> course,<00:17:54.000> is<00:17:54.160> that<00:17:54.240> a<00:17:54.480> system

00:17:54.710 —> 00:17:54.720 align:start position:0% would add, of course, is that a system

00:17:54.720 —> 00:17:55.909 align:start position:0% would add, of course, is that a system design<00:17:54.960> interview<00:17:55.280> is<00:17:55.520> also<00:17:55.679> about

00:17:55.909 —> 00:17:55.919 align:start position:0% design interview is also about

00:17:55.919 —> 00:17:58.230 align:start position:0% design interview is also about presentation.<00:17:56.960> So<00:17:57.280> make<00:17:57.520> sure<00:17:57.600> that<00:17:57.840> you<00:17:58.000> are

00:17:58.230 —> 00:17:58.240 align:start position:0% presentation. So make sure that you are

00:17:58.240 —> 00:18:00.470 align:start position:0% presentation. So make sure that you are actually<00:17:58.640> audibly<00:17:59.200> practicing<00:17:59.760> ideally<00:18:00.240> with

00:18:00.470 —> 00:18:00.480 align:start position:0% actually audibly practicing ideally with

00:18:00.480 —> 00:18:02.390 align:start position:0% actually audibly practicing ideally with somebody<00:18:00.720> else.<00:18:01.280> This<00:18:01.520> could<00:18:01.679> be<00:18:01.840> friends,

00:18:02.390 —> 00:18:02.400 align:start position:0% somebody else. This could be friends,

00:18:02.400 —> 00:18:04.549 align:start position:0% somebody else. This could be friends, colleagues,<00:18:03.000> co-workers,<00:18:04.000> peer<00:18:04.240> mock

00:18:04.549 —> 00:18:04.559 align:start position:0% colleagues, co-workers, peer mock

00:18:04.559 —> 00:18:06.950 align:start position:0% colleagues, co-workers, peer mock interviews.<00:18:05.440> We<00:18:05.600> at<00:18:05.760> Hello<00:18:06.080> Interview<00:18:06.559> also

00:18:06.950 —> 00:18:06.960 align:start position:0% interviews. We at Hello Interview also

00:18:06.960 —> 00:18:08.789 align:start position:0% interviews. We at Hello Interview also have<00:18:07.280> professional<00:18:07.760> mock<00:18:08.080> interviews<00:18:08.559> where

00:18:08.789 —> 00:18:08.799 align:start position:0% have professional mock interviews where

00:18:08.799 —> 00:18:10.950 align:start position:0% have professional mock interviews where you<00:18:08.960> can<00:18:09.120> interview<00:18:09.840> with<00:18:10.160> an<00:18:10.480> interviewer

00:18:10.950 —> 00:18:10.960 align:start position:0% you can interview with an interviewer

00:18:10.960 —> 00:18:12.630 align:start position:0% you can interview with an interviewer from<00:18:11.200> your<00:18:11.360> target<00:18:11.679> company.<00:18:12.320> So<00:18:12.559> for

00:18:12.630 —> 00:18:12.640 align:start position:0% from your target company. So for

00:18:12.640 —> 00:18:14.630 align:start position:0% from your target company. So for example,<00:18:13.280> an<00:18:13.600> interviewer<00:18:14.080> who’s<00:18:14.320> actively

00:18:14.630 —> 00:18:14.640 align:start position:0% example, an interviewer who’s actively

00:18:14.640 —> 00:18:16.789 align:start position:0% example, an interviewer who’s actively an<00:18:14.799> interviewer<00:18:15.120> at<00:18:15.280> Meta.<00:18:16.000> Um,<00:18:16.480> consider

00:18:16.789 —> 00:18:16.799 align:start position:0% an interviewer at Meta. Um, consider

00:18:16.799 —> 00:18:19.430 align:start position:0% an interviewer at Meta. Um, consider that.<00:18:17.440> But<00:18:17.600> I<00:18:17.760> hope<00:18:18.000> this<00:18:18.160> was<00:18:18.400> useful<00:18:18.640> to<00:18:18.880> you.

00:18:19.430 —> 00:18:19.440 align:start position:0% that. But I hope this was useful to you.

00:18:19.440 —> 00:18:20.789 align:start position:0% that. But I hope this was useful to you. Feel<00:18:19.600> free<00:18:19.760> to<00:18:19.919> leave<00:18:20.080> any<00:18:20.320> comments,

00:18:20.789 —> 00:18:20.799 align:start position:0% Feel free to leave any comments,

00:18:20.799 —> 00:18:22.470 align:start position:0% Feel free to leave any comments, questions.<00:18:21.120> I’ll<00:18:21.360> try<00:18:21.440> to<00:18:21.600> get<00:18:21.679> to<00:18:21.840> those.<00:18:22.320> And

00:18:22.470 —> 00:18:22.480 align:start position:0% questions. I’ll try to get to those. And

00:18:22.480 —> 00:18:24.150 align:start position:0% questions. I’ll try to get to those. And I’ll<00:18:22.640> see<00:18:22.799> you<00:18:22.880> guys<00:18:23.039> again<00:18:23.280> soon.<00:18:23.840> Good<00:18:24.000> luck

00:18:24.150 —> 00:18:24.160 align:start position:0% I’ll see you guys again soon. Good luck

00:18:24.160 —> 00:18:27.919 align:start position:0% I’ll see you guys again soon. Good luck with<00:18:24.320> your<00:18:24.480> interviews.<00:18:25.120> Take<00:18:25.360> care.