WEBVTT

00:00:00.001 --> 00:00:04.040
This week, we'll enter the world of stock markets, trades, hedge funds, and more.

00:00:04.040 --> 00:00:09.540
You'll meet Eve Hilpich, who runs the Python Quants, where Python, open source, education,

00:00:09.540 --> 00:00:11.240
and finance all intersect.

00:00:11.240 --> 00:00:18.560
This is Python in Finance on Talk Python To Me, episode 120, recorded June 1st, 2017.

00:00:18.560 --> 00:00:48.360
Welcome to Talk Python To Me, a weekly podcast on Python, the language, the libraries, the

00:00:48.360 --> 00:00:49.880
ecosystem, and the personalities.

00:00:49.880 --> 00:00:52.000
This is your host, Michael Kennedy.

00:00:52.000 --> 00:00:54.000
Follow me on Twitter, where I'm @mkennedy.

00:00:54.000 --> 00:00:59.300
Keep up with the show and listen to past episodes at talkpython.fm, and follow the show on Twitter

00:00:59.300 --> 00:01:00.420
via at Talk Python.

00:01:00.420 --> 00:01:04.720
Talk Python To Me is partially supported by our training courses.

00:01:04.720 --> 00:01:07.720
How does your team keep their Python skills sharp?

00:01:07.720 --> 00:01:11.840
How do you make sure new hires get started fast and learn the Pythonic way?

00:01:11.840 --> 00:01:17.880
If the answer is a series of boring videos that don't inspire, or a subscription service you

00:01:18.160 --> 00:01:20.840
way too much for and use way too little, listen up.

00:01:20.840 --> 00:01:24.740
At Talk Python Training, we have enterprise tiers for all of our courses.

00:01:24.740 --> 00:01:29.300
Get just the one course you need for your team with full reporting and monitoring.

00:01:29.300 --> 00:01:34.220
Or ditch that unused subscription for our course bundles, which include all the courses, and

00:01:34.220 --> 00:01:37.020
you pay about the same price as a subscription once.

00:01:37.680 --> 00:01:44.320
For details, visit training. talkpython.fm/business, or just email sales at talkpython.fm.

00:01:45.960 --> 00:01:47.120
Yves, welcome to Talk Python.

00:01:47.120 --> 00:01:48.140
Thank you.

00:01:48.140 --> 00:01:49.340
Thank you for having me, Michael.

00:01:49.340 --> 00:01:50.920
It's great to have you on the show.

00:01:50.920 --> 00:01:55.040
And I'm really looking forward to learn about Python and finance.

00:01:55.040 --> 00:02:00.420
And in fact, it's been really fascinating just to do the research to find the questions and

00:02:00.420 --> 00:02:01.720
interesting things to talk to you about.

00:02:01.840 --> 00:02:07.700
So I'm really looking forward to talking to you about Python, finance, quants, all this

00:02:07.700 --> 00:02:08.140
kind of stuff.

00:02:08.140 --> 00:02:10.640
But before we get into that, let's start with your story.

00:02:10.640 --> 00:02:12.180
How did you get into programming in Python?

00:02:12.180 --> 00:02:16.480
Yeah, well, it's kind of, at least for people at my age, kind of a typical story.

00:02:16.480 --> 00:02:20.180
So I started, my first computer was a C64 Commodore.

00:02:20.180 --> 00:02:22.440
And back then, I was fascinated by programming already.

00:02:23.180 --> 00:02:28.960
So it's a long time ago where I started doing basics, basic, back then also assembler.

00:02:28.960 --> 00:02:33.840
I know if you talk to younger people these days and you say that you've been doing assembler

00:02:33.840 --> 00:02:39.740
on a machine level, moving around bits and bytes, nobody, almost nobody can imagine it

00:02:39.740 --> 00:02:40.120
anymore.

00:02:40.120 --> 00:02:41.920
But this is not actually hard.

00:02:41.920 --> 00:02:45.780
They might ask you, is that the, they might say, hey, is that the new JavaScript framework?

00:02:45.780 --> 00:02:46.380
I heard of that.

00:02:46.380 --> 00:02:48.400
Yeah, something like that, maybe.

00:02:48.400 --> 00:02:53.080
So, but I think the world has become well too complex to get through the programming.

00:02:53.080 --> 00:02:53.420
For sure.

00:02:53.420 --> 00:02:53.720
Yeah.

00:02:53.720 --> 00:02:56.300
You couldn't build very much in assembler anymore.

00:02:56.300 --> 00:03:02.760
No, but sometimes I'm fascinated when I'm walking through kind of the, across the shelves

00:03:02.760 --> 00:03:07.980
and bookstores and I still have assembler books, like, you know, 1,200 pages and just to do

00:03:07.980 --> 00:03:10.280
a simple arithmetic operation or what.

00:03:10.280 --> 00:03:12.260
So it's still fascinating.

00:03:12.260 --> 00:03:14.000
And some people might still do it.

00:03:14.000 --> 00:03:18.040
I just met one guy, it was a Russian guy at the London meetup that I did.

00:03:18.040 --> 00:03:19.580
They said, well, I'm doing assembler.

00:03:19.580 --> 00:03:22.980
But that's the one guy over the last maybe 10 years who told me that he

00:03:22.980 --> 00:03:23.900
he would be doing assembler.

00:03:23.900 --> 00:03:32.320
So, but yeah, Python, frankly, after my early programming experience, it more or less stopped

00:03:32.320 --> 00:03:34.880
because I decided to study business administration.

00:03:34.880 --> 00:03:39.380
I somehow thought that kind of this would be the path to make money, decent money.

00:03:39.380 --> 00:03:46.940
And yeah, I mean, the fascination for technology never disappeared.

00:03:46.940 --> 00:03:52.560
But after my business administration degree in German, we called this Diplom Kaufmann, which

00:03:52.560 --> 00:03:54.180
is kind of the equivalent of an MBA.

00:03:54.900 --> 00:03:57.400
I followed up with a PhD in math finance.

00:03:57.400 --> 00:04:00.780
And this was actually the point where I got into finance.

00:04:00.780 --> 00:04:07.360
So back then, nobody can imagine in our field today that I've written kind of a PhD thesis

00:04:07.360 --> 00:04:10.500
without any numerical analysis or programming even.

00:04:10.500 --> 00:04:11.820
So it was a...

00:04:11.820 --> 00:04:12.260
Oh, wow.

00:04:12.260 --> 00:04:13.680
So it was really theoretical.

00:04:13.680 --> 00:04:16.420
It was just the theory of finance, not here.

00:04:16.420 --> 00:04:17.860
We're going to simulate something.

00:04:17.860 --> 00:04:19.220
Yeah, it's kind of...

00:04:19.220 --> 00:04:22.340
Indeed, today you would probably call these people kind of model quants.

00:04:22.340 --> 00:04:24.500
They really work on new models.

00:04:24.500 --> 00:04:29.840
But if you have maybe a thousand quants that you ever look at, maybe only 10 are still working

00:04:29.840 --> 00:04:31.060
at models, really.

00:04:31.900 --> 00:04:35.580
But back then, there was much more to discover still.

00:04:35.580 --> 00:04:40.020
So today, more or less all people working in banks, hedge funds, whatsoever, they are more

00:04:40.020 --> 00:04:43.500
or less concerned with the numerical side, with the implementation, with the usage of the

00:04:43.500 --> 00:04:46.820
models that are around, with a couple of improvements left and right.

00:04:46.820 --> 00:04:55.980
But I did really a theoretical PhD in mathematical finance and a little bit of numerical analysis,

00:04:55.980 --> 00:04:57.600
but more or less by hand.

00:04:57.600 --> 00:04:59.860
Just examples, no coding at all.

00:04:59.860 --> 00:05:01.020
Right.

00:05:01.020 --> 00:05:05.300
But still, I haven't answered the question how I got into Python, because this was more

00:05:05.300 --> 00:05:05.820
or less my incident.

00:05:05.820 --> 00:05:09.660
Yeah, so this theory has not yet gotten you anywhere near Python.

00:05:09.660 --> 00:05:10.300
Yeah.

00:05:10.300 --> 00:05:12.860
So, but the two things come together.

00:05:12.860 --> 00:05:17.240
It was a couple of years later when I was working as a management consultant for an IT company.

00:05:17.240 --> 00:05:20.560
And I didn't do anything IT there.

00:05:20.560 --> 00:05:21.940
It was just on a strategic level.

00:05:21.940 --> 00:05:26.980
But people simply didn't stop talking about Python and how nice Python is and how efficient

00:05:26.980 --> 00:05:28.200
they are with Python.

00:05:28.200 --> 00:05:32.820
And it seemed to be like, you know, kind of the best thing after sliced bread.

00:05:33.660 --> 00:05:36.300
And I had to look at it simply out of curiosity.

00:05:36.300 --> 00:05:40.820
So there was no real kind of need for me or whatsoever.

00:05:40.820 --> 00:05:42.440
But I said, well, this sounds so interesting.

00:05:42.440 --> 00:05:44.220
Maybe there's something in it for finance.

00:05:44.220 --> 00:05:52.780
And indeed, from the very beginning, I was convinced this is well more than 10 years ago, maybe 12, 13 years, maybe even 15 years ago, when this happened.

00:05:52.780 --> 00:05:55.800
I said, well, this is something I would have loved to have when I did my PhD.

00:05:55.800 --> 00:05:59.440
This is kind of so close to finance, to math, to all the formula.

00:05:59.740 --> 00:06:01.260
You can simply write stuff down.

00:06:01.260 --> 00:06:03.400
And it looks not kind of a cane code.

00:06:03.400 --> 00:06:06.260
It looks still like math and mathematical finance.

00:06:06.260 --> 00:06:12.360
And that's when I discovered Python and decided to start using it more as a hobby in the beginning.

00:06:12.360 --> 00:06:14.040
And it took us a couple of years.

00:06:14.040 --> 00:06:15.880
And now I don't do anything else.

00:06:15.880 --> 00:06:17.140
But that sounds really great.

00:06:17.140 --> 00:06:19.400
Those were pretty early days.

00:06:19.400 --> 00:06:25.360
Yes, and so the tooling for computation in Python wasn't as good as it is today, right?

00:06:25.360 --> 00:06:26.100
Sure, sure, sure.

00:06:26.100 --> 00:06:30.000
I mean, this is what most people said back then and still some do today.

00:06:30.000 --> 00:06:31.040
Kind of, this is slow.

00:06:31.040 --> 00:06:32.680
This is an interpreted language.

00:06:32.680 --> 00:06:41.600
There's, yeah, if you have to write loops, which is kind of common, of course, in mathematical finance, everything is more or less about loops when you implement a financial algorithm.

00:06:41.600 --> 00:06:43.040
And it was true.

00:06:43.040 --> 00:06:45.120
So back then, we didn't even have NumPy.

00:06:45.120 --> 00:06:46.400
It was numeric.

00:06:46.400 --> 00:06:49.800
We started using it, which later became NumPy.

00:06:49.800 --> 00:06:53.720
And, yeah, but we still started doing it because of syntax and everything.

00:06:53.720 --> 00:06:58.260
And from a research perspective, we had more or less back then.

00:06:58.260 --> 00:07:05.780
It wasn't that important whether it's kind of a one-second or a ten-second thing or even sometimes a one-minute or ten-minute thing.

00:07:05.780 --> 00:07:11.520
You know, maybe for people working in production in a financial institution, this is, of course, a decisive question.

00:07:11.520 --> 00:07:15.380
But for what I had in mind in the first place, it wasn't kind of really a thing.

00:07:15.380 --> 00:07:20.560
I just saw the efficiency gains that you could get by using a high-level language like Python.

00:07:20.560 --> 00:07:21.000
I see.

00:07:21.000 --> 00:07:23.640
So in the beginning, it was like, I need to explore this data.

00:07:23.640 --> 00:07:25.240
And if it takes a minute, that's totally fine.

00:07:25.240 --> 00:07:28.120
You weren't trying to do, like, high-frequency trading with it.

00:07:28.120 --> 00:07:28.740
Yeah, sure.

00:07:28.740 --> 00:07:29.240
Exactly.

00:07:29.240 --> 00:07:29.840
Exactly.

00:07:29.840 --> 00:07:30.640
Yeah, I see.

00:07:31.120 --> 00:07:31.400
Okay.

00:07:31.400 --> 00:07:39.720
So you get what's close to your MBA, and then you get a PhD in, like, theoretical finance, and then you, like, play around with Python.

00:07:39.720 --> 00:07:43.120
What does that end up meaning for you today?

00:07:43.120 --> 00:07:44.420
Like, what do you do day to day?

00:07:44.420 --> 00:07:48.220
Yeah, today, I said it before, everything is centered around Python for finance.

00:07:48.220 --> 00:07:49.420
We don't do anything else.

00:07:49.420 --> 00:07:55.240
Of course, sometimes I say, well, we talk about Python, but it's more or less open source in finance.

00:07:55.240 --> 00:07:58.860
So for what we do, we also use other open source technologies.

00:07:58.860 --> 00:08:01.620
But at the core of the core of what we do is Python.

00:08:01.620 --> 00:08:07.980
So all our offerings, like the trainings, for example, they're centered around Python and finance.

00:08:08.200 --> 00:08:16.520
So we don't do, for example, any JavaScript training, nor do we do any kind of Python training for another industry.

00:08:16.520 --> 00:08:20.460
So it's really at the intersection of Python and finance what we do.

00:08:20.460 --> 00:08:26.640
And in these areas, we do events, like our conference or a boot camp series, which is called for Python Quants.

00:08:26.640 --> 00:08:31.740
I'm running a big meetup with 2,000 members in London called Python for Quants Finance.

00:08:31.740 --> 00:08:38.360
And yeah, we make currently mostly our living off training, online training.

00:08:38.360 --> 00:08:44.480
And there, the focus is on Python for algorithmic trading, which has become kind of a rather popular topic.

00:08:44.480 --> 00:08:47.380
Yeah, definitely the algorithmic trading has been.

00:08:47.380 --> 00:08:48.980
Absolutely, absolutely.

00:08:48.980 --> 00:08:53.320
Also for retail investors, for single people, but for the big ones as well.

00:08:53.320 --> 00:09:01.300
So we have usually people attending our classes from the biggest institutions down to students who are just interested in this topic.

00:09:01.300 --> 00:09:18.240
And the technological requirements to enter the field have become that low, so to say, the barriers of entry, as we say in business, are almost have vanished that everybody can start algorithmic trading with, let's say, 50 or 100 US dollar within an hour.

00:09:18.240 --> 00:09:20.860
So this is how far we have gone.

00:09:20.860 --> 00:09:27.400
That's very far from the Ivy League university degrees and master's degrees and whatnot, right?

00:09:27.400 --> 00:09:28.320
Yeah, sure, sure.

00:09:28.320 --> 00:09:30.380
So you can, everybody can start.

00:09:30.540 --> 00:09:31.700
Yeah, yeah, that's, that's really great.

00:09:31.700 --> 00:09:38.840
So you don't need too much mathematical background and statistics and training and sort of theoretical stuff to get started?

00:09:38.840 --> 00:09:40.660
Ah, well, it doesn't hurt.

00:09:40.660 --> 00:09:42.480
Let's put me, let's put it that way.

00:09:42.480 --> 00:09:49.480
But many people even argue that a former background in finance might be hurting in the sense that you believe in the wrong paradigms.

00:09:49.480 --> 00:09:50.700
Right.

00:09:50.700 --> 00:09:52.960
You studied a world that no longer exists, maybe?

00:09:52.960 --> 00:09:55.020
Or it has changed a lot, yeah.

00:09:55.100 --> 00:10:02.720
When I studied finance and still people who study finance at university, the basic theory still is based off end of day data.

00:10:02.720 --> 00:10:13.820
Back in the days when you, when you had to look at the newspapers in order to pick out current stock prices, you know, this is more or less the data that all the theory is based on.

00:10:13.940 --> 00:10:20.740
But today when we talk about intraday, this was kind of the first step, you know, the day traders came up, they started trading intraday.

00:10:20.740 --> 00:10:24.640
And now we have arrived at the high frequency trading space.

00:10:24.640 --> 00:10:26.400
And of course, things have changed.

00:10:26.400 --> 00:10:29.420
But from my point of view, theory hasn't kept up really well.

00:10:29.420 --> 00:10:30.540
Yeah, sure.

00:10:30.540 --> 00:10:34.720
Almost the computational side probably has kept up closer than theory, right?

00:10:34.720 --> 00:10:35.340
Yeah, sure.

00:10:35.340 --> 00:10:39.520
Because you need to have the capabilities to process the huge amounts of data.

00:10:39.520 --> 00:10:49.140
I mean, if you just have a look, if you have 30 years of data for a single stock price, this is kind of, you have roughly 250 trading days per year.

00:10:49.140 --> 00:10:58.420
Times 10 is 2,500 times 3 is 7,500 end of day points for a single stock.

00:10:58.420 --> 00:11:08.200
If you have a look for example, for example, at Apple or what, you easily get beyond 15,000 points per day when you work with the intraday data.

00:11:08.200 --> 00:11:16.900
So it's twice as much in a single day that is available now compared to kind of 30 years of end of day trading data, you know.

00:11:16.900 --> 00:11:18.260
So, yeah.

00:11:18.980 --> 00:11:20.000
It has changed quite a bit.

00:11:20.000 --> 00:11:24.180
So the area that you focus on is the whole quants.

00:11:24.180 --> 00:11:27.320
Could you maybe tell us what quants are?

00:11:27.320 --> 00:11:30.080
Give us kind of a spectrum of different things.

00:11:30.080 --> 00:11:33.860
You said model quants, computational quants, other types of things.

00:11:33.860 --> 00:11:35.580
What's this landscape look like?

00:11:35.580 --> 00:11:43.940
Yeah, I mean, the expression quant comes from a quantitative finance or quantitative analysts.

00:11:43.940 --> 00:11:54.800
So people that do anything that is somehow quantitative or regionally opposed to a little bit like theoretical, you know, kind of you have numbers and you work with numbers.

00:11:54.800 --> 00:12:03.700
But usually I think people understand that people are working with models in the sense of, yeah, they are implementing them.

00:12:03.900 --> 00:12:05.140
They analyze them.

00:12:05.140 --> 00:12:06.040
They tweak them.

00:12:06.040 --> 00:12:07.200
They optimize them.

00:12:07.200 --> 00:12:11.240
They write code based on them and so forth.

00:12:11.240 --> 00:12:13.100
But this is maybe my point of view.

00:12:13.100 --> 00:12:18.500
If you ask 10 people in the industry, everybody might come up with a different definition in this regard.

00:12:18.500 --> 00:12:26.200
But mostly people who have a formal education, formal background, like in engineering, in math, in physics.

00:12:26.200 --> 00:12:29.680
So, you know, they have the math tools available these days.

00:12:29.680 --> 00:12:35.720
Also, of course, the programming tools and they now do quantitative stuff and modeling in the financial industry.

00:12:35.720 --> 00:12:37.700
And this can be from A to Z.

00:12:37.700 --> 00:12:39.920
This can be credit modeling.

00:12:39.920 --> 00:12:41.160
This can be in trading.

00:12:41.160 --> 00:12:42.860
This can be in option pricing.

00:12:42.860 --> 00:12:50.240
Many people in this area work or with the title work in risk management, which are huge departments in the banks.

00:12:50.240 --> 00:12:53.540
So it's a diverse set, actually.

00:12:53.540 --> 00:12:53.780
Sure.

00:12:53.780 --> 00:12:54.000
Yeah.

00:12:54.000 --> 00:12:56.780
It sounds like quite a large group, actually.

00:12:56.780 --> 00:13:03.600
The people that do high frequency trading and like create the algorithms and code that does that, would those be quant?

00:13:03.600 --> 00:13:08.260
I think you don't hear quant kind of in this context quite often.

00:13:08.260 --> 00:13:11.660
So they are more technologists from my point of view.

00:13:11.800 --> 00:13:21.300
So this complete high frequency space is more driven by the technology itself and not this much by the quantitative analysis from my point of view.

00:13:21.300 --> 00:13:27.400
So I would say, well, I would exclude it, but it's not the first area that comes to my mind.

00:13:27.400 --> 00:13:27.760
I see.

00:13:27.760 --> 00:13:28.200
Right.

00:13:28.200 --> 00:13:28.760
Of course.

00:13:28.760 --> 00:13:29.520
Okay.

00:13:29.520 --> 00:13:30.660
So let's see.

00:13:30.660 --> 00:13:35.060
Let's maybe start with the state of Python in the financial industry.

00:13:35.720 --> 00:13:41.740
So 10 years ago, it sounded to me like using Python was kind of like, hey, what are you doing?

00:13:41.740 --> 00:13:43.280
Why are you using that language?

00:13:43.280 --> 00:13:51.360
Like you should be using Fortran or C or something, or maybe Java, something compiled and faster and more trusted.

00:13:51.360 --> 00:13:51.680
Right.

00:13:51.820 --> 00:13:52.920
This actually was the case.

00:13:52.920 --> 00:14:00.400
So speed, especially in an area where you haven't had kind of the nice hardware way as of today.

00:14:00.400 --> 00:14:09.780
So both, of course, on a single level machine, on a single machine level, as well as on cluster level, we have seen tremendous advances on the hardware side of things.

00:14:10.060 --> 00:14:19.520
So speed was more or less gained by implementing the models in the best fashion possible, which meant, of course, to have a compiled language.

00:14:19.520 --> 00:14:23.180
And C++ has established itself back then as a standard.

00:14:23.180 --> 00:14:29.460
And most of the pricing and analytics libraries these days still in use are based on C++.

00:14:29.460 --> 00:14:37.740
So there are millions and millions of lines of code in C++ that do pricing work on a daily basis, risk management, front office pricing, and so forth.

00:14:38.180 --> 00:14:39.800
So this is where we came from.

00:14:39.800 --> 00:14:51.740
And then, of course, if you have an expert who knows how to optimally compile kind of the C++ code, highly efficient manner, even back then with parallelization and so forth.

00:14:51.740 --> 00:14:57.980
And you come along and say, Python, they just, the only thing that did is laugh at you, you know?

00:14:57.980 --> 00:14:58.760
Yeah.

00:14:58.760 --> 00:15:09.540
But, of course, everybody saw, for example, the benefits of having such an efficient language, like on a system administration level and so forth, just to have to write scripts, you know, instead of using Bash or whatsoever.

00:15:09.540 --> 00:15:13.900
This was kind of the first area where Python was used back then.

00:15:13.900 --> 00:15:14.800
But...

00:15:14.800 --> 00:15:15.880
To kind of glue things together.

00:15:15.880 --> 00:15:16.800
To glue your C++.

00:15:16.800 --> 00:15:19.040
Glue things together, yeah, to automate things.

00:15:19.040 --> 00:15:23.440
And maybe even to orchestrate stuff that was written in C++ and other languages.

00:15:24.040 --> 00:15:24.220
Sure.

00:15:24.220 --> 00:15:45.640
And still, it took kind of a long while, I must say, until we reached a point where, yeah, we now have the big, first point here, big users, or even, I would say, the biggest financial institutions that are heavy users, strategic users of Python, like Bank of America, Merrill Lynch, and JP Morgan.

00:15:45.640 --> 00:15:49.780
And they have both implemented core systems based on Python.

00:15:49.780 --> 00:15:51.240
And...

00:15:51.240 --> 00:15:51.400
Yeah.

00:15:51.400 --> 00:15:52.000
Yeah.

00:15:52.000 --> 00:15:54.180
It was pretty incredible at PyCon.

00:15:54.180 --> 00:15:55.520
Were you at PyCon this year in the US?

00:15:55.520 --> 00:15:56.320
Just a few weeks ago?

00:15:56.320 --> 00:15:56.820
No.

00:15:56.820 --> 00:15:57.040
Yeah.

00:15:57.040 --> 00:15:58.860
Saving it for EuroPython?

00:15:58.860 --> 00:15:59.680
I used to.

00:15:59.680 --> 00:16:06.880
I used to attend the first EuroPython's religiously, especially when they were in Florence, kind of a really nice place, but I even stopped going to them.

00:16:07.440 --> 00:16:10.840
So, the year is only that many months, weeks, and days.

00:16:10.840 --> 00:16:11.040
Yeah.

00:16:11.040 --> 00:16:16.740
And I focus more or less on the finance side of things these days, our own conferences.

00:16:16.740 --> 00:16:18.740
So, I'm traveling anyways, all year round.

00:16:18.740 --> 00:16:20.420
If you're already running your own conferences.

00:16:20.900 --> 00:16:26.000
So, what was interesting about PyCon, which is really a technical developer type conference, right?

00:16:26.000 --> 00:16:37.780
And really, maybe data scientists as well these days, were there were actually quite a few financial companies with booths, large expo booths, and basically on display.

00:16:37.780 --> 00:16:43.680
And so, for example, JP Morgan Chase, Last Capital One, or also Chase.

00:16:43.680 --> 00:16:46.520
There's a number of companies, right?

00:16:46.520 --> 00:16:48.380
Why do they have a booth here?

00:16:48.380 --> 00:16:50.120
What are they doing here, you know?

00:16:50.540 --> 00:16:55.140
And basically, they're like, we need as many Python developers as we can get.

00:16:55.140 --> 00:16:56.000
Sure, sure.

00:16:56.000 --> 00:16:57.460
That's what I was saying.

00:16:57.460 --> 00:17:03.240
It's not kind of one piece of technology that is kind of used in certain areas.

00:17:03.240 --> 00:17:07.040
No, it's Python is at the core, the core system.

00:17:07.040 --> 00:17:16.720
So, the core risk management trading system at Bank of America is called Quartz, and it's Athena at JP Morgan.

00:17:16.720 --> 00:17:23.020
And there are now hundreds, if not even thousands of people writing Python code on a daily basis for these systems.

00:17:23.640 --> 00:17:25.900
So, they need talent, of course, of course.

00:17:25.900 --> 00:17:30.640
They need talent in order to support, maintain, and further develop their platforms.

00:17:30.640 --> 00:17:31.640
Yeah, that's really interesting.

00:17:31.640 --> 00:17:31.640
Yeah, that's really interesting.

00:17:31.640 --> 00:17:40.480
And how many other projects at any company of any size have thousands of developers working in Python on a single project in a day?

00:17:40.480 --> 00:17:41.140
You know?

00:17:41.140 --> 00:17:41.780
Not many.

00:17:41.780 --> 00:17:42.040
Yeah.

00:17:42.040 --> 00:17:42.800
Not many.

00:17:42.800 --> 00:17:43.580
Not many, actually.

00:17:43.720 --> 00:17:47.060
But the banks have become technology companies anyway.

00:17:47.060 --> 00:17:49.120
So, they have thousands of developers.

00:17:49.120 --> 00:17:53.500
I heard once somebody saying that Bank of America has more developers than Microsoft.

00:17:53.500 --> 00:17:55.020
I never followed up on that.

00:17:55.020 --> 00:18:02.580
But, you know, with a bank that has 300,000 people, you can imagine how many of them are doing technology these days.

00:18:03.060 --> 00:18:07.040
And they have budgets, they have IT budgets in the billions.

00:18:07.040 --> 00:18:10.680
So, the bigger ones beyond 5 billion per year for IT only.

00:18:10.680 --> 00:18:14.480
So, they're huge technology companies.

00:18:14.480 --> 00:18:15.140
Yeah.

00:18:15.140 --> 00:18:19.900
Another financial area that was using or still does use Python a lot is PayPal.

00:18:19.900 --> 00:18:23.260
They use Python for many, many things.

00:18:23.340 --> 00:18:28.320
And they have one of their services that does real-time pricing for transactions and exchanges.

00:18:28.320 --> 00:18:32.700
That's running on Python and doing several billion requests a day.

00:18:32.700 --> 00:18:37.620
It was really interesting to see this move from, oh, that's not going to be fast enough.

00:18:37.620 --> 00:18:39.080
Oh, you can't build real stuff with that.

00:18:39.080 --> 00:18:39.580
And so on.

00:18:39.580 --> 00:18:41.940
To now, it's like at the center of some of these things.

00:18:41.940 --> 00:18:42.400
Yeah, sure.

00:18:42.400 --> 00:18:48.220
I mean, sometimes when you reach a bottleneck in a certain area, of course, you still have the option to use another technology.

00:18:48.220 --> 00:18:49.360
And that's the beauty of it.

00:18:49.360 --> 00:18:53.200
If you go the Python route, it's not that you have only Python available.

00:18:53.200 --> 00:19:02.160
It's so easy to interface with C++, C code, other technologies in general that might be better suited for this particular task.

00:19:02.160 --> 00:19:07.300
So, that Python is not a choice where you lose out on other things.

00:19:07.300 --> 00:19:08.420
Yeah, that's right.

00:19:08.420 --> 00:19:12.880
The decision there is always a good one because it's very flexible.

00:19:12.880 --> 00:19:15.140
And you could just even call web services, right?

00:19:15.140 --> 00:19:16.180
All those types of things.

00:19:16.180 --> 00:19:16.840
Everything.

00:19:16.840 --> 00:19:16.960
Everything.

00:19:17.560 --> 00:19:20.360
It's a general purpose, really flexible language.

00:19:20.360 --> 00:19:27.380
And talking about performance, we now have also many, many interesting native performance technologies available.

00:19:27.380 --> 00:19:32.180
So, especially interesting for the finance part there.

00:19:32.180 --> 00:19:36.700
So, it's not that you need to resort to other technologies in order to get the performance.

00:19:36.700 --> 00:19:39.440
We have now lots to offer in this regard as well.

00:19:41.380 --> 00:19:44.420
This portion of talkpython.fm is brought to you by Linode.

00:19:44.420 --> 00:19:48.460
Are you looking for bulletproof hosting that is fast, simple, and incredibly affordable?

00:19:48.460 --> 00:19:53.640
Look past that bookstore and check out Linode at talkpython.fm/Linode.

00:19:53.640 --> 00:19:55.640
That's L-I-N-O-D-E.

00:19:55.640 --> 00:19:59.580
Plans start at just $5 a month for a dedicated server with a gig of RAM.

00:19:59.580 --> 00:20:02.160
They have 10 data centers across the globe.

00:20:02.160 --> 00:20:04.760
So, no matter where you are, there's a data center near you.

00:20:05.260 --> 00:20:19.100
Whether you want to run your Python web app, host a private Git server, or even a file server, you'll get native SSDs on all the machines, a 40 gigabit network, 24-7 friendly support, even on holidays, and a seven-day money-back guarantee.

00:20:19.100 --> 00:20:22.520
Want a dedicated server for free for the next four months?

00:20:22.520 --> 00:20:28.000
Use the coupon code python17 at talkpython.fm/Linode.

00:20:28.000 --> 00:20:30.120
Do you know some interesting stuff going on?

00:20:30.120 --> 00:20:35.060
Are people using GPU clusters to try to make things faster?

00:20:35.060 --> 00:20:37.200
Anything you can talk about there?

00:20:37.200 --> 00:20:37.780
Yeah, sure.

00:20:37.940 --> 00:20:47.120
I mean, this is around since they started using GPUs as GPUs, so general purpose GPUs, ever since.

00:20:47.120 --> 00:20:55.400
But in the beginning, there was kind of the major problem that the working memory was typically too small to do something significant.

00:20:55.400 --> 00:21:07.720
So, when you think, for example, of kind of a Monte Carlo simulation, which is an American method of choice in risk management and for many analytics tasks, just to, for example, just to price a simple American option.

00:21:07.720 --> 00:21:09.460
Now we're getting a little bit technical.

00:21:09.460 --> 00:21:14.280
By Monte Carlo simulation, there's a regression involved and stuff like that.

00:21:14.280 --> 00:21:22.100
You might, for a single option, you might need, I don't know, from a gigabyte onwards, upwards of working memory.

00:21:22.580 --> 00:21:29.620
And when you think that kind of banks like Morgan Stanley, they typically have 3 million open positions overnight.

00:21:29.620 --> 00:21:34.940
So, you need to value and revalue a thousand of times 3 million options.

00:21:34.940 --> 00:21:41.360
So, this somehow illustrates what kind of the requirements are in terms of the hardware that you need.

00:21:41.360 --> 00:21:49.400
Then GPUs are kind of nice for certain tasks due to the massively parallel code that you can write.

00:21:49.600 --> 00:21:54.380
But other constraints like 32 bits and the working memory have been issued.

00:21:54.380 --> 00:21:59.640
Now, we see, of course, that the GPUs are getting bigger.

00:21:59.640 --> 00:22:02.440
Kind of, you get 12 gigs of RAM and so forth.

00:22:02.440 --> 00:22:08.540
So, I would see that this will further improve the stuff that you can implement.

00:22:08.800 --> 00:22:17.140
But everything I was aware of, of course, all the big banks and everybody was trying to figure out what the potential is of GPUs.

00:22:17.140 --> 00:22:24.920
But I haven't seen it kind of deployed on a really large scale in the sense that people in the industry, the big banks,

00:22:24.920 --> 00:22:34.740
and they are all still using kind of regular clusters with regular CPUs and lots of memory and all the stuff that you need in order to do our calculations there.

00:22:34.960 --> 00:22:36.400
Yeah, that's pretty interesting.

00:22:36.400 --> 00:22:39.060
Maybe the people who figured it out just don't talk about it.

00:22:39.060 --> 00:22:40.760
Which is possible, right?

00:22:40.760 --> 00:22:41.380
Yeah, usually.

00:22:41.380 --> 00:22:47.300
I mean, the finance industry overall is kind of secretive in a certain sense.

00:22:47.300 --> 00:22:55.000
Yeah, it's a little secretive that understandably like, hey, we found this amazing new algorithm where we make 1% on every trade that we do as a baseline.

00:22:55.000 --> 00:22:56.120
Oh, yeah.

00:22:56.120 --> 00:22:57.020
Tell us about that.

00:22:57.020 --> 00:22:58.500
Yeah, for sure, for sure.

00:22:58.500 --> 00:22:59.700
That's always what I say.

00:22:59.700 --> 00:23:02.040
If somebody finds it, they probably won't tell you.

00:23:02.040 --> 00:23:03.040
Yeah, exactly.

00:23:03.040 --> 00:23:03.740
For sure.

00:23:03.740 --> 00:23:07.480
I suspect that at some point people will probably pull these in.

00:23:07.480 --> 00:23:11.560
Or, you know, maybe they just leapfrog over them, right?

00:23:11.560 --> 00:23:14.120
Like, the big news out of Google I.O.

00:23:14.120 --> 00:23:25.420
And theoretically coming out of WWDC at vastly different scales are, you know, Google has come up with dedicated AI chips.

00:23:25.420 --> 00:23:30.800
Like, instead of using GPUs for this kind of stuff, they have now chips just for this kind of stuff.

00:23:30.800 --> 00:23:32.100
Yeah, the GPUs.

00:23:32.100 --> 00:23:33.640
The Tensor processing units.

00:23:33.640 --> 00:23:34.040
Exactly.

00:23:34.240 --> 00:23:39.680
And, like, Apple is supposed to be shipping an AI chip in the new phones, for example.

00:23:39.680 --> 00:23:47.360
So, maybe at some point there will be just a dedicated chip that's not this general GPU, but it's something even more focused.

00:23:47.360 --> 00:23:48.180
Yeah, that's kind of it.

00:23:48.180 --> 00:23:50.420
I mean, it's the same thing in the blockchain space, you know.

00:23:50.420 --> 00:23:56.540
GPUs were kind of a vogue for a certain period of time because much faster than the CPUs.

00:23:56.540 --> 00:24:03.700
But now they have the ASICs, their application-specific integrated circuit chips, and GPUs are gone, you know.

00:24:03.860 --> 00:24:04.400
Yeah, absolutely.

00:24:04.400 --> 00:24:06.200
You don't need them anymore there.

00:24:06.200 --> 00:24:07.640
A transition technology.

00:24:07.640 --> 00:24:07.980
Yeah.

00:24:07.980 --> 00:24:14.780
So, since you bring up the blockchain stuff, there's plenty more areas to cover, but what do you think about these cryptocurrencies?

00:24:14.780 --> 00:24:20.320
I consider them really interesting in terms of technology and what is going on there.

00:24:20.320 --> 00:24:25.680
But maybe you're referring to the recent developments and kind of the explosion in the Bitcoin price, for example.

00:24:25.680 --> 00:24:31.020
So, I see the market from an economic and financial point of view a little bit overhyped.

00:24:31.020 --> 00:24:31.540
Yeah.

00:24:31.680 --> 00:24:37.680
But from a technological perspective, it's really interesting because it combines many, many technologies that have been around for quite a while.

00:24:37.680 --> 00:24:43.220
They add kind of new stuff to it and solve a couple of issues in very, very elegant ways.

00:24:43.640 --> 00:24:45.260
So, I really enjoy it.

00:24:45.260 --> 00:24:51.400
I've given out some webinars about it and I'm into it a little bit, but just a little bit.

00:24:51.400 --> 00:25:02.640
It's just, it's not at the core of what we do, but still, I consider this finance part and you can do quite a bit and learn about it in particular based on Python.

00:25:03.020 --> 00:25:04.020
Yeah, for sure.

00:25:04.020 --> 00:25:12.300
There's also a lot of things that the finance industry seems to be trying to do with the blockchain, regardless of the cryptocurrency side of it.

00:25:12.300 --> 00:25:12.860
Yeah, sure.

00:25:12.860 --> 00:25:20.400
This is what I refer to when I said, well, the blockchain space solves kind of certain problems in a very elegant fashion.

00:25:20.760 --> 00:25:31.220
So, property rights or settlement, for example, when you think of trading of financial instruments and documentation of property rights and things that have happened in an immutable way.

00:25:31.500 --> 00:25:34.540
I mean, in the end, the blockchain is nothing else than an immutable database.

00:25:34.540 --> 00:25:37.040
You know, it's very hard to mutate it.

00:25:37.040 --> 00:25:41.220
So, we talk about the immutable database and to document property rights.

00:25:41.220 --> 00:25:47.920
Also, for example, when you think of emerging markets and the world and so forth, and there is potential in there.

00:25:47.920 --> 00:25:54.840
If this is enough potential to have Bitcoin now at 2,500 or something, US dollar, I don't know.

00:25:54.840 --> 00:25:57.940
I tweeted about it and said the bubble is about to burst soon.

00:25:57.940 --> 00:26:12.740
But then you read again that the big players are getting into the space that Fidelity recently revealed that they are in Bitcoin mining and that they will offer kind of a bunch of cryptocurrency related services to their clients.

00:26:12.740 --> 00:26:15.320
And Fidelity is one of the biggest asset managers in the world.

00:26:15.320 --> 00:26:21.780
Then you might say, well, of course, if these big players now start doing that stuff and getting into the space, of course, there is a push.

00:26:21.780 --> 00:26:23.540
Yeah, there's definitely going to be a push.

00:26:24.080 --> 00:26:28.500
So, you're telling me it was a mistake for me to put my entire life savings into Bitcoin?

00:26:28.500 --> 00:26:37.720
I mean, if you put it in there at 100 and now you might think of an exit, this might be an excellent strategy.

00:26:37.720 --> 00:26:40.480
Yeah, I only wish I had been so smart.

00:26:40.480 --> 00:26:41.540
All right.

00:26:41.540 --> 00:26:45.380
So, another thing I wanted to ask you about, you talked about these big users and these big projects.

00:26:45.700 --> 00:26:49.420
And I know it's a little bit difficult for people to talk about what they're doing.

00:26:49.420 --> 00:26:56.540
In Python in general, open source and shared libraries and sharing is a big thing.

00:26:56.540 --> 00:26:58.080
How does that look in finance?

00:26:58.080 --> 00:26:59.240
Yeah, it's still an issue.

00:26:59.240 --> 00:27:05.740
So, when I give a talk and sometimes even keynotes and then I talk about the state of Python in finance,

00:27:05.740 --> 00:27:11.900
it's always kind of, yeah, this little spot where we say, well, we have many big users.

00:27:11.900 --> 00:27:20.160
We have many users that benefit and make heavy use of the ecosystem in general, but they, at the same time, don't really contribute back.

00:27:20.900 --> 00:27:27.360
So, when I talk about the big banks, for example, just to make it concrete based on anecdote,

00:27:27.360 --> 00:27:33.760
when I run my events and I approach people working in banks, what they typically say, well, when is it?

00:27:33.760 --> 00:27:35.940
And I say, well, 12 weeks from now.

00:27:35.940 --> 00:27:42.580
And then I say, well, then it might be impossible for me to speak because I won't get clearance for my slides within 12 weeks.

00:27:42.580 --> 00:27:43.380
Yeah.

00:27:43.380 --> 00:27:44.900
And we are not talking about code.

00:27:44.900 --> 00:27:50.680
We are talking about somebody talking about what they're doing and talking about the code.

00:27:50.840 --> 00:27:52.360
And not about the code itself.

00:27:52.360 --> 00:28:00.980
You know, this is kind of this 100% policy in a sense that they don't get anything out of their doors.

00:28:00.980 --> 00:28:03.580
In a sense, what is developed here belongs to the banks.

00:28:03.580 --> 00:28:05.640
People are not allowed to speak about it.

00:28:05.640 --> 00:28:09.620
People are for sure not allowed to open source something.

00:28:09.620 --> 00:28:11.760
And it is a big deal.

00:28:11.760 --> 00:28:20.760
I mean, you referred to the big financial institution trying to hire people at the conferences, but they will have a hard time because many brilliant people,

00:28:20.780 --> 00:28:29.180
people in our ecosystem, they really enjoy being there at their events, giving talks, sharing stuff, discussing things and so forth.

00:28:29.180 --> 00:28:33.240
But at the bank, you hardly ever get the opportunity.

00:28:33.240 --> 00:28:37.260
Beyond something really abstract and really general, you know, it's kind of.

00:28:37.500 --> 00:28:43.460
And this is then typically the managing directors or whoever who deserve for themselves that they go about it.

00:28:43.460 --> 00:28:53.640
On the other hand, we have then the people more or less exclusively on the hedge fund side that have implemented different cultures and policies there.

00:28:53.640 --> 00:28:59.840
So probably the most prominent and best example of this regard is AQR, capital management.

00:28:59.840 --> 00:29:02.640
Pandas started out at AQR.

00:29:02.640 --> 00:29:05.120
And Wes McKinney worked there as a quant analyst.

00:29:05.120 --> 00:29:07.040
I didn't realize that origin.

00:29:07.040 --> 00:29:07.500
That's cool.

00:29:07.500 --> 00:29:08.120
Yeah.

00:29:08.300 --> 00:29:12.660
And when he worked there, they tried simply to solve their internal issues.

00:29:12.660 --> 00:29:18.000
They started early on using Python, but there was nothing comparable to the data frame in R.

00:29:18.000 --> 00:29:26.620
And Wes McKinney said, well, let's implement something like the data frame from R to have easier times with time series management.

00:29:27.380 --> 00:29:34.120
And Pandas now is the big project, but only because AQR back then said, well, this is not at the core.

00:29:34.120 --> 00:29:36.200
We benefit from it, obviously.

00:29:36.200 --> 00:29:43.220
So it's something we use on a daily basis, but we make money by generating alpha, which means by outperforming the market.

00:29:43.220 --> 00:29:44.720
So and by earning returns.

00:29:44.720 --> 00:29:47.080
So this is the core typically of a hedge fund.

00:29:47.080 --> 00:29:49.500
And they said, well, please open source it.

00:29:49.740 --> 00:30:06.040
So the basic idea there, and this is the, if you like, the business case, open sourcing it is to say, well, if beyond our company, maybe a few hundred or someday a few thousand, or in the case of Pandas, maybe a few million people are using it on a daily basis.

00:30:06.040 --> 00:30:09.180
They contribute back to the project and we will have the benefit as well.

00:30:09.180 --> 00:30:12.480
Because again, Pandas is not at the core of AQR capital management.

00:30:12.480 --> 00:30:16.620
So they have the direct and indirect benefits of open sourcing it.

00:30:16.620 --> 00:30:19.340
Inconceivable for the bank world.

00:30:19.580 --> 00:30:22.020
So due to compliance, legal reasons, and so forth.

00:30:22.020 --> 00:30:27.800
Another good example is, for example, in London, man, AHL, one of the bigger hedge funds.

00:30:27.800 --> 00:30:32.840
They, from my point of view, completely opened up for their people, for their culture.

00:30:32.840 --> 00:30:37.560
They're hosting since, I don't know how many months, maybe it's already close to two years.

00:30:37.560 --> 00:30:43.900
They're hosting the Pi Data Meetup with monthly events of about 150 people.

00:30:43.900 --> 00:30:45.400
Wow, that's a big event.

00:30:45.400 --> 00:30:46.020
Yeah, that's cool.

00:30:46.020 --> 00:30:46.820
It's a big event.

00:30:47.000 --> 00:30:50.020
And they are really proactive in this area.

00:30:50.020 --> 00:30:53.320
They have open source Arctic, which is a tick data store.

00:30:53.320 --> 00:30:56.320
They also said, well, we solved our issue.

00:30:56.320 --> 00:30:58.160
We needed a high-performance tick data store.

00:30:58.160 --> 00:31:01.440
But again, it's not at the core of AHL.

00:31:01.440 --> 00:31:02.880
They're also a money manager.

00:31:02.880 --> 00:31:06.900
And money managing and creating, generating alpha is at the core of what they do.

00:31:06.900 --> 00:31:08.220
And they open sourced it.

00:31:08.220 --> 00:31:14.820
And I've had many speakers from AHL, sometimes even two, and the CTO at my meetup and so forth.

00:31:14.820 --> 00:31:16.020
They come and talk about it.

00:31:16.060 --> 00:31:21.680
They talk about the change from other languages, other platform technologies to Python.

00:31:21.680 --> 00:31:32.440
And they know that in order to attract the most brilliant people, they need to open up and they need to embrace open source, not only as a technology, but also as a culture.

00:31:32.680 --> 00:31:36.380
It's really interesting to see how the hedge funds would operate differently.

00:31:36.380 --> 00:31:46.420
It seems like there's a lot more flexibility in sort of whatever that company decides, that those are the rules that go for the hedge funds, whereas the big banks are very conservative.

00:31:46.780 --> 00:31:47.360
Yes, they are.

00:31:47.360 --> 00:31:49.860
But this is driven by legal and compliance.

00:31:49.860 --> 00:31:59.720
You know, if you have a Bank of America, if you have hundreds of thousands of people employed, it's hard to make exceptions, you know, because how do you go about exceptions?

00:31:59.720 --> 00:32:03.660
It's much easier to say, well, 0% or 100%.

00:32:03.660 --> 00:32:06.100
So these policies are much easier to implement.

00:32:06.100 --> 00:32:14.020
And if you have a hedge fund with, let's say, I don't know, 200 people or whatsoever, you have a couple of people in the leadership team.

00:32:14.020 --> 00:32:21.000
And it's much easier to say, well, yes, of course, you can go out and talk about this and that, but make sure to not talk about X, Y, Z.

00:32:21.000 --> 00:32:22.580
And this is much easier.

00:32:22.580 --> 00:32:26.120
But if you have hundreds of thousands of people, it's so hard, you know.

00:32:26.120 --> 00:32:27.940
And all the government regulation.

00:32:27.940 --> 00:32:29.060
Yeah, absolutely.

00:32:29.060 --> 00:32:30.900
It sounds really hard, actually.

00:32:30.900 --> 00:32:37.900
Then you said also there are individuals that come to your classes that use Python and finance things.

00:32:37.900 --> 00:32:39.760
What kind of things would an individual be doing?

00:32:39.760 --> 00:32:42.480
Would this be like day traders or just one-off traders?

00:32:42.480 --> 00:32:43.520
Or what is this?

00:32:44.180 --> 00:32:45.740
This is my typical example.

00:32:45.740 --> 00:32:49.320
I'd say, well, it all started out with a day trader.

00:32:49.320 --> 00:32:59.200
So back in the days, I don't know, early 90s, it started out that you as an individual could rent at such a day trading farm.

00:32:59.200 --> 00:33:06.860
I call them kind of a trading desk with all the technology that you need, the data feeds and execution capabilities, and start day trading.

00:33:06.860 --> 00:33:22.520
So not being employed by a bank or a big buy-side company, you were nevertheless able to start trading on a daily basis, intraday, not by calling a broker in the morning and say, please buy 10 stocks from Apple, 20 from Amazon, whatsoever.

00:33:22.520 --> 00:33:23.740
You could do it on your own.

00:33:23.740 --> 00:33:25.740
This was kind of the first wave.

00:33:25.740 --> 00:33:39.760
And now, as I said it before, with all the programmatic APIs offered by the online brokers and so forth, I can sit here, if you would have a webcast, and I would fire up my shell or my Jupyter notebook.

00:33:39.960 --> 00:33:43.660
I would fire up the trading thing, and within minutes, I would start trading.

00:33:43.660 --> 00:33:46.260
And minutes later, I would stop trading.

00:33:46.260 --> 00:33:49.520
So it has come to the desktop, to the notebooks.

00:33:49.520 --> 00:33:56.560
Just need, frankly, just need kind of a current machine and kind of a decent internet connection.

00:33:56.560 --> 00:34:00.860
That's all you need to get started in this space as of today.

00:34:00.860 --> 00:34:08.560
It's really fascinating to think of someone firing up a Jupyter notebook and trading from it, but it makes perfect sense.

00:34:08.560 --> 00:34:10.820
Hey, everyone.

00:34:10.820 --> 00:34:11.340
Michael here.

00:34:11.340 --> 00:34:14.680
Let me take just a moment and thank one of our sponsors who makes this show possible.

00:34:14.680 --> 00:34:17.840
This portion of Talk Python To Me has been brought to you by Rollbar.

00:34:17.840 --> 00:34:21.320
One of the frustrating things about being a developer is dealing with errors.

00:34:21.320 --> 00:34:28.940
Relying on users to report errors, digging through log files, trying to debug them, or a million alerts just flooding your inbox and ruining your day.

00:34:28.940 --> 00:34:35.940
With Rollbar's full-stack error monitoring, you get the context, insight, and control you need to find and fix bugs faster.

00:34:36.540 --> 00:34:40.780
Adding the Rollbar Python SDK is just as easy as pip install Rollbar.

00:34:40.780 --> 00:34:44.500
You can start tracking production errors and deployments in eight minutes or less.

00:34:44.500 --> 00:34:54.000
Rollbar works with all the major languages and frameworks, including the Python ones, like Django, Flask, Pyramid, as well as Ruby, .NET, Node, iOS, and Android.

00:34:54.380 --> 00:35:02.620
You can integrate Rollbar into your existing workflow, send error alerts to Slack or HipChat, or automatically create new JIRA issues, pivotal tracker issues, and a lot more.

00:35:02.620 --> 00:35:05.140
They have a special offer for Talk Python To Me listeners.

00:35:05.140 --> 00:35:10.660
Visit talkpython.fm/rollbar, sign up, and get the bootstrap plan free for 90 days.

00:35:10.660 --> 00:35:13.060
That's 100,000 errors tracked for free.

00:35:13.380 --> 00:35:16.920
But, you know, just between you and me, I hope you don't encounter that many errors.

00:35:16.920 --> 00:35:18.820
Give Rollbar a try today.

00:35:18.820 --> 00:35:21.620
Just go to talkpython.fm/rollbar.

00:35:21.620 --> 00:35:29.080
So, I know for the high-frequency traders, like, latency, network latency matters.

00:35:29.080 --> 00:35:34.340
Like, they'll use microwave connections instead of fiber because they can save two milliseconds.

00:35:34.340 --> 00:35:38.460
They can get, like, a four-millisecond ping time versus a six-millisecond ping time.

00:35:38.460 --> 00:35:44.560
And they'll buy servers in, like, data centers next to the exchanges and all sorts of crazy stuff.

00:35:45.560 --> 00:35:51.000
The individuals you're talking about is probably, like, much higher, much more coarse-grained trading than that, right?

00:35:51.000 --> 00:35:55.500
Not ultra, ultra high-frequency trading, but just watching the market, right?

00:35:55.500 --> 00:35:59.460
Once again, what you're referring to, this is a game of a few.

00:35:59.460 --> 00:36:02.440
So, like, the high rollers in our space, so to say.

00:36:02.440 --> 00:36:07.660
You need millions and millions of hardware investment to get started in this space.

00:36:07.660 --> 00:36:09.960
And it's not what I would call really trading.

00:36:09.960 --> 00:36:19.060
It's, of course, called high-frequency trading, but they more or less provide trading infrastructure in the sense that they are kind of keeping up the markets.

00:36:19.060 --> 00:36:23.800
So, it's not that some of these guys says, well, Apple is a nice stock.

00:36:23.800 --> 00:36:30.080
They don't care about Apple or whether they will bring out iPhone 9 soon or 10 or 12.

00:36:30.080 --> 00:36:32.420
You know, this is not their reasoning at all.

00:36:32.420 --> 00:36:35.560
What a typical trader is all about, oh, well, I'm fascinated by Apple.

00:36:35.560 --> 00:36:38.160
I think that here and there, you know, all these things going on.

00:36:38.320 --> 00:36:43.540
Or even by quant analysis, let's have a look at the history and can we identify certain patterns?

00:36:43.540 --> 00:36:45.900
Can I trade this pattern with the Apple stock or whatsoever?

00:36:45.900 --> 00:36:48.240
High-frequency trading, they just provide markets.

00:36:48.240 --> 00:36:49.000
They're market makers.

00:36:49.000 --> 00:36:51.840
So, they trade, but for completely different reasons.

00:36:51.840 --> 00:36:59.020
They want to make money no matter what happens with the iPhone, no matter what kind of historical patterns there have been or whatsoever.

00:36:59.020 --> 00:37:02.960
They're trying to capture a one-cent change, not long-term.

00:37:02.960 --> 00:37:06.600
I think the price is going to double over the next five years or whatever, sure.

00:37:06.740 --> 00:37:09.740
They don't care about anything that typical traders would care about.

00:37:09.740 --> 00:37:10.260
Sure.

00:37:10.260 --> 00:37:13.720
So, what are some of the other areas that Python shows up in finance?

00:37:13.720 --> 00:37:15.620
Well, you name it these days.

00:37:15.620 --> 00:37:18.120
So, you have it in many.

00:37:18.120 --> 00:37:18.600
Yeah, pretty much.

00:37:18.600 --> 00:37:23.820
I mean, if you have a look at my books, for example, it's in derivatives analytics.

00:37:24.160 --> 00:37:27.040
So, pricing and risk management and simulation.

00:37:27.040 --> 00:37:32.880
You can use it thanks to advances on the software side as well as on the hardware side.

00:37:32.880 --> 00:37:41.880
So, well to slow on a pure Python level can be implemented in a numerically efficient way and fast enough way today.

00:37:41.880 --> 00:37:49.200
So, our library, for example, DX Analytics is a completely Monte Carlo simulation-based pricing library.

00:37:49.200 --> 00:37:56.500
So, it's very, if you think of Monte Carlo, it's the, from a computational point of view, the most demanding numerical method that you can have.

00:37:56.500 --> 00:37:58.940
So, it's the most general one, but this comes at the price.

00:37:58.940 --> 00:38:00.400
It's computationally really demanding.

00:38:00.800 --> 00:38:04.740
But nevertheless, with pure Python on a regular machine, once again, you can implement that.

00:38:04.740 --> 00:38:09.660
It's not that you need a cluster to do proper pricing there, not even for somehow bigger portfolios.

00:38:09.660 --> 00:38:11.640
The software and everything around that.

00:38:11.640 --> 00:38:16.580
And then, when I speak of typical regular hardware as of today, we have come a long way.

00:38:16.580 --> 00:38:19.200
So, this is fast enough to do some decent stuff.

00:38:19.200 --> 00:38:27.220
Not for the big banks with what I mentioned before, kind of the 3 million open positions that need to be re-evaluated thousands of times overnight.

00:38:27.220 --> 00:38:29.040
So, this is a different use case.

00:38:29.720 --> 00:38:33.160
But, again, you see it in principle in all areas.

00:38:33.160 --> 00:38:40.800
Be it on the retail side, where we are not involved typically, but on the quant side, in almost every area.

00:38:40.800 --> 00:38:43.320
So, it's rather the other way around.

00:38:43.320 --> 00:38:45.400
I'm just thinking of spaces where not.

00:38:45.400 --> 00:38:48.100
So, you have brought up high-frequency trading.

00:38:48.100 --> 00:38:51.360
I think this is one of the areas where you won't see that much Python.

00:38:51.660 --> 00:39:03.360
Because for the mini nanosecond, microsecond timescales, it's then still too slow, no matter what performance technology you use.

00:39:03.360 --> 00:39:04.020
Right.

00:39:04.020 --> 00:39:12.780
When you were joking about the assembly code, the one place I can see people still writing that is like a little inline assembler in some C code in high-frequency trading.

00:39:12.940 --> 00:39:13.600
Yeah, sure.

00:39:13.600 --> 00:39:15.800
I mean, this is where they use it.

00:39:15.800 --> 00:39:18.040
When I get to the hardware level, you know.

00:39:18.040 --> 00:39:22.300
For my thinking, this is a hardware game, this high-frequency space.

00:39:22.300 --> 00:39:22.520
Yeah.

00:39:22.660 --> 00:39:28.480
More than a software or financial theory game or so.

00:39:28.480 --> 00:39:32.920
So, I want to dig into your quant platform and your DX analytics library.

00:39:32.920 --> 00:39:38.440
But maybe give us like a broad view of the popular libraries, you know.

00:39:38.440 --> 00:39:41.680
In computation, we have NumPy and Pandas.

00:39:41.680 --> 00:39:44.380
What does that look like in finance?

00:39:44.380 --> 00:39:46.460
The quant platform is the first thing you mentioned.

00:39:46.460 --> 00:39:50.560
Back in the days where we started, it's kind of three years ago.

00:39:50.880 --> 00:39:56.480
Thinking of the quant platform, what we wanted to provide was kind of an interactive financial analytics environment in the browser.

00:39:56.480 --> 00:40:02.940
Because back then, our major work consisted of working with bigger companies, financial institutions.

00:40:02.940 --> 00:40:05.700
And it was always kind of the issue of deployment.

00:40:05.700 --> 00:40:12.340
Deployment in a sense that, yeah, if you want to make use of Python, there are a couple of things that you need to install.

00:40:12.340 --> 00:40:13.380
You need the toolchain.

00:40:13.380 --> 00:40:14.800
You need certain packages.

00:40:14.800 --> 00:40:19.580
You need to keep them updated and consistent and all these things.

00:40:19.660 --> 00:40:22.160
And we thought, well, we have the web technologies available.

00:40:22.160 --> 00:40:24.420
And frankly, we were not the only ones.

00:40:24.420 --> 00:40:32.220
But we focused on this Python side of things in the financial area where we said, well, let's go about and provide something in the browser.

00:40:32.220 --> 00:40:42.100
And yeah, it has evolved to our central tool somehow in the sense that not only with currently close to 10,000 people registered on the platform.

00:40:42.100 --> 00:40:47.500
Some of them is like usual with regard to the distribution heavy users, users on a daily basis.

00:40:47.500 --> 00:40:50.820
Others just registered and not using it at all.

00:40:51.080 --> 00:40:59.280
But for example, our training, our students for the training programs, they find all the resources that we provide that they need on the platform.

00:40:59.280 --> 00:41:12.740
So thinking of training for us is kind of the delivery mechanism where we not only provide static content in the sense of text written there, a little bit of code, sometimes picture slides and so forth.

00:41:12.740 --> 00:41:14.900
You can think of training stuff in a regular way.

00:41:15.160 --> 00:41:21.560
But also the videos are provided there and the ability to execute it at the same time.

00:41:21.560 --> 00:41:27.180
So if we provide there a Jupyter notebook, people just need to click and can watch the video.

00:41:27.180 --> 00:41:32.460
And alongside the video on the same platform, they execute the Python code that is shown in the video.

00:41:32.460 --> 00:41:39.780
So it's a fully integrated environment with all tools that you need for Python development and other languages as well.

00:41:39.780 --> 00:41:42.220
We have R and Julia kernels running on the platform.

00:41:42.220 --> 00:41:44.020
But Python is our focus.

00:41:44.020 --> 00:41:47.060
And I think this is why people come to the platform.

00:41:47.060 --> 00:41:47.300
Yeah.

00:41:47.300 --> 00:41:49.880
But it's the one thing on the one end, so to say.

00:41:49.880 --> 00:41:50.220
Yeah.

00:41:50.220 --> 00:41:51.020
Yeah, it's great.

00:41:51.140 --> 00:41:55.900
So basically, if you have a browser, you can do a lot of this computational stuff with no setup at all, right?

00:41:55.900 --> 00:41:59.720
And you can pick Python 2.7, Python 3, R, like you said.

00:41:59.720 --> 00:42:00.200
Really nice.

00:42:00.200 --> 00:42:00.920
Sure, sure.

00:42:00.920 --> 00:42:01.780
Yeah, I mean, this is.

00:42:01.780 --> 00:42:06.660
So we, people ask, is it, I get this asked kind of regularly.

00:42:06.660 --> 00:42:09.040
What is kind of special proprietary?

00:42:09.040 --> 00:42:11.860
When I start using your platform, is there a lock-in?

00:42:11.860 --> 00:42:14.800
Can I only use your training material, for example, on the Chrome platform?

00:42:14.800 --> 00:42:17.180
No, we just rely on open standards.

00:42:17.180 --> 00:42:18.080
So we are open.

00:42:18.080 --> 00:42:20.300
We try to live the open source culture.

00:42:20.720 --> 00:42:22.900
The Jupyter Notebook team is fantastic.

00:42:22.900 --> 00:42:24.480
So why reinvent the wheel?

00:42:24.480 --> 00:42:25.200
I never understood.

00:42:25.200 --> 00:42:29.780
There are a couple of companies out there, venture capital finance, sometimes, yes, sometimes not.

00:42:29.780 --> 00:42:33.220
They have developed their own platform, Jupyter Notebook equivalent.

00:42:33.220 --> 00:42:33.740
You know?

00:42:34.260 --> 00:42:35.340
I don't see a point in that.

00:42:35.340 --> 00:42:36.540
It's a fantastic tool.

00:42:36.540 --> 00:42:38.780
It's a fantastic team.

00:42:38.780 --> 00:42:39.620
It was behind that.

00:42:39.620 --> 00:42:41.240
And we make use of that.

00:42:41.240 --> 00:42:47.660
So we adjusted a little bit for our purposes and try to tightly integrate it to the platform, what others do as well.

00:42:47.780 --> 00:42:50.920
So it's also nothing unique about what we do.

00:42:50.920 --> 00:42:54.000
In this regard, we rely on the fantastic tools out there.

00:42:54.000 --> 00:42:55.340
But we curate it.

00:42:55.340 --> 00:42:56.400
We integrate it.

00:42:56.400 --> 00:42:59.560
We provide our proprietary content, at least there.

00:42:59.560 --> 00:43:03.900
But if people decide, well, now I've followed along this course for, let's say, 12 weeks.

00:43:04.160 --> 00:43:07.280
I want to do it on my own machine or in any other platform.

00:43:07.280 --> 00:43:07.980
It's the same thing.

00:43:07.980 --> 00:43:09.340
So there's nothing proprietary.

00:43:09.340 --> 00:43:10.920
We even have kind of this.

00:43:10.920 --> 00:43:12.540
This is what I always refer people to.

00:43:12.540 --> 00:43:18.700
We have this zip all thing where I get a huge, sometimes huge zip file of your account data and everything.

00:43:18.700 --> 00:43:20.920
And you can download it and go away.

00:43:20.920 --> 00:43:21.840
And we close it down.

00:43:21.840 --> 00:43:22.860
So it's open.

00:43:22.860 --> 00:43:23.940
And we don't charge.

00:43:23.940 --> 00:43:27.160
For individual accounts, there is no charge on the platform.

00:43:27.520 --> 00:43:30.440
That's kind of more or less a service that we provide to the community.

00:43:30.440 --> 00:43:30.960
Nice.

00:43:30.960 --> 00:43:34.760
Do you use, like, Docker internally to isolate things?

00:43:34.760 --> 00:43:35.800
Or can you talk about that?

00:43:35.800 --> 00:43:36.600
Actually, not.

00:43:36.600 --> 00:43:38.820
From the beginning, we played around with it.

00:43:38.820 --> 00:43:42.700
And we make, yeah, kind of intensive use of Docker.

00:43:42.700 --> 00:43:44.180
But not in this particular instance.

00:43:44.180 --> 00:43:45.640
We decided against it.

00:43:45.640 --> 00:43:48.140
And with kind of the JupyterHub functionality.

00:43:48.140 --> 00:43:51.860
And back when we started out, this is more or less the major reason.

00:43:51.980 --> 00:43:59.040
We decided to build the platform from scratch, which meant for us, from the Linux level, user-based level.

00:43:59.040 --> 00:44:03.980
So all rights and roles and everything is kind of dealt with on a Linux level.

00:44:03.980 --> 00:44:08.080
But we don't use it to separate things because we share stuff.

00:44:08.080 --> 00:44:11.920
We have people working together on same content things and elements and so forth.

00:44:11.920 --> 00:44:13.760
So sharing and working together.

00:44:13.760 --> 00:44:14.540
We decided.

00:44:14.540 --> 00:44:18.920
But maybe today, with all the advances in this area as well, we would decide differently.

00:44:18.920 --> 00:44:21.640
But when we started out, this was the choice we made.

00:44:21.800 --> 00:44:26.840
But still, I mean, this training that I'm giving today is about deployment.

00:44:26.840 --> 00:44:30.520
And Docker will be kind of a major part there.

00:44:30.520 --> 00:44:31.920
I'm fascinated, you know.

00:44:31.920 --> 00:44:34.720
Yeah, Docker seems to show up in so many places.

00:44:34.720 --> 00:44:35.960
Or containers, anyway.

00:44:35.960 --> 00:44:37.560
And for good reason, you know.

00:44:37.560 --> 00:44:39.420
Just think of the new world.

00:44:39.420 --> 00:44:43.160
You can run a Linux operating system on a Windows machine.

00:44:43.160 --> 00:44:44.860
This is kind of...

00:44:44.860 --> 00:44:46.700
Yeah, cats and dogs living together, right?

00:44:46.700 --> 00:44:47.980
It's the bad thing about Docker.

00:44:47.980 --> 00:44:49.020
Yeah, nice.

00:44:49.320 --> 00:44:52.820
So you talked a little bit about your DX analytics library.

00:44:52.820 --> 00:44:54.600
Do you want to talk a little bit more about it?

00:44:54.600 --> 00:44:55.800
Maybe dig into it a bit?

00:44:55.800 --> 00:45:00.760
Yeah, I mean, this whole thing is really financially and technically involved.

00:45:00.760 --> 00:45:05.780
So if you have nothing to do with derivatives pricing, it's probably nothing for you.

00:45:06.040 --> 00:45:09.020
So this is the first thing, the cautionary note, so to say.

00:45:09.020 --> 00:45:16.700
But what we try with this library is to provide a nevertheless professional analytics library based on pure Python.

00:45:16.700 --> 00:45:19.520
So we don't make use of any fancy stuff.

00:45:19.520 --> 00:45:27.440
In principle, it's more or less all about NumPy, Pandas, and the multiprocessing library for parallel processing and stuff like that.

00:45:27.440 --> 00:45:35.680
And nevertheless, we are able to do valuation and risk management for complex portfolios of derivatives instruments.

00:45:35.680 --> 00:45:38.580
And it's all based on numerical method.

00:45:38.580 --> 00:45:43.580
We can calculate, estimate all the creaks on a portfolio level on a single instrument level.

00:45:43.780 --> 00:45:50.760
Again, this is really involved, but people from our finance space, they might know and grasp what I'm talking about.

00:45:50.760 --> 00:45:52.680
And in the end, yeah, it's used.

00:45:52.680 --> 00:45:58.280
I have many, many users from around the world, but many, not many in the sense of millions.

00:45:58.280 --> 00:46:00.120
It's more maybe in the hundreds.

00:46:00.120 --> 00:46:01.740
Many as a percentage.

00:46:03.080 --> 00:46:04.300
Yeah, many as a percentage.

00:46:04.300 --> 00:46:13.460
And it's even from, I just, I'm in a regular touch with somebody from, for example, from the SEC, who's making heavy use of it.

00:46:13.460 --> 00:46:19.200
The American regular regulation authority there and other places.

00:46:19.200 --> 00:46:20.780
So it's in use.

00:46:20.780 --> 00:46:23.920
But again, this is, this targets really, really a niche.

00:46:23.920 --> 00:46:28.280
So when we talk about Python for finance, which is a niche, this is the niche of the niche.

00:46:28.280 --> 00:46:29.200
Sure.

00:46:29.200 --> 00:46:30.260
Yeah, of course.

00:46:30.260 --> 00:46:32.500
But it still is like 215 GitHub stars.

00:46:32.720 --> 00:46:33.400
That's pretty awesome.

00:46:33.400 --> 00:46:36.220
And what's, what's interesting is you've got the DX.

00:46:36.220 --> 00:46:37.920
Is that a package in there?

00:46:37.920 --> 00:46:38.420
Let me look.

00:46:38.420 --> 00:46:39.980
Yeah, it looks like a DX package.

00:46:39.980 --> 00:46:45.500
But then also coming along with that, you've got a bunch of IPython notebooks, which is really interesting.

00:46:45.500 --> 00:46:51.880
A way to like share, like, here's the package and some ways to explore it, right?

00:46:51.880 --> 00:46:52.820
Yeah, sure.

00:46:52.820 --> 00:47:01.960
I mean, this is sometimes, you know, you find on GitHub nice packages, but maybe then even kind of a quick start installation thing, but then you are lost.

00:47:02.360 --> 00:47:05.600
So we have written, I think, kind of a decent documentation.

00:47:05.600 --> 00:47:08.200
And the documentation is based on Jupyter notebooks.

00:47:08.200 --> 00:47:08.800
I don't know.

00:47:08.800 --> 00:47:16.040
It must be something like 13 or 14 Jupyter notebooks, lengthy ones, because the library is kind of powerful.

00:47:16.820 --> 00:47:24.140
And using Sphinx with the respective conversion operations, we've made up the documentation for that.

00:47:24.140 --> 00:47:25.100
That is cool.

00:47:25.100 --> 00:47:27.740
It's not that you get the static documentation or PDF.

00:47:27.740 --> 00:47:31.240
You have the executable codes with all the text also as Jupyter notebooks.

00:47:31.240 --> 00:47:35.060
And it's kind of the nicest way from my point of view to share that stuff these days, you know?

00:47:35.060 --> 00:47:42.680
Okay, so you're telling me at dx-analytics.com, that set of documentation came from, was generated from the IPv3 notebooks?

00:47:42.680 --> 00:47:43.840
Yeah, sure, sure.

00:47:43.840 --> 00:47:44.720
This whole thing.

00:47:44.720 --> 00:47:45.640
Oh, okay.

00:47:45.640 --> 00:47:46.980
Yeah, that's really awesome.

00:47:46.980 --> 00:47:47.660
How cool.

00:47:47.660 --> 00:47:48.040
Okay.

00:47:48.040 --> 00:47:49.300
Yeah, that's great.

00:47:49.380 --> 00:47:51.860
I really do find that I have that same problem.

00:47:51.860 --> 00:47:53.980
I'll go to GitHub and I'm like, oh, this is such a great library.

00:47:53.980 --> 00:47:57.700
Like, I was doing some OAuth 2-based stuff.

00:47:57.700 --> 00:48:01.500
I'm like, this is really great, but wow, how do I use it?

00:48:01.500 --> 00:48:08.380
This is really not, you know, it's just like I almost got it, but I just, there's a few more things I need to know, and it doesn't seem to have it there.

00:48:08.380 --> 00:48:09.960
So, it's cool that you have it.

00:48:09.960 --> 00:48:11.020
This is fantastic.

00:48:11.020 --> 00:48:23.260
I've even given, I think, two times talks about kind of scientific tool chain, you know, what you can do starting from Jupyter Notebook and what results and documentation, in this case, you can get out of that.

00:48:23.260 --> 00:48:29.720
For example, my last book, List of Volatility and Barriering Serialities, was written from the first sentence to the last one in Jupyter Notebooks.

00:48:29.720 --> 00:48:38.020
So, it was converted to LaTeX, and I handed in LaTeX to Wiley Finance, and they took the LaTeX and published it.

00:48:38.020 --> 00:48:41.000
And they might not have even known that it came from Jupyter.

00:48:41.000 --> 00:48:44.540
I told them, but most probably they didn't realize what it meant.

00:48:44.540 --> 00:48:46.280
They're probably like, this guy's crazy.

00:48:46.280 --> 00:48:47.200
It doesn't come from space.

00:48:47.200 --> 00:48:47.980
I don't know what he's talking about.

00:48:47.980 --> 00:48:49.120
Here, take the LaTeX.

00:48:49.120 --> 00:48:50.660
Something like that.

00:48:50.660 --> 00:48:52.220
Nice.

00:48:52.220 --> 00:48:55.420
So, some of the other stuff you've got going on, you've got a boot camp.

00:48:55.420 --> 00:48:55.820
Is that right?

00:48:55.820 --> 00:48:58.980
Is this like a one day, one week, one month?

00:48:58.980 --> 00:49:00.080
Like, what does boot camp mean?

00:49:00.080 --> 00:49:03.540
Yeah, it was just, it ended two weeks ago, the last one.

00:49:03.540 --> 00:49:04.880
We do it twice a year.

00:49:04.880 --> 00:49:10.980
Once, it's an autumn in London, and once in May in New York.

00:49:10.980 --> 00:49:12.740
And we do four days.

00:49:12.740 --> 00:49:18.400
So, this time it was from the 8th of May to the 11th of May in New York.

00:49:19.420 --> 00:49:23.020
And, yeah, it's four days of intensive Python.

00:49:23.020 --> 00:49:25.120
We start with a very introductory day.

00:49:25.120 --> 00:49:29.840
So, we have usually a couple of people that are starting out with Python.

00:49:29.840 --> 00:49:31.740
And for them, it's the first day.

00:49:31.740 --> 00:49:36.520
Then we have on the second day, we cover kind of, let's say, financial data science.

00:49:36.520 --> 00:49:37.480
We typically call it.

00:49:37.480 --> 00:49:41.080
So, to work with NumPy, to work with pandas, time series management, plotting.

00:49:41.640 --> 00:49:44.800
All their basic stuff, not too fancy in terms of data science.

00:49:44.800 --> 00:49:50.180
And day three and four are centered around the algorithmic trading side of things.

00:49:50.180 --> 00:49:57.340
So, people coming to the boot camp from day one, 9 a.m. in the morning until Thursday afternoon,

00:49:57.340 --> 00:50:02.240
they are able then to algorithmically trade on a platform that we use to this end.

00:50:02.580 --> 00:50:02.980
Wow.

00:50:02.980 --> 00:50:09.180
That's a pretty high-speed acceleration from zero to user.

00:50:09.180 --> 00:50:10.060
But that's great, right?

00:50:10.060 --> 00:50:11.060
That also speaks to Python.

00:50:11.060 --> 00:50:14.720
Like, if you did this in C++, it probably wouldn't be possible to do it that short.

00:50:14.720 --> 00:50:18.080
It would be a four-month to four-year exercise, yeah.

00:50:18.080 --> 00:50:19.600
Exactly.

00:50:19.600 --> 00:50:23.480
And then you also run the Python for Quant Finance Meetup, and that's in London?

00:50:23.480 --> 00:50:24.900
That's in London, exactly.

00:50:24.900 --> 00:50:27.200
We've grown the group to 2,000 people.

00:50:27.200 --> 00:50:28.720
It started out some three years ago.

00:50:28.720 --> 00:50:30.520
And we're really active.

00:50:30.520 --> 00:50:31.300
So, really active.

00:50:31.440 --> 00:50:33.060
We have close to 100 people per event.

00:50:33.060 --> 00:50:37.620
And I'm really grateful that Thomson Reuters is a strategic partner of this regard.

00:50:37.620 --> 00:50:40.880
They provide the venue and usually also lots of drinks afterwards.

00:50:40.880 --> 00:50:45.140
And it's really nice to see this group.

00:50:45.140 --> 00:50:51.380
And it's also related to the cultural aspect that we discussed briefly that I find it fascinating

00:50:51.380 --> 00:50:57.260
that back in the days what you had is kind of a network more or less composed of people

00:50:57.260 --> 00:51:05.180
that work or worked in the same company or sometimes even only on the same floor.

00:51:05.180 --> 00:51:08.840
You know, you know your colleagues, the floor down, the floor up.

00:51:08.840 --> 00:51:11.240
You share lunch together and so forth.

00:51:11.380 --> 00:51:16.540
But today you have this meetup movement or these open social networks.

00:51:16.540 --> 00:51:21.100
You have the opportunity to talk to people from other areas, from other banks, even other industries.

00:51:21.100 --> 00:51:22.440
You can exchange ideas.

00:51:22.440 --> 00:51:29.280
You see stuff that's going on in other industries, in other companies when they're open and not allowed to talk about it.

00:51:29.680 --> 00:51:30.860
And it's kind of fascinating.

00:51:30.860 --> 00:51:32.400
People always thank me.

00:51:32.400 --> 00:51:37.040
A couple of people have said, well, I'm more or less the only one in my department, my bank, who uses Python.

00:51:37.040 --> 00:51:43.820
I'm really enjoying to have here the opportunity to exchange ideas and to talk to others who do the same stuff I do.

00:51:43.820 --> 00:51:47.000
But in my bank, there are not that many people, you know.

00:51:47.560 --> 00:51:54.520
And all these stories, you know, open social networks is kind of a nice movement that I really enjoy being part of.

00:51:54.520 --> 00:51:55.360
I really enjoy it.

00:51:55.360 --> 00:51:58.040
Well, I think it serves a super important role.

00:51:58.040 --> 00:51:58.800
I think you're right.

00:51:58.800 --> 00:52:11.820
There are a lot of people, whether it's finance, web development, mechanical engineering, whatever, where there's just one or two people that do Python or whatever it is that you're interested in.

00:52:12.400 --> 00:52:20.060
And going to these meetup slates, you find your tribe and not just be that weird person in the corner that works in that language without curly braces.

00:52:20.060 --> 00:52:21.760
Yeah, exactly, exactly.

00:52:21.760 --> 00:52:22.940
Yeah.

00:52:22.940 --> 00:52:24.400
And you learn quite a bunch.

00:52:24.400 --> 00:52:31.160
So, I mean, usually it's, I would say it's high level talks, you know, it's not kind of nonsense that's presented there.

00:52:31.160 --> 00:52:35.320
It's high level talks presented by experts in their fields.

00:52:35.320 --> 00:52:44.860
And, yeah, and times are changing that fast that picking up a book, you can be convinced that typically this is already a little bit dated and rusty.

00:52:44.860 --> 00:52:50.840
So, here you get kind of the latest, the greatest, the cutting edge, and even sometimes stuff that is not even out there, you know.

00:52:50.840 --> 00:52:55.840
People talking about what they're working on and what might come out in the near future.

00:52:55.840 --> 00:52:57.700
And they say, well, I was thinking of that.

00:52:57.860 --> 00:53:02.440
And then we'll tell my boss about this and that, you know, all these kind of things that are going on there.

00:53:02.440 --> 00:53:05.580
Exchange of information, getting new ideas, seeing what's going on.

00:53:05.580 --> 00:53:07.420
So, keep learning curve.

00:53:07.420 --> 00:53:08.860
Yeah, it's really exciting.

00:53:08.860 --> 00:53:19.380
And it's good to at least see some of the finance industry taking the open source vibe and, like, you know, using it internally, if not the huge banks, which I understand why.

00:53:19.860 --> 00:53:22.320
So, let me ask you, you know, we're kind of getting near the end of the show.

00:53:22.320 --> 00:53:23.580
Let me ask you one more question.

00:53:23.580 --> 00:53:26.280
Then there's two questions I always ask at the end.

00:53:26.280 --> 00:53:32.020
And the last one specifically for you I wanted to ask was about AI.

00:53:32.020 --> 00:53:38.100
You know, AI and machine learning, this is something that it's felt like, you know, kind of like fusion.

00:53:38.100 --> 00:53:41.600
It's always 30 years in the future, right?

00:53:41.600 --> 00:53:45.960
No matter when you ask, it's way out in the future, even though it's definitely coming.

00:53:46.580 --> 00:53:52.620
But I feel like the last two years, two or three years, things are really starting to unlock and machines are really starting to do a lot.

00:53:52.620 --> 00:53:54.220
We were getting self-driving cars.

00:53:54.220 --> 00:54:01.640
We're getting artificial intelligence that are better than radiologists at discovering cancer.

00:54:01.640 --> 00:54:06.800
What's it going to look like when that finally clicks into place for the financial industry?

00:54:06.800 --> 00:54:08.020
And has it yet?

00:54:08.020 --> 00:54:09.060
Yeah, it's a good question.

00:54:09.060 --> 00:54:13.740
And indeed, the question I'm currently really, really interested in.

00:54:13.860 --> 00:54:17.460
So I just yesterday finished another book on the singularity.

00:54:17.460 --> 00:54:31.680
And in particular, the day before I gave my introductory webinar about the upcoming algorithmic trading certificate program, where I said, well, there are two things.

00:54:31.680 --> 00:54:35.480
So the one thing is that machine learning and algorithmic trading are not too different.

00:54:35.480 --> 00:54:38.760
Actually, they are more or less process wise and from the approach, the same thing.

00:54:38.880 --> 00:54:43.840
So you start out with data, algorithms and hardware in both cases.

00:54:43.840 --> 00:54:52.340
You then have kind of this big step in between where you're at least in an algorithmic trading or finance, you have this optimization or your training model.

00:54:52.340 --> 00:54:54.740
You have learning, you have deep learning.

00:54:54.740 --> 00:54:57.540
You do your testing, you do your validation.

00:54:57.540 --> 00:54:58.860
So this is the middle step.

00:54:58.860 --> 00:55:14.960
And the third pillar then is in machine learning that you try to create predictions that are in line with reality, with the tastes of people, or to refer to your example, to have self-driving cars.

00:55:14.960 --> 00:55:16.860
And you say, well, now it's time to turn left.

00:55:16.860 --> 00:55:18.180
Now it's time to turn right.

00:55:18.540 --> 00:55:20.820
And it's all about automation in the end.

00:55:20.820 --> 00:55:27.100
You know, you train these models not to have them sit around and to just give answers when you ask them.

00:55:27.100 --> 00:55:28.860
It's about automating things.

00:55:28.860 --> 00:55:31.000
A self-driving car is supposed to drive.

00:55:31.000 --> 00:55:33.660
So to do it on its own.

00:55:33.660 --> 00:55:35.620
And the same is true for algorithmic trading.

00:55:35.620 --> 00:55:37.360
The third step there is to trade.

00:55:37.360 --> 00:55:41.580
And to algorithmically trade in general means to automatically trade.

00:55:41.580 --> 00:55:46.500
So the two things are, from a conceptual point of view, more or less the same.

00:55:46.500 --> 00:55:52.140
So it's the same approach, same things, same algorithms these days that are used there.

00:55:52.140 --> 00:55:55.840
Maybe in finance we have a few others, like rules of thumb, whatever.

00:55:55.840 --> 00:55:59.720
But from this conceptual point of view, it's the same thing.

00:55:59.720 --> 00:56:00.940
So this is the one area.

00:56:00.940 --> 00:56:01.780
Not too different.

00:56:01.780 --> 00:56:10.760
And the second thing is that I'm convinced that before we see the general singularity, the day when kind of machines are taking over,

00:56:10.760 --> 00:56:17.940
in the sense that we will have beyond human level intelligence and maybe even consciousness built into a machine,

00:56:17.940 --> 00:56:22.220
we will see, let's say, niche or specific singularities.

00:56:22.220 --> 00:56:26.560
And even if you Google this up, there is kind of the expression of a financial singularity,

00:56:26.560 --> 00:56:33.500
which then means that the machines are making markets, are trading and doing all the things and are much better.

00:56:34.500 --> 00:56:42.360
I sometimes use the example when you read even papers from the 70s or whatever, research papers about models and so forth.

00:56:42.360 --> 00:56:50.860
They typically start with certain assumptions when they say, well, let's assume everybody acting in the market has complete information.

00:56:50.860 --> 00:56:53.620
So this is a typical financial assumption, complete information.

00:56:53.620 --> 00:57:01.860
In a model context means that nothing is unknown, hidden or whatsoever, you know, you know, if the market can go up and down, you know that it can go up and down.

00:57:01.860 --> 00:57:02.720
This is what is meant.

00:57:02.720 --> 00:57:06.920
But complete information in our age has changed kind of dramatically.

00:57:07.320 --> 00:57:20.240
And we will see machines, at least in the financial field, that will have something like complete information in a sense that they will have everything that is out there that is relevant for a specific decision at hand.

00:57:20.240 --> 00:57:29.480
And for sure, we all know that we human beings are not really well suited to crunch, let's say, gigabytes, terabytes or petabytes of data to come up with an informed decision about that.

00:57:29.600 --> 00:57:40.280
And I myself have started kind of an internal research project where I've picked out from one online platform that provide historical data, let's say, for free.

00:57:40.280 --> 00:57:45.640
And even with the demo accounts, you can get their data, the historical data I have.

00:57:45.640 --> 00:57:48.120
And I finished this process on kind of a cloud instance.

00:57:48.120 --> 00:57:51.500
I've collected all the data that they provide back to, I don't know, 2001.

00:57:51.500 --> 00:57:54.760
Five second data for all the instruments traded there.

00:57:54.760 --> 00:57:57.780
So this first step, you see, it's simple.

00:57:57.780 --> 00:58:03.020
And with a few bucks only, you are able to collect all the financial data that is out there.

00:58:03.020 --> 00:58:08.080
If you say all the relevant data, I would say, I don't know, probably not, because there's news and there's other stuff.

00:58:08.080 --> 00:58:10.120
But at least it's all the data.

00:58:10.120 --> 00:58:13.800
It's tons of gigabytes of data that you can collect there.

00:58:13.800 --> 00:58:19.360
And you have now the machines that are able to process this more or less in real time.

00:58:19.360 --> 00:58:26.840
So first, I would say AI and machine deep learning and all these nice technologies have changed the place anyways.

00:58:26.840 --> 00:58:28.520
So it's not kind of coming.

00:58:28.520 --> 00:58:29.340
It's there.

00:58:29.340 --> 00:58:31.060
This is the one thing.

00:58:31.060 --> 00:58:42.620
And I see that before we see the general singularity in a sense that we have the big machine as depicted in, let's say, Terminator or 2001 Odyssey or what?

00:58:42.620 --> 00:58:50.120
We have so many science fiction movies which have the machine, the superhuman intelligence, AI doing things.

00:58:50.120 --> 00:58:57.080
We will see kind of industry niche specific singularities and the financial place will be one of the first.

00:58:57.080 --> 00:59:00.280
The incentives are definitely there to get it right.

00:59:00.280 --> 00:59:05.040
It's going to be a wild world if that does come out, right?

00:59:05.140 --> 00:59:09.560
I mean, now it's maybe hard to understand why an algorithm does what it does.

00:59:09.560 --> 00:59:14.580
But when it's a super complicated AI, you won't know why it's trading.

00:59:14.580 --> 00:59:20.040
You'll just have to, you know, kind of hope it's doing the right thing or continue to teach it.

00:59:20.040 --> 00:59:22.760
And then, you know, you gave it this historical data.

00:59:22.900 --> 00:59:37.580
But as AIs get better at sentiment analysis, text, speech, understanding, visual understanding, they could pull in all sorts of social data, all sorts of news data, real time, CNBC, CNN, MSNBC.

00:59:37.580 --> 00:59:49.140
Like, look at all these news channels coming in and maybe capture a news event from the feed before it actually appears in the market, right?

00:59:49.140 --> 00:59:51.400
I mean, there's just amazing stuff there, yeah.

00:59:51.820 --> 00:59:57.740
Sure, this is kind of, I'm a big fan of the show Person of Interest, where the whole background story is about such a machine.

00:59:57.740 --> 01:00:02.780
And when they talk about there is this new machine coming up beyond the machine, it's called Samaritan.

01:00:02.780 --> 01:00:16.000
And when they talk about, do we give them access to the data streams, you know, this is kind of, once you have the machine and the machine gets access to it, is exactly what you're describing, then these things might happen.

01:00:16.000 --> 01:00:19.520
And we have kind of reached a state where we can simply give access.

01:00:19.860 --> 01:00:27.620
So a real world example, one of my partners, I mentioned them before in the context of the meetup is Thomson Reuters.

01:00:27.620 --> 01:00:32.880
And they just released the beta version of a Python wrapper for the new API.

01:00:32.880 --> 01:00:45.220
And the API, the new one, it's a multi-year project that they've implemented there, gives you programmatic access to the complete data universe of Thomson Reuters, which means all the historical data.

01:00:45.220 --> 01:00:45.580
Wow.

01:00:46.020 --> 01:00:56.240
In structured form, as well as an unstructured form, which means news, blah, blah, blah, as well as just stock prices on a tick data level, tick data level, you know.

01:00:56.240 --> 01:00:59.460
And to the real-time feed.

01:00:59.460 --> 01:01:03.860
So real-time news, real-time streaming data, and then, and then, and so.

01:01:05.200 --> 01:01:11.100
To be able to provide programmatic access, this is one thing that we have reached already, you know.

01:01:11.100 --> 01:01:18.400
And if you have the machine and you plug them together, strange things, amazing things, good things, bad things might happen.

01:01:18.400 --> 01:01:21.280
Many, many, many things.

01:01:21.280 --> 01:01:24.900
It's going to be an interesting time that we're going to live through, I'm sure.

01:01:25.100 --> 01:01:34.260
Yeah, I'm excited about it, especially in this algorithmic trading field, because, talked about it, barriers of entry are low, and you have the real markets, you know, you connect to the markets.

01:01:34.260 --> 01:01:37.860
It's not like kind of a physicist having pen and paper and thinking of the universe.

01:01:37.860 --> 01:01:40.820
You have the universe, and you can play in the universe.

01:01:40.820 --> 01:01:47.220
You can fly your spaceship through it just with your MacBook on your desktop and the internet connection.

01:01:47.220 --> 01:01:54.020
You're able to participate and to test your ideas and to work with the data and to collect all the data and to see what's in there.

01:01:54.680 --> 01:01:55.360
Fascinating.

01:01:55.360 --> 01:01:56.040
All right.

01:01:56.040 --> 01:01:57.260
That's very fascinating.

01:01:57.260 --> 01:01:59.000
All right, let's leave it there for the show.

01:01:59.000 --> 01:02:00.940
But I have two more questions for you.

01:02:00.940 --> 01:02:01.840
You can get out of here.

01:02:01.840 --> 01:02:08.680
One, I think I can guess on this, looking at your GitHub repo, but if you're going to write some Python code, what's your favorite editor?

01:02:08.680 --> 01:02:09.620
I'm using two.

01:02:09.620 --> 01:02:14.220
What I'm using most is Wim, because I have it on every platform, and it's really efficient.

01:02:14.220 --> 01:02:18.840
I even write my current training material in Wim, so it's not only for coding.

01:02:18.840 --> 01:02:24.220
I also write in it for a couple of reasons, but I'm also using for certain things like, I don't know why, but for web stuff.

01:02:24.260 --> 01:02:25.100
I don't know why, but for an HTML line.

01:02:25.100 --> 01:02:25.540
I don't know.

01:02:25.540 --> 01:02:27.680
I'm exclusively using Supply.

01:02:27.680 --> 01:02:34.280
So I used to Supply for many, many things, but it's now down to a couple of certain things.

01:02:34.280 --> 01:02:36.440
But Wim is my favorite these days.

01:02:36.440 --> 01:02:37.120
All right, cool.

01:02:37.400 --> 01:02:41.020
And we now have over 100,000 packages on PyPI.

01:02:41.020 --> 01:02:46.360
What's one that maybe people haven't heard of, maybe something from the financial space that they should check out?

01:02:46.360 --> 01:02:50.220
My favorite, when I refer other people to our industry, is Pandas.

01:02:50.220 --> 01:02:54.720
So I think Pandas has been a major, major breakthrough for our industry.

01:02:54.960 --> 01:02:59.960
This is the most fantastic package we have around to do finance stuff.

01:02:59.960 --> 01:03:02.400
So I would pick this as my favorite one.

01:03:02.400 --> 01:03:03.080
All right.

01:03:03.080 --> 01:03:03.660
Awesome.

01:03:03.660 --> 01:03:04.660
Definitely a good one.

01:03:04.660 --> 01:03:08.180
I didn't realize the finance origin, so that's cool to learn.

01:03:08.180 --> 01:03:09.340
All right.

01:03:09.340 --> 01:03:10.300
So final call to action.

01:03:10.300 --> 01:03:16.460
People want to get involved in Python or finance for Python and apply their Python skills to it.

01:03:16.460 --> 01:03:17.620
How do they get started?

01:03:17.620 --> 01:03:21.960
It's a little bit self-centered, but since we've been working since 10 years, and even if you Google Python for finance,

01:03:21.960 --> 01:03:29.140
you probably end up with 40 hits at the Google page out of 50 on the first page pointing to our material.

01:03:29.140 --> 01:03:30.860
So pick up a book.

01:03:30.860 --> 01:03:33.140
When I started out, there was no book around.

01:03:33.140 --> 01:03:37.000
There are good ones available, not only mine.

01:03:37.000 --> 01:03:40.140
Go to my private webpage, hillpish.com.

01:03:40.220 --> 01:03:45.320
You find 100 talks plus with Jupyter Notebooks, with videos, with whatsoever.

01:03:45.320 --> 01:03:49.840
This is kind of a study program in and of itself, I would assume.

01:03:49.840 --> 01:03:51.160
All for free.

01:03:51.160 --> 01:03:52.820
All the resources are for free.

01:03:52.820 --> 01:03:54.040
Yeah, actually, that's a good point.

01:03:54.040 --> 01:04:00.480
There are a lot of videos on YouTube that you've done, a lot of conference talks, a lot of tutorials.

01:04:00.480 --> 01:04:02.720
So that's a good place to get started for sure.

01:04:02.720 --> 01:04:03.400
Yeah, sure.

01:04:03.400 --> 01:04:09.020
And usually during a talk, it's not kind of, you know, that you need to invest for like, let's say, weeks or months.

01:04:09.640 --> 01:04:10.460
It gives you a good overview.

01:04:10.460 --> 01:04:11.840
And you say, well, this is something for me.

01:04:11.840 --> 01:04:14.240
So I go about it and look up the details.

01:04:14.740 --> 01:04:21.880
And of course, we provide everything else that is needed, like online trainings, starting at very low prices.

01:04:21.880 --> 01:04:23.240
Some stuff is even free.

01:04:23.240 --> 01:04:27.120
We have a free email course about Python for Finance and many, many others.

01:04:27.120 --> 01:04:28.320
So just visit our website.

01:04:28.320 --> 01:04:31.480
And from there, you find other resources to get started.

01:04:31.840 --> 01:04:41.120
It's actually our business to get people started and to make people better in Python for Finance and algorithmic trading, which is the main focus these days.

01:04:41.120 --> 01:04:41.720
Yeah, awesome.

01:04:41.720 --> 01:04:43.520
And if you're in London, check out the meetup, right?

01:04:43.520 --> 01:04:44.260
Sure, sure.

01:04:44.260 --> 01:04:45.220
Come along, come along.

01:04:45.220 --> 01:04:48.460
We're planning the next one towards the end of June, actually.

01:04:48.460 --> 01:04:49.500
Yeah, we are already in June.

01:04:50.040 --> 01:04:55.740
So be sure to have signed up to our meetup group and you will receive information in due time.

01:04:55.740 --> 01:04:59.460
All right, Eve, I'll be sure to put all those things in the show notes so people can find them.

01:04:59.600 --> 01:05:03.620
Thanks so much for sharing all your experience in finance with Python.

01:05:03.620 --> 01:05:04.640
Thanks for having me.

01:05:04.640 --> 01:05:05.600
Great time.

01:05:05.600 --> 01:05:06.080
Thank you.

01:05:06.080 --> 01:05:06.740
Yep, you bet.

01:05:06.740 --> 01:05:06.960
Bye.

01:05:06.960 --> 01:05:10.860
This has been another episode of Talk Python To Me.

01:05:10.860 --> 01:05:16.660
This week's guest has been Eve Hilpish, and the episode's been sponsored by Linode and Rollbar.

01:05:16.660 --> 01:05:18.500
Thanks to them both for supporting the show.

01:05:18.500 --> 01:05:22.800
Linode is bulletproof hosting for whatever you're building with Python.

01:05:22.800 --> 01:05:27.160
Get your four months free at talkpython.fm/Linode.

01:05:27.520 --> 01:05:29.680
Just use the code Python17.

01:05:29.680 --> 01:05:32.580
Rollbar takes the pain out of errors.

01:05:32.580 --> 01:05:40.300
They give you the context and insight you need to quickly locate and fix errors that might have gone unnoticed until your users complain, of course.

01:05:40.300 --> 01:05:47.440
As Talk Python To Me listeners, track a ridiculous number of errors for free at rollbar.com slash Talk Python To Me.

01:05:47.440 --> 01:05:49.880
Are you or a colleague trying to learn Python?

01:05:49.880 --> 01:05:54.540
Have you tried books and videos that just left you bored by covering topics point by point?

01:05:54.960 --> 01:06:03.120
Well, check out my online course, Python Jumpstart, by building 10 apps at talkpython.fm/course to experience a more engaging way to learn Python.

01:06:03.120 --> 01:06:10.480
And if you're looking for something a little more advanced, try my WritePythonic code course at talkpython.fm/pythonic.

01:06:11.020 --> 01:06:12.740
Be sure to subscribe to the show.

01:06:12.740 --> 01:06:14.920
Open your favorite podcatcher and search for Python.

01:06:14.920 --> 01:06:16.160
We should be right at the top.

01:06:16.160 --> 01:06:25.460
You can also find the iTunes feed at /itunes, Google Play feed at /play, and direct RSS feed at /rss on talkpython.fm.

01:06:25.880 --> 01:06:30.560
Our theme music is Developers, Developers, Developers by Corey Smith, who goes by Smix.

01:06:30.560 --> 01:06:37.260
Corey just recently started selling his tracks on iTunes, so I recommend you check it out at talkpython.fm/music.

01:06:37.260 --> 01:06:42.600
You can browse his tracks he has for sale on iTunes and listen to the full-length version of the theme song.

01:06:42.600 --> 01:06:44.700
This is your host, Michael Kennedy.

01:06:44.700 --> 01:06:45.980
Thanks so much for listening.

01:06:45.980 --> 01:06:47.160
I really appreciate it.

01:06:47.160 --> 01:06:49.300
Smix, let's get out of here.

01:06:50.540 --> 01:06:53.580
Stating with my voice, there's no norm that I can feel within.

01:06:53.580 --> 01:06:56.420
Haven't been sleeping, I've been using lots of rest.

01:06:56.420 --> 01:06:59.240
I'll pass the mic back to who rocked it best.

01:06:59.240 --> 01:07:00.980
I'm first developers.

01:07:00.980 --> 01:07:07.980
I'm first developers.

01:07:07.980 --> 01:07:11.280
Developers, developers, developers, developers.

01:07:11.280 --> 01:07:11.520
you

01:07:11.520 --> 01:07:12.020
you

