WEBVTT
Kind: captions
Language: en

00:00:12.340 --> 00:00:15.700 align:start position:0%
 
I'm<00:00:13.340><c> Shiva</c><00:00:13.790><c> Chaitanya</c><00:00:14.270><c> I</c><00:00:14.450><c> work</c><00:00:14.810><c> a</c><00:00:14.840><c> Netflix</c><00:00:15.470><c> for</c>

00:00:15.700 --> 00:00:15.710 align:start position:0%
I'm Shiva Chaitanya I work a Netflix for
 

00:00:15.710 --> 00:00:17.290 align:start position:0%
I'm Shiva Chaitanya I work a Netflix for
depersonalization<00:00:16.430><c> infrastructure</c><00:00:17.119><c> teen</c>

00:00:17.290 --> 00:00:17.300 align:start position:0%
depersonalization infrastructure teen
 

00:00:17.300 --> 00:00:20.080 align:start position:0%
depersonalization infrastructure teen
I'm<00:00:17.869><c> a</c><00:00:18.080><c> senior</c><00:00:18.380><c> software</c><00:00:18.560><c> engineer</c><00:00:18.850><c> and</c><00:00:19.850><c> we</c>

00:00:20.080 --> 00:00:20.090 align:start position:0%
I'm a senior software engineer and we
 

00:00:20.090 --> 00:00:22.230 align:start position:0%
I'm a senior software engineer and we
help<00:00:20.270><c> our</c><00:00:20.570><c> machine</c><00:00:20.900><c> learning</c><00:00:20.930><c> teams</c>

00:00:22.230 --> 00:00:22.240 align:start position:0%
help our machine learning teams
 

00:00:22.240 --> 00:00:28.000 align:start position:0%
help our machine learning teams
accelerate<00:00:23.240><c> a</c><00:00:23.720><c> BTS</c>

00:00:28.000 --> 00:00:28.010 align:start position:0%
 
 

00:00:28.010 --> 00:00:31.090 align:start position:0%
 
[Music]

00:00:31.090 --> 00:00:31.100 align:start position:0%
[Music]
 

00:00:31.100 --> 00:00:33.330 align:start position:0%
[Music]
one<00:00:31.609><c> of</c><00:00:31.730><c> the</c><00:00:31.910><c> major</c><00:00:32.090><c> challenges</c><00:00:32.329><c> for</c><00:00:32.840><c> us</c><00:00:33.020><c> is</c>

00:00:33.330 --> 00:00:33.340 align:start position:0%
one of the major challenges for us is
 

00:00:33.340 --> 00:00:35.590 align:start position:0%
one of the major challenges for us is
collecting<00:00:34.340><c> a</c><00:00:34.430><c> lot</c><00:00:34.579><c> of</c><00:00:34.609><c> data</c><00:00:34.730><c> for</c><00:00:35.300><c> machine</c>

00:00:35.590 --> 00:00:35.600 align:start position:0%
collecting a lot of data for machine
 

00:00:35.600 --> 00:00:37.869 align:start position:0%
collecting a lot of data for machine
learning<00:00:35.929><c> we</c><00:00:36.920><c> have</c><00:00:37.159><c> more</c><00:00:37.460><c> than</c><00:00:37.609><c> hundred</c>

00:00:37.869 --> 00:00:37.879 align:start position:0%
learning we have more than hundred
 

00:00:37.879 --> 00:00:41.559 align:start position:0%
learning we have more than hundred
million<00:00:38.179><c> members</c><00:00:38.929><c> using</c><00:00:39.350><c> Netflix</c><00:00:39.760><c> and</c><00:00:40.760><c> there</c>

00:00:41.559 --> 00:00:41.569 align:start position:0%
million members using Netflix and there
 

00:00:41.569 --> 00:00:43.719 align:start position:0%
million members using Netflix and there
is<00:00:41.690><c> a</c><00:00:41.719><c> lot</c><00:00:41.989><c> of</c><00:00:42.139><c> user</c><00:00:42.620><c> behavior</c><00:00:42.889><c> that</c><00:00:43.370><c> we</c><00:00:43.550><c> want</c>

00:00:43.719 --> 00:00:43.729 align:start position:0%
is a lot of user behavior that we want
 

00:00:43.729 --> 00:00:46.149 align:start position:0%
is a lot of user behavior that we want
to<00:00:43.819><c> capture</c><00:00:44.030><c> because</c><00:00:44.780><c> really</c><00:00:45.409><c> the</c><00:00:45.769><c> more</c><00:00:45.979><c> the</c>

00:00:46.149 --> 00:00:46.159 align:start position:0%
to capture because really the more the
 

00:00:46.159 --> 00:00:47.619 align:start position:0%
to capture because really the more the
data<00:00:46.339><c> that</c><00:00:46.609><c> we</c><00:00:46.760><c> can</c><00:00:46.909><c> feed</c><00:00:47.120><c> to</c><00:00:47.269><c> our</c><00:00:47.300><c> machine</c>

00:00:47.619 --> 00:00:47.629 align:start position:0%
data that we can feed to our machine
 

00:00:47.629 --> 00:00:48.819 align:start position:0%
data that we can feed to our machine
learning<00:00:47.659><c> models</c><00:00:48.199><c> we</c><00:00:48.350><c> can</c><00:00:48.379><c> learn</c><00:00:48.649><c> better</c>

00:00:48.819 --> 00:00:48.829 align:start position:0%
learning models we can learn better
 

00:00:48.829 --> 00:00:51.399 align:start position:0%
learning models we can learn better
about<00:00:49.159><c> our</c><00:00:49.309><c> users</c><00:00:49.600><c> and</c><00:00:50.600><c> organizing</c><00:00:51.139><c> all</c><00:00:51.260><c> the</c>

00:00:51.399 --> 00:00:51.409 align:start position:0%
about our users and organizing all the
 

00:00:51.409 --> 00:00:53.229 align:start position:0%
about our users and organizing all the
data<00:00:51.620><c> in</c><00:00:51.829><c> a</c><00:00:51.920><c> standard</c><00:00:52.309><c> format</c><00:00:52.729><c> and</c><00:00:52.760><c> feeding</c>

00:00:53.229 --> 00:00:53.239 align:start position:0%
data in a standard format and feeding
 

00:00:53.239 --> 00:00:55.360 align:start position:0%
data in a standard format and feeding
into<00:00:53.600><c> machine</c><00:00:53.899><c> learning</c><00:00:54.129><c> pipelines</c><00:00:55.129><c> which</c>

00:00:55.360 --> 00:00:55.370 align:start position:0%
into machine learning pipelines which
 

00:00:55.370 --> 00:00:56.949 align:start position:0%
into machine learning pipelines which
are<00:00:55.519><c> both</c><00:00:55.699><c> open</c><00:00:55.909><c> source</c><00:00:56.059><c> and</c><00:00:56.359><c> proprietary</c><00:00:56.510><c> is</c>

00:00:56.949 --> 00:00:56.959 align:start position:0%
are both open source and proprietary is
 

00:00:56.959 --> 00:01:06.690 align:start position:0%
are both open source and proprietary is
a<00:00:57.260><c> big</c><00:00:57.409><c> challenge</c><00:00:57.709><c> for</c><00:00:57.739><c> us</c><00:01:04.960><c> with</c><00:01:05.960><c> scale</c>

00:01:06.690 --> 00:01:06.700 align:start position:0%
a big challenge for us with scale
 

00:01:06.700 --> 00:01:09.040 align:start position:0%
a big challenge for us with scale
especially<00:01:07.700><c> that</c><00:01:07.970><c> pipelines</c><00:01:08.750><c> that</c><00:01:08.990><c> are</c>

00:01:09.040 --> 00:01:09.050 align:start position:0%
especially that pipelines that are
 

00:01:09.050 --> 00:01:09.640 align:start position:0%
especially that pipelines that are
real-time

00:01:09.640 --> 00:01:09.650 align:start position:0%
real-time
 

00:01:09.650 --> 00:01:12.430 align:start position:0%
real-time
that<00:01:09.980><c> means</c><00:01:10.280><c> not</c><00:01:10.610><c> that</c><00:01:10.820><c> need</c><00:01:11.000><c> to</c><00:01:11.150><c> finish</c><00:01:11.440><c> with</c>

00:01:12.430 --> 00:01:12.440 align:start position:0%
that means not that need to finish with
 

00:01:12.440 --> 00:01:15.610 align:start position:0%
that means not that need to finish with
a<00:01:12.470><c> pretty</c><00:01:12.710><c> strict</c><00:01:13.070><c> SLA</c><00:01:13.790><c> let's</c><00:01:14.180><c> say</c><00:01:14.440><c> we</c><00:01:15.440><c> have</c><00:01:15.590><c> a</c>

00:01:15.610 --> 00:01:15.620 align:start position:0%
a pretty strict SLA let's say we have a
 

00:01:15.620 --> 00:01:18.880 align:start position:0%
a pretty strict SLA let's say we have a
streaming<00:01:15.980><c> job</c><00:01:16.340><c> that</c><00:01:17.090><c> needs</c><00:01:17.300><c> to</c><00:01:17.710><c> work</c><00:01:18.710><c> on</c>

00:01:18.880 --> 00:01:18.890 align:start position:0%
streaming job that needs to work on
 

00:01:18.890 --> 00:01:21.190 align:start position:0%
streaming job that needs to work on
micro<00:01:19.370><c> batches</c><00:01:19.700><c> of</c><00:01:19.820><c> data</c><00:01:20.060><c> and</c><00:01:20.360><c> need</c><00:01:20.780><c> to</c><00:01:20.960><c> finish</c>

00:01:21.190 --> 00:01:21.200 align:start position:0%
micro batches of data and need to finish
 

00:01:21.200 --> 00:01:24.640 align:start position:0%
micro batches of data and need to finish
that<00:01:22.040><c> within</c><00:01:22.340><c> 10</c><00:01:22.640><c> minutes</c><00:01:23.410><c> one</c><00:01:24.410><c> of</c><00:01:24.440><c> the</c>

00:01:24.640 --> 00:01:24.650 align:start position:0%
that within 10 minutes one of the
 

00:01:24.650 --> 00:01:25.990 align:start position:0%
that within 10 minutes one of the
challenges<00:01:25.070><c> that</c><00:01:25.100><c> we</c><00:01:25.310><c> keep</c><00:01:25.460><c> facing</c><00:01:25.700><c> is</c>

00:01:25.990 --> 00:01:26.000 align:start position:0%
challenges that we keep facing is
 

00:01:26.000 --> 00:01:28.060 align:start position:0%
challenges that we keep facing is
because<00:01:26.360><c> our</c><00:01:26.570><c> jobs</c><00:01:27.110><c> depend</c><00:01:27.590><c> on</c><00:01:27.680><c> so</c><00:01:27.920><c> many</c>

00:01:28.060 --> 00:01:28.070 align:start position:0%
because our jobs depend on so many
 

00:01:28.070 --> 00:01:30.190 align:start position:0%
because our jobs depend on so many
external<00:01:28.670><c> services</c><00:01:29.240><c> even</c><00:01:29.600><c> if</c><00:01:29.720><c> one</c><00:01:29.870><c> of</c><00:01:29.900><c> them</c>

00:01:30.190 --> 00:01:30.200 align:start position:0%
external services even if one of them
 

00:01:30.200 --> 00:01:33.100 align:start position:0%
external services even if one of them
goes<00:01:30.770><c> down</c><00:01:30.950><c> that</c><00:01:31.580><c> tends</c><00:01:31.820><c> to</c><00:01:31.940><c> back</c><00:01:32.270><c> up</c><00:01:32.540><c> our</c>

00:01:33.100 --> 00:01:33.110 align:start position:0%
goes down that tends to back up our
 

00:01:33.110 --> 00:01:35.050 align:start position:0%
goes down that tends to back up our
processing<00:01:33.800><c> and</c><00:01:34.070><c> it</c><00:01:34.190><c> takes</c><00:01:34.430><c> a</c><00:01:34.610><c> while</c><00:01:34.790><c> for</c><00:01:34.820><c> us</c>

00:01:35.050 --> 00:01:35.060 align:start position:0%
processing and it takes a while for us
 

00:01:35.060 --> 00:01:37.060 align:start position:0%
processing and it takes a while for us
to<00:01:35.180><c> debug</c><00:01:35.630><c> what's</c><00:01:35.840><c> going</c><00:01:36.140><c> on</c><00:01:36.320><c> and</c><00:01:36.530><c> because</c>

00:01:37.060 --> 00:01:37.070 align:start position:0%
to debug what's going on and because
 

00:01:37.070 --> 00:01:38.410 align:start position:0%
to debug what's going on and because
it's<00:01:37.250><c> real</c><00:01:37.430><c> time</c><00:01:37.640><c> we</c><00:01:37.790><c> don't</c><00:01:37.910><c> have</c><00:01:38.030><c> the</c><00:01:38.240><c> luxury</c>

00:01:38.410 --> 00:01:38.420 align:start position:0%
it's real time we don't have the luxury
 

00:01:38.420 --> 00:01:42.220 align:start position:0%
it's real time we don't have the luxury
to<00:01:38.690><c> rerun</c><00:01:39.170><c> it</c><00:01:39.380><c> or</c><00:01:39.560><c> backfill</c><00:01:40.460><c> the</c><00:01:40.640><c> data</c><00:01:41.230><c> for</c>

00:01:42.220 --> 00:01:42.230 align:start position:0%
to rerun it or backfill the data for
 

00:01:42.230 --> 00:01:44.170 align:start position:0%
to rerun it or backfill the data for
ones<00:01:42.740><c> that</c><00:01:43.070><c> we</c><00:01:43.220><c> didn't</c><00:01:43.400><c> process</c><00:01:43.580><c> earlier</c><00:01:44.030><c> and</c>

00:01:44.170 --> 00:01:44.180 align:start position:0%
ones that we didn't process earlier and
 

00:01:44.180 --> 00:01:46.870 align:start position:0%
ones that we didn't process earlier and
we<00:01:44.300><c> need</c><00:01:44.420><c> to</c><00:01:44.540><c> keep</c><00:01:44.720><c> moving</c><00:01:44.930><c> on</c><00:01:45.340><c> so</c><00:01:46.340><c> informing</c>

00:01:46.870 --> 00:01:46.880 align:start position:0%
we need to keep moving on so informing
 

00:01:46.880 --> 00:01:49.300 align:start position:0%
we need to keep moving on so informing
the<00:01:46.970><c> right</c><00:01:47.150><c> teams</c><00:01:47.450><c> debugging</c><00:01:48.080><c> it</c><00:01:48.260><c> in</c><00:01:48.920><c> a</c><00:01:49.070><c> fast</c>

00:01:49.300 --> 00:01:49.310 align:start position:0%
the right teams debugging it in a fast
 

00:01:49.310 --> 00:01:53.649 align:start position:0%
the right teams debugging it in a fast
manner<00:01:49.840><c> as</c><00:01:50.840><c> possible</c><00:01:51.680><c> as</c><00:01:51.890><c> far</c><00:01:52.340><c> as</c><00:01:52.580><c> it's</c><00:01:53.480><c> hard</c>

00:01:53.649 --> 00:01:53.659 align:start position:0%
manner as possible as far as it's hard
 

00:01:53.659 --> 00:01:55.660 align:start position:0%
manner as possible as far as it's hard
for<00:01:53.870><c> us</c><00:01:53.990><c> and</c><00:01:54.170><c> especially</c><00:01:54.770><c> when</c><00:01:55.159><c> the</c><00:01:55.250><c> scale</c><00:01:55.520><c> is</c>

00:01:55.660 --> 00:01:55.670 align:start position:0%
for us and especially when the scale is
 

00:01:55.670 --> 00:02:02.710 align:start position:0%
for us and especially when the scale is
large<00:01:56.080><c> the</c><00:01:57.080><c> problems</c><00:01:57.740><c> get</c><00:01:57.890><c> compounded</c>

00:02:02.710 --> 00:02:02.720 align:start position:0%
 
 

00:02:02.720 --> 00:02:05.090 align:start position:0%
 
[Music]

00:02:05.090 --> 00:02:05.100 align:start position:0%
[Music]
 

00:02:05.100 --> 00:02:08.490 align:start position:0%
[Music]
as<00:02:06.100><c> we</c><00:02:06.340><c> keep</c><00:02:06.700><c> growing</c><00:02:06.880><c> as</c><00:02:07.180><c> a</c><00:02:07.210><c> company</c><00:02:07.420><c> we</c><00:02:08.320><c> just</c>

00:02:08.490 --> 00:02:08.500 align:start position:0%
as we keep growing as a company we just
 

00:02:08.500 --> 00:02:10.770 align:start position:0%
as we keep growing as a company we just
need<00:02:08.650><c> to</c><00:02:08.740><c> make</c><00:02:08.860><c> sure</c><00:02:08.920><c> that</c><00:02:09.479><c> things</c><00:02:10.479><c> that</c><00:02:10.570><c> we</c>

00:02:10.770 --> 00:02:10.780 align:start position:0%
need to make sure that things that we
 

00:02:10.780 --> 00:02:12.240 align:start position:0%
need to make sure that things that we
take<00:02:10.930><c> for</c><00:02:11.110><c> granted</c><00:02:11.170><c> at</c><00:02:11.620><c> a</c><00:02:11.650><c> smaller</c><00:02:11.980><c> scale</c>

00:02:12.240 --> 00:02:12.250 align:start position:0%
take for granted at a smaller scale
 

00:02:12.250 --> 00:02:15.900 align:start position:0%
take for granted at a smaller scale
continue<00:02:13.030><c> to</c><00:02:13.180><c> work</c><00:02:13.360><c> and</c><00:02:14.350><c> as</c><00:02:14.650><c> we</c><00:02:14.890><c> on</c><00:02:15.340><c> board</c><00:02:15.790><c> a</c>

00:02:15.900 --> 00:02:15.910 align:start position:0%
continue to work and as we on board a
 

00:02:15.910 --> 00:02:17.430 align:start position:0%
continue to work and as we on board a
lot<00:02:16.090><c> more</c><00:02:16.330><c> tests</c><00:02:16.630><c> as</c><00:02:16.750><c> we</c><00:02:16.900><c> collect</c><00:02:17.200><c> more</c><00:02:17.260><c> data</c>

00:02:17.430 --> 00:02:17.440 align:start position:0%
lot more tests as we collect more data
 

00:02:17.440 --> 00:02:20.640 align:start position:0%
lot more tests as we collect more data
about<00:02:17.890><c> our</c><00:02:18.070><c> users</c><00:02:18.250><c> as</c><00:02:18.880><c> the</c><00:02:19.090><c> demographics</c><00:02:19.690><c> keep</c>

00:02:20.640 --> 00:02:20.650 align:start position:0%
about our users as the demographics keep
 

00:02:20.650 --> 00:02:23.040 align:start position:0%
about our users as the demographics keep
changing<00:02:21.070><c> we</c><00:02:21.250><c> expand</c><00:02:21.640><c> to</c><00:02:21.880><c> newer</c><00:02:22.480><c> countries</c>

00:02:23.040 --> 00:02:23.050 align:start position:0%
changing we expand to newer countries
 

00:02:23.050 --> 00:02:24.600 align:start position:0%
changing we expand to newer countries
where<00:02:23.320><c> the</c><00:02:23.440><c> infrastructure</c><00:02:23.860><c> may</c><00:02:24.070><c> not</c><00:02:24.250><c> be</c><00:02:24.490><c> the</c>

00:02:24.600 --> 00:02:24.610 align:start position:0%
where the infrastructure may not be the
 

00:02:24.610 --> 00:02:27.690 align:start position:0%
where the infrastructure may not be the
same<00:02:25.200><c> so</c><00:02:26.200><c> ensuring</c><00:02:26.710><c> the</c><00:02:26.800><c> status</c><00:02:27.190><c> quo</c><00:02:27.370><c> for</c><00:02:27.670><c> a</c>

00:02:27.690 --> 00:02:27.700 align:start position:0%
same so ensuring the status quo for a
 

00:02:27.700 --> 00:02:30.720 align:start position:0%
same so ensuring the status quo for a
much<00:02:27.910><c> larger</c><00:02:28.300><c> scale</c><00:02:28.510><c> in</c><00:02:29.310><c> low</c><00:02:30.310><c> bandwidth</c>

00:02:30.720 --> 00:02:30.730 align:start position:0%
much larger scale in low bandwidth
 

00:02:30.730 --> 00:02:33.120 align:start position:0%
much larger scale in low bandwidth
countries<00:02:31.210><c> making</c><00:02:32.110><c> sure</c><00:02:32.350><c> we</c><00:02:32.530><c> collect</c><00:02:32.830><c> all</c><00:02:32.950><c> the</c>

00:02:33.120 --> 00:02:33.130 align:start position:0%
countries making sure we collect all the
 

00:02:33.130 --> 00:02:35.190 align:start position:0%
countries making sure we collect all the
data<00:02:33.310><c> in</c><00:02:33.490><c> a</c><00:02:33.580><c> timely</c><00:02:33.700><c> matter</c><00:02:34.120><c> all</c><00:02:34.780><c> that</c><00:02:34.840><c> is</c>

00:02:35.190 --> 00:02:35.200 align:start position:0%
data in a timely matter all that is
 

00:02:35.200 --> 00:02:36.960 align:start position:0%
data in a timely matter all that is
going<00:02:35.440><c> to</c><00:02:35.530><c> be</c><00:02:35.620><c> a</c><00:02:35.680><c> significant</c><00:02:36.640><c> challenge</c><00:02:36.940><c> for</c>

00:02:36.960 --> 00:02:36.970 align:start position:0%
going to be a significant challenge for
 

00:02:36.970 --> 00:02:46.350 align:start position:0%
going to be a significant challenge for
us<00:02:44.220><c> machine</c><00:02:45.220><c> learning</c><00:02:45.490><c> lends</c><00:02:46.060><c> itself</c>

00:02:46.350 --> 00:02:46.360 align:start position:0%
us machine learning lends itself
 

00:02:46.360 --> 00:02:47.700 align:start position:0%
us machine learning lends itself
naturally<00:02:46.510><c> to</c><00:02:46.960><c> functional</c><00:02:47.350><c> programming</c>

00:02:47.700 --> 00:02:47.710 align:start position:0%
naturally to functional programming
 

00:02:47.710 --> 00:02:49.620 align:start position:0%
naturally to functional programming
because<00:02:48.100><c> you've</c><00:02:48.310><c> taken</c><00:02:48.460><c> a</c><00:02:48.700><c> lot</c><00:02:48.820><c> of</c><00:02:48.880><c> data</c><00:02:49.180><c> then</c>

00:02:49.620 --> 00:02:49.630 align:start position:0%
because you've taken a lot of data then
 

00:02:49.630 --> 00:02:52.590 align:start position:0%
because you've taken a lot of data then
you<00:02:50.170><c> apply</c><00:02:50.470><c> vector</c><00:02:51.430><c> of</c><00:02:51.580><c> operations</c><00:02:52.270><c> and</c><00:02:52.450><c> all</c>

00:02:52.590 --> 00:02:52.600 align:start position:0%
you apply vector of operations and all
 

00:02:52.600 --> 00:02:57.540 align:start position:0%
you apply vector of operations and all
of<00:02:52.720><c> on</c><00:02:53.560><c> that</c><00:02:53.860><c> data</c><00:02:54.130><c> and</c><00:02:55.120><c> you</c><00:02:55.740><c> typically</c><00:02:56.740><c> if</c><00:02:57.460><c> you</c>

00:02:57.540 --> 00:02:57.550 align:start position:0%
of on that data and you typically if you
 

00:02:57.550 --> 00:02:59.880 align:start position:0%
of on that data and you typically if you
look<00:02:57.700><c> at</c><00:02:57.820><c> tens</c><00:02:58.000><c> of</c><00:02:58.150><c> flow</c><00:02:58.300><c> frameworks</c><00:02:58.810><c> or</c><00:02:59.080><c> spark</c>

00:02:59.880 --> 00:02:59.890 align:start position:0%
look at tens of flow frameworks or spark
 

00:02:59.890 --> 00:03:01.650 align:start position:0%
look at tens of flow frameworks or spark
machine<00:03:00.400><c> learning</c><00:03:00.730><c> lab</c><00:03:00.910><c> library</c><00:03:01.300><c> which</c><00:03:01.510><c> is</c>

00:03:01.650 --> 00:03:01.660 align:start position:0%
machine learning lab library which is
 

00:03:01.660 --> 00:03:03.750 align:start position:0%
machine learning lab library which is
written<00:03:02.050><c> in</c><00:03:02.290><c> Scala</c><00:03:02.530><c> they</c><00:03:03.100><c> taken</c><00:03:03.400><c> a</c><00:03:03.490><c> bunch</c><00:03:03.670><c> of</c>

00:03:03.750 --> 00:03:03.760 align:start position:0%
written in Scala they taken a bunch of
 

00:03:03.760 --> 00:03:07.020 align:start position:0%
written in Scala they taken a bunch of
data<00:03:03.989><c> apply</c><00:03:04.989><c> a</c><00:03:05.020><c> lot</c><00:03:05.230><c> of</c><00:03:05.350><c> transforms</c><00:03:06.030><c> using</c>

00:03:07.020 --> 00:03:07.030 align:start position:0%
data apply a lot of transforms using
 

00:03:07.030 --> 00:03:08.370 align:start position:0%
data apply a lot of transforms using
vector<00:03:07.300><c> algebra</c><00:03:07.480><c> and</c><00:03:07.989><c> functional</c>

00:03:08.370 --> 00:03:08.380 align:start position:0%
vector algebra and functional
 

00:03:08.380 --> 00:03:10.260 align:start position:0%
vector algebra and functional
programming<00:03:08.770><c> let's</c><00:03:09.459><c> you</c><00:03:09.580><c> think</c><00:03:09.820><c> about</c><00:03:10.060><c> that</c>

00:03:10.260 --> 00:03:10.270 align:start position:0%
programming let's you think about that
 

00:03:10.270 --> 00:03:13.050 align:start position:0%
programming let's you think about that
more<00:03:10.510><c> naturally</c><00:03:11.050><c> than</c><00:03:11.080><c> say</c><00:03:12.060><c> purely</c>

00:03:13.050 --> 00:03:13.060 align:start position:0%
more naturally than say purely
 

00:03:13.060 --> 00:03:15.720 align:start position:0%
more naturally than say purely
imperative<00:03:13.450><c> way</c><00:03:14.080><c> of</c><00:03:14.260><c> writing</c><00:03:15.100><c> these</c><00:03:15.310><c> programs</c>

00:03:15.720 --> 00:03:15.730 align:start position:0%
imperative way of writing these programs
 

00:03:15.730 --> 00:03:18.240 align:start position:0%
imperative way of writing these programs
so<00:03:15.940><c> we</c><00:03:16.450><c> use</c><00:03:16.600><c> scholar</c><00:03:16.959><c> quite</c><00:03:17.470><c> a</c><00:03:17.500><c> bit</c><00:03:17.680><c> in</c><00:03:18.010><c> Netflix</c>

00:03:18.240 --> 00:03:18.250 align:start position:0%
so we use scholar quite a bit in Netflix
 

00:03:18.250 --> 00:03:22.710 align:start position:0%
so we use scholar quite a bit in Netflix
for<00:03:18.940><c> all</c><00:03:19.060><c> of</c><00:03:19.180><c> machine</c><00:03:19.450><c> learning</c><00:03:19.540><c> processing</c>

00:03:22.710 --> 00:03:22.720 align:start position:0%
 
 

00:03:22.720 --> 00:03:27.500 align:start position:0%
 
[Music]

00:03:27.500 --> 00:03:27.510 align:start position:0%
[Music]
 

00:03:27.510 --> 00:03:31.610 align:start position:0%
[Music]
my<00:03:28.510><c> favorite</c><00:03:29.140><c> part</c><00:03:29.440><c> was</c><00:03:29.920><c> learning</c><00:03:30.610><c> about</c>

00:03:31.610 --> 00:03:31.620 align:start position:0%
my favorite part was learning about
 

00:03:31.620 --> 00:03:35.550 align:start position:0%
my favorite part was learning about
Scala<00:03:32.620><c> because</c><00:03:32.950><c> I'm</c><00:03:33.070><c> a</c><00:03:33.160><c> new</c><00:03:33.810><c> adopter</c><00:03:34.810><c> of</c><00:03:34.989><c> Scala</c>

00:03:35.550 --> 00:03:35.560 align:start position:0%
Scala because I'm a new adopter of Scala
 

00:03:35.560 --> 00:03:37.530 align:start position:0%
Scala because I'm a new adopter of Scala
so<00:03:35.920><c> going</c><00:03:36.250><c> especially</c><00:03:36.459><c> to</c><00:03:36.910><c> the</c><00:03:37.000><c> functional</c>

00:03:37.530 --> 00:03:37.540 align:start position:0%
so going especially to the functional
 

00:03:37.540 --> 00:03:41.070 align:start position:0%
so going especially to the functional
track<00:03:38.290><c> and</c><00:03:38.560><c> learning</c><00:03:38.920><c> all</c><00:03:39.070><c> the</c><00:03:39.250><c> new</c><00:03:39.690><c> ways</c><00:03:40.690><c> of</c>

00:03:41.070 --> 00:03:41.080 align:start position:0%
track and learning all the new ways of
 

00:03:41.080 --> 00:03:44.280 align:start position:0%
track and learning all the new ways of
using<00:03:41.470><c> Scala</c><00:03:41.950><c> to</c><00:03:42.220><c> meet</c><00:03:42.370><c> my</c><00:03:42.670><c> needs</c><00:03:43.360><c> was</c>

00:03:44.280 --> 00:03:44.290 align:start position:0%
using Scala to meet my needs was
 

00:03:44.290 --> 00:03:46.400 align:start position:0%
using Scala to meet my needs was
eye-opening<00:03:44.980><c> to</c><00:03:45.130><c> me</c><00:03:45.160><c> and</c><00:03:45.459><c> I</c><00:03:45.640><c> would</c><00:03:45.820><c> you</c><00:03:46.300><c> know</c>

00:03:46.400 --> 00:03:46.410 align:start position:0%
eye-opening to me and I would you know
 

00:03:46.410 --> 00:03:49.900 align:start position:0%
eye-opening to me and I would you know
given<00:03:47.410><c> a</c><00:03:47.440><c> chance</c><00:03:47.590><c> I</c><00:03:47.769><c> will</c><00:03:47.860><c> keep</c><00:03:47.980><c> coming</c>

00:03:49.900 --> 00:03:49.910 align:start position:0%
given a chance I will keep coming
 

00:03:49.910 --> 00:03:51.970 align:start position:0%
given a chance I will keep coming
you

