#300: Building a data science startup (panel) Transcript
00:00 You've heard that software developers and startups go hand in hand, but what about data scientists?
00:04 Of course they do. But how do you turn your data science skill set into a data science
00:09 business skill set? What are some of the areas ripe for launching such a business into?
00:14 On this episode, I welcome back four prior guests who have all walked their own version of this path
00:20 and are currently running successful Python-based data science startups.
00:24 Ines Montani from Explosion AI, Matthew Rockland from Coiled, Jonathan Morgan from Yonder AI,
00:29 and William Stein from CoCalc. This is Talk Python to Me, episode 300, recorded January 7th, 2021.
00:37 Welcome to Talk Python to Me, a weekly podcast on Python, the language, the libraries, the ecosystem,
00:55 and the personalities. This is your host, Michael Kennedy. Follow me on Twitter
00:59 where I'm @mkennedy, and keep up with the show and listen to past episodes at talkpython.fm,
01:04 and follow the show on Twitter via at Talk Python.
01:07 This episode is brought to you by Sentry and Linode. Please check out what they're offering
01:12 during their segments. It really helps support the show.
01:14 Before we get to our discussion, just one quick announcement. We started live streaming the
01:18 recordings of Talk Python to Me episodes on YouTube. If you're part of the live stream,
01:22 you'll have a chance to ask questions, and your comments might get featured on the air.
01:25 Just visit talkpython.fm/youtube to subscribe to the channel and see upcoming and past live
01:31 streams. Now, on to the show. Hey, everyone, and welcome to Talk Python to Me. You all have
01:35 been here before, so I should say welcome back. William Stein, Matthew Rocklin, Jonathan Morgan,
01:39 and Ines Montani. Welcome.
01:41 Thanks for having us.
01:42 Thank you.
01:42 Yeah, I'm happy to be here.
01:43 Yeah, thanks. Great to be back.
01:44 Yeah, it's great to be back with you all talking. And you all have done some really,
01:49 really cool work around creating something out of this open source community, some products,
01:56 some platforms, some tools that people can use. And so many folks have asked me, hey,
02:01 if I'm a data scientist, how could I do something like that? How could I create an API, a library,
02:07 a company that maybe I could slowly make more of a job and less of a hobby? So I think it's
02:13 going to be great to get some insight from each and every one of you on that one.
02:16 Maybe more of a job than you actually want.
02:17 Yeah, exactly. It's a job with a lot of flexibility, but not necessarily a lot of time off,
02:23 more like slower and more intense time. So I guess maybe let's just start with a little bit of
02:28 background. You all have been on the show, like I said, a lot of people are familiar with all of your
02:33 work. But let's just go around. Maybe William, start with you. Just a quick bit of background
02:38 about yourself.
02:38 I've been really into programming since the 80s. I did a PhD in mathematics, which I finished in 2000.
02:45 And then I was a math professor for about 17 years, Harvard, UC San Diego, University of Washington,
02:52 doing number three. And along the way, I founded SageMath, which is an open source math software project.
02:58 And I also launched Cython, which is a way of making Python faster. Though I didn't start it,
03:04 I just launched it. I came up with the name and got various people to really make it a big deal.
03:08 Oh, wow. I had no idea. We use Cython very heavily. I didn't realize.
03:13 The predecessor of Cython Pyrex was the reason I chose Python for Sage as to other languages.
03:19 And then I put a lot of work into getting the project off the ground and more popular.
03:24 That's super cool. Cython really should be used more. I think it makes such
03:28 a difference in the right use case.
03:29 Yeah. And it is used a lot, which is awesome. Yeah.
03:33 It's used everywhere. Yeah.
03:34 Yeah. Actually, I often tell people like, you know, if we check which libraries that you use on a daily
03:39 basis, actually use Cython under the horn, you'd be surprised.
03:41 Yeah.
03:42 In 2012, I started something that I initially called SageMath Cloud and then later CoCalc,
03:48 which is what I'm doing full time now. And that was about trying to make it easy for
03:52 people to use SageMath and lots and lots of other software through their web browser collaboratively.
03:57 That's why you're here today, because you've done some great stuff there. Matthew Rocklin.
04:00 Yeah. Briefly, I was in grad school for scientific computing things. I went to work at National
04:05 Labs for a bit and then quit and went to Anaconda, or Continuum at the time, which is sort of a
04:10 for-profit Python company. A bunch of us sort of converged in Anaconda when Python was really
04:16 taking off. While I was there, I started working on a project called Dask for parallel computing.
04:20 So I generally think about how to take Python and make it run on many computers efficiently
04:24 and how to like take all of-
04:26 Dask is like pandas without limits, in a sense.
04:29 There's big pandas, but there's other stuff too. I think a lot of Dask's work is actually
04:32 not just accelerating pandas, but accelerating like the thousand packages that we all work
04:36 on together in this ecosystem. So about half of my effort has been technological and about
04:41 half of my effort has been sort of more social, cultural.
04:43 Fantastic.
04:44 I then went to NVIDIA for, I was at Anaconda for a long time. I went to NVIDIA for a year,
04:48 worked on Rapids, sort of like a GPU data science thing with Dask, built out the Dask team there.
04:53 And then about a year ago, I split off and made Coiled, which is a company based around it.
04:57 Yeah. Awesome. I'm looking forward to talking about Coiled with you as well. Jonathan Morgan.
05:00 It's been too long since you've been on the show, by the way.
05:03 It has. It's been a little while. So my background's a little bit different. I was a self-taught,
05:08 very much a generalist. I was a self-taught software engineer in the early 2000s. When people started to
05:12 win web development was beneath a serious software engineer, I was like happy to do it. I was like,
05:18 great. If it's beneath you, like I can probably teach it to myself. And then really got into Python
05:22 for that reason. That was right around when like Django was popular at the time. And that led to a
05:27 career in, I called it data science. It was probably more like machine learning engineering.
05:30 Now that the field has matured and we're getting more specific about what those roles are.
05:35 And then most of the people here would probably know me from the podcast that I had called
05:40 partially derivative with Chris Albin and then Vidya Spandana. And we, it was kind of a-
05:44 Yeah, that was a great podcast. Yeah. I enjoyed listening to it.
05:46 We had fun. We had fun. I mean, it was about machine learning and also drinking. And recently
05:50 it came back into the public eye because it turns out that John Ossoff was a listener in 2014
05:55 and he tweeted at us and everybody, I got a bunch of notifications on social media and I was like,
06:01 I don't know what's going on. And it turns out that everybody was like making jokes about
06:04 this tweet that he made comparing our theme music to the radio from Grand Theft Auto 3.
06:09 And it's just a small piece, a small piece of the news of the week. I, you know,
06:14 I'm just excited that we were involved.
06:15 You're a small part of the political landscape here in Europe.
06:18 In a way, we're just like a little bit part of the magic and the victory.
06:23 And in terms of actually turning it into a business, eventually turned a project that Chris and I had
06:27 been working on into what we thought would be an automated machine learning company and has since
06:31 been a company focused on using machine learning to identify agenda-driven groups online, misinformation
06:37 and disinformation, helping companies deal with it.
06:39 I was joking about your podcast tweet, but you're doing some legitimately important stuff around like
06:45 all this information spreading stuff.
06:46 Well, we hope so. We're trying.
06:48 Awesome.
06:49 Ines.
06:49 Yeah.
06:50 Hello again.
06:50 Happy to have you here.
06:52 I'm excited to be back.
06:52 And especially because last time I was on your show, I did talk about running a business.
06:56 So it's nice to come back maybe, I don't know, is it two years already?
06:59 I don't know.
07:00 A bit after.
07:01 Yeah, it's something like that.
07:02 Yeah.
07:02 And talk about what we've been up to.
07:04 So yeah, basically, I actually, I got into programming via web development as well.
07:09 So I don't really have the typical software, engineering, computer science background.
07:12 I just spent my teenage years making websites because it was fun.
07:16 And then I did media science and linguistics, which kind of had nothing to do with software
07:21 engineering like that.
07:22 And I ended up in NLP, natural language processing, by accident because it combined my passions for
07:27 language and programming.
07:28 And then Python was the obvious choice.
07:31 Obviously, Siphon as well.
07:32 And that's how I ended up here.
07:34 And then together with my co-founder, Matt, who is also the author of Spacey, we started
07:38 a company in 2016 around it, which is called Explosion.
07:42 And yeah, I would say we're probably best known for Spacey, which is an open source library for
07:47 natural language processing in Python.
07:49 But we also built other stuff.
07:51 We basically built developer tools for machine learning.
07:53 So our other commercial product is called Prodigy.
07:56 And it's an annotation tool that helps people create training data for models, which is a very
08:01 important aspect as well.
08:02 And so that's what we're doing.
08:03 Yeah, that's awesome.
08:04 And like Matt, you have this open source library that is forming the kernel or the seed of the
08:10 company that you guys are working on.
08:12 So maybe that's a good place to jump into it.
08:14 The thing that I want to bring out of this episode for everyone listening, and it's really
08:18 relevant for folks in a data science world, but also I think anyone who is a developer in
08:24 the broad sense, and they want to create their own thing.
08:28 They have got some idea, some project that really has to do with developers.
08:33 How did you do it?
08:34 What did you create?
08:35 So we're going to talk about your story and how you built it.
08:37 So let's just, you know, jump into Explosion.
08:39 You mentioned a little bit about it.
08:40 What's the history and what is the product that you would say that you guys sell?
08:44 Yeah.
08:45 So basically, a very quick recap of the history.
08:47 It started with my co-founder being in academia, researching computational linguistics and realizing
08:53 that people were using his research code for real world stuff.
08:57 And he was like, wait, no, that's not what research code is supposed to do.
09:00 It's supposed to print a number at the end.
09:01 That's it.
09:02 Like, nah, this wasn't made for this.
09:04 But it was clear that there was an interest.
09:06 So he basically left academia to write Spacey, which is a library that's focused a lot more
09:11 on production use, as opposed to many other research libraries that focus more on doing
09:16 natural language processing research.
09:18 And so I met him sort of by accident as well.
09:21 We started working together, started, I joined the Spacey development core team, which was
09:26 for a very long time, only the two of us.
09:28 But we also quickly saw, okay, there's an, we've always planned to start a business around
09:32 it.
09:32 That was from day one.
09:34 We were like, okay, let's actually, there's a lot of money in there.
09:37 There's a lot of interest in there.
09:38 We can do this.
09:39 So then we basically, we launched Prodigy, which is an annotation tool.
09:43 And that's our first commercial product.
09:44 That's how we started.
09:45 That's how we're making money.
09:47 So we're basically saying, hey, if you're a power user of our other tools, and we can
09:50 clearly show you, we can build good software, you likely want to train your own models and
09:55 take it one step further.
09:56 And we have a product for you.
09:58 We have a tool for you that you can use.
10:00 And that's the commercial offering.
10:02 We very much like giving people, you know, we believe that people should have transparent
10:07 tools that enabled them to build custom stuff, not like cloud services or models that they
10:12 can't control or data that they have to send to us that we can then use for something.
10:16 And we also think that developers should really own what they ship and what they do.
10:21 And yeah, this is also for us, this building, allow providing these types of tools for people
10:26 that really you can just download.
10:28 That's the thing with Prodigy.
10:29 You literally can buy it, download it, you own it, you have it.
10:32 Like back in the day when Adobe still gave you Photoshop, and you had Photoshop, and you're
10:36 like, great, I can work with that.
10:37 Now it's all like in the cloud.
10:39 I've paid so much money to Adobe for the tools.
10:41 And I don't know if next month I'll have it or not.
10:43 Do I?
10:44 No, exactly.
10:44 And I think for machine learning, that's really backwards, because it's you should be able
10:48 to pick up your project in half a year.
10:50 And it should still work.
10:51 And it should be able to keep working with the tooling, at least to some extent.
10:54 So that's what motivated like our first product.
10:57 And it also meant that if we want to run a company that way, we do have to have a sustainable
11:01 business model.
11:02 Like we're currently, we're 100% independent, and we're also profitable, which also means
11:06 we can give our user base that sort of security.
11:09 And we can say, look, we're a sustainable project.
11:11 We're not, you're not the guinea pigs.
11:12 We're not treating you as a stepping stone to our grand exit.
11:15 And then we're going to shut everything down and leave you alone.
11:18 That's not what we're doing here.
11:19 Yeah.
11:20 I also think you've got a really popular product with Spacey.
11:23 And I think historically, there's been a lot of apprehension around, well, there's this
11:31 commercial thing and it's mixing in with my open source and what evil influence will it
11:37 bring in.
11:37 But to me, when you've got libraries like that, but you have a company who has a really strongly
11:43 vested interest in that just being better and still keeping it open source, but now you've
11:46 got ways to get more.
11:48 I think that's a really positive thing for these open source libraries.
11:51 Yeah.
11:52 No, and I think that was definitely the motivation.
11:53 That's also why we didn't do any open call thing where like, oh, parts of the open source
11:58 library are free and then you have to pay if you're like a commercial.
12:01 Or support as well.
12:03 There's some support that's great, but often it means you only get to provide support if
12:06 your documentation is bad enough that people need support.
12:09 And I think that's fundamentally about business models.
12:11 Yeah, absolutely.
12:11 Awesome.
12:12 All right.
12:13 I'm going to just go along with the tab order in our screen share here.
12:17 So Jonathan, tell us about Yonder.
12:20 You gave us a hint, as everyone did, where we're going with this.
12:22 But the internet is alive, I hear.
12:24 A long time ago, I started doing some research using early Python machine learning tools to
12:30 try and work with other subject matter experts to get a sense of how extremist groups were
12:34 spreading propaganda, were ratifying the internet.
12:37 And so in doing that, we found that there are some patterns to the way that people accomplish
12:41 their agenda on the internet.
12:42 In some cases, that agenda is like really nefarious.
12:45 Yeah, like one of the things you and I discussed way back in 2016 was, guess what?
12:49 After the, maybe it was 2018, after the election, a whole bunch of the internet social media turned
12:54 out to be bots with their own automated agendas, right?
12:57 Right, right.
12:57 And I think that was like, I mean, now in the past five or six years, everybody's come to
13:02 accept that this is maybe just how the internet works.
13:04 Like a certain amount of it is automated and like sure there's groups that are like trying
13:07 to convince you of something.
13:09 Maybe you'd call it propaganda or maybe you just call them like K-pop stans, like screwing
13:13 around.
13:13 Like everybody's, we kind of get it now.
13:15 Like the internet's sort of like Mad Max and it's really different, I think, to how
13:17 everybody might've thought it was when it was more like people taking photos of their
13:21 lunch and putting it on Twitter.
13:22 And so the kind of the cool thing that we found was that the same way that you'd go about discovering
13:26 like a group of ISIS supporters was also the way that you'd go about discovering anybody
13:30 who was working together to pursue a shared agenda.
13:32 And it turns out that's actually really interesting and really valuable.
13:35 And now you get kind of some hints about the subculture of the internet.
13:38 Really early on, when the company had a different focus, I thought maybe this would be an
13:42 opportunity to actually take the model, like to also build on top of an open source model.
13:47 Like we had a way of doing automated exploratory data analysis that we thought was really interesting,
13:51 like heavy on pandas.
13:53 We actually started using Dask and Cython towards the end to make it a little faster.
13:56 It's awesome.
13:57 Like two of the other guests are bringing their creations together.
14:00 It was me.
14:00 Yeah.
14:00 Yeah, it was awesome.
14:01 I don't want deployed Dask services.
14:03 I know a company for you.
14:04 I've heard of them.
14:05 I think they're right down the street.
14:06 But then we actually ended up going different direction.
14:08 Like we found that we were solving what could be a really big problem, potentially like a
14:13 really big market, lots of customers, maybe something that might mature over like 10 or
14:17 20 years.
14:18 And so all of a sudden we went from thinking that we maybe had a really cool idea that we
14:22 could build on top of incrementally to maybe a really big idea that we need a lot of money
14:25 to go pursue.
14:26 And so very, very out of my comfort zone as somebody who spent like my entire career
14:32 focused on tactical products and software engineering was we went out to Silicon Valley and we raised
14:38 a bunch of venture capital.
14:39 We kind of went the other way and thought like, all right, like let's go build a high growth,
14:43 like a venture backed startup.
14:44 And that's what we did.
14:45 And so we've been doing that.
14:45 That was about four years ago that we made that decision.
14:48 And yeah, the company went from a couple of people coding over Zoom to we've got 25 people.
14:55 Actually, we had a little more than that, a little bit larger company than that at one
14:58 point.
14:58 So it's like, yeah, I don't know.
14:59 We've grown pretty quickly.
15:00 It's pretty big.
15:01 Like my day to day has changed like a thousand percent.
15:04 Less time filling JIRA tickets.
15:05 Yeah, less time filling JIRA tickets.
15:07 And now it's like, if I'm in the code, everybody is uncomfortable.
15:09 I've had to learn to, I shouldn't even joke that I will be in the code anymore because now
15:13 we have a team of like really sophisticated, excellent like data scientists and software engineers.
15:17 And so, and as I'm getting rustier and rustier, it's really, it's just not a good idea.
15:21 And everything is so out of date.
15:22 And, you know, obviously like technologies change and move on and it's easy to get out
15:26 of date.
15:26 So yeah, now I spend a lot of time being a startup executive.
15:31 Well, I mean, look, that's pretty awesome.
15:32 Actually, I was just going to add in of like mixing all these technologies together, you know,
15:36 FastAPI is one of the new amazing things that sort of tied in with Ines, right?
15:41 Sebastian is part of your company.
15:43 Yes.
15:43 Yes.
15:43 That's super cool.
15:47 Talk Python.com.
15:47 I mean, it's brought to you by Sentry.
15:49 How would you like to remove a little stress from your life?
15:51 Do you worry that users might be having difficulties or are encountering errors in your app right
15:56 now?
15:56 Would you even know it until they send that support email?
15:59 How much better would it be to have the error and performance details immediately sent to
16:04 you, including the call stack and values of local variables and the active user recorded
16:10 in that report?
16:11 With Sentry, this is not only possible.
16:13 It's simple.
16:14 In fact, we use Sentry on all the Talk Python web properties.
16:17 We've actually fixed a bug triggered by a user and had the upgrade ready to roll out as we
16:23 got their support email.
16:24 That was a great email to write back.
16:26 We saw your error and have already rolled out the fix.
16:28 Imagine their surprise.
16:29 Surprise and delight your users today.
16:32 Create your Sentry account at talkpython.fm/sentry.
16:35 And if you sign up with the code talkpython2021, it's good for two months of Sentry's team plan,
16:41 which will give you up to 20 times as many monthly events as well as other features.
16:46 So just use that code talkpython2021 as your promo code when you sign up.
16:51 And next up in my tab is Coiled.
16:56 Matt, tell us about it.
16:57 Maybe a better story just to talk about Dask and like the various stages in which we went
17:01 there.
17:01 Let's make a better narrative.
17:02 So we started with Dask Anaconda.
17:05 Anaconda at the time was making most of its money as a consulting shop.
17:08 And so we got clients that were either like government grants or were hedge funds or were
17:13 banks.
17:13 And we had made some good software and they said, great, we want you to add features.
17:17 We want you to help us use it.
17:18 And so we were sort of like the standard consulting shop approach.
17:21 I think it was a great way to start a business.
17:23 You get a lot of high touch feedback.
17:26 You get to move very easily.
17:28 I think that was a good way.
17:29 Eventually sort of Dask became big enough and Anaconda was doing other things at the time
17:33 that I was going to go off and make a new company.
17:35 NVIDIA actually stepped in then and they said, great, if you want 5 or 10 people, we'll just
17:39 hire 5 or 10 people around you to work on Dask and Rapids.
17:42 And so then we were a different model, which is making open source project within a giant
17:47 tech company.
17:48 And that's like a different set of customers.
17:51 We need to show how Dask sold GPUs.
17:53 Right.
17:54 That's very different than a consulting shop is to say, we've got a library that inspires
17:58 people to love CUDA cores.
17:59 Yeah.
18:00 But at the same time, like, you know, it's pretty easy to show that Dask generates, you
18:03 know, oh, $50 million of sales of GPUs.
18:05 So great.
18:06 Like here's $10 million for some other activity.
18:08 And so that was just like a different kind of play.
18:12 There's different incentives, but if you can use incentives to your advantage, you can get
18:16 things done.
18:17 Eventually Dask, I think it got bigger.
18:19 It didn't make sense to be within NVIDIA entirely.
18:21 And so they went off and made a different company.
18:23 That company is Coiled.
18:25 We sort of started actually as we wanted to bootstrap, but like-
18:29 It was pretty close to this year, right?
18:30 Early this year?
18:31 Was that when it was?
18:32 Yeah.
18:32 We were like coming up on our birthday in about a month.
18:35 We'll be one year old in a little bit.
18:36 And the main problem that Coiled solves is like setting up IT things around Dask.
18:42 Distributed services, as I'm sure all of us can attest, are like annoying to set up,
18:47 especially in like more of an enterprise environment.
18:49 And so Coil solves a lot of like IT infrastructure that makes Dask much easier to use for anybody.
18:56 Yeah.
18:56 And the cloud is fraught with, oh, let's just set up a bunch of clusters and we'll put this
19:01 in an S3 bucket.
19:01 Oh, wait.
19:02 It's hard to talk to the S3 bucket.
19:04 So make it public and then forget that it's out there or some other horrible thing like
19:07 that, right?
19:08 It's good to have some help.
19:09 Or just to set up Kubernetes is maybe a good example of that.
19:12 Yeah.
19:12 Like tending the Kubernetes cluster is like at least a half of an FTE job.
19:16 If you can remove that, that's actually worth a fair bit of money.
19:19 Yeah.
19:19 Yeah.
19:19 So your company is basically Dask as a platform.
19:22 Yeah.
19:23 Dask as a service.
19:24 Yeah.
19:24 Dask as a service.
19:25 Yeah.
19:25 The pitch, you can pip install Coiled and import Coiled and you can get Dask up and running
19:29 in about two minutes.
19:30 We actually run our own enterprise product in the cloud for sort of a public offering.
19:35 And it's, if you want to scale stuff, it's probably the easiest way to do it.
19:38 Anyone here wants to spend a couple minutes, it'd be fun.
19:41 It's always fun.
19:41 Awesome.
19:42 Yeah.
19:42 Very, very cool.
19:43 We went, we actually started as sort of the bootstrappy way and then like venture capital
19:46 was attractive enough that we ended up going that way instead.
19:49 So we're like on the venture capital boat now for better or for worse.
19:54 Yeah.
19:54 Sure.
19:54 All right.
19:54 So we've got two VC votes, one non VC vote.
19:58 I do want to say like, look, there are lots of.
20:00 No, no, no.
20:00 I mean like a sort of pad.
20:02 Let's pass.
20:03 Yeah.
20:03 Like infrastructure businesses.
20:05 That's just sure.
20:06 That's very resource intensive.
20:07 You're not going to prepay for all the cloud hosting that you're going to sell to the people.
20:12 It makes sense.
20:12 Yeah.
20:12 My point is mostly that, hey, not every business has to start and subscribe to that sort of
20:18 startup playbook.
20:19 Yeah.
20:19 Instantly.
20:19 That's what I'm saying.
20:20 We went five or six years before doing this, right?
20:22 If you like count Anaconda, then NVIDIA as different models.
20:25 I think we should not have started as VC funded.
20:27 We would not have, we would not be nearly as successful.
20:30 Yeah.
20:31 Also, I'm sure you probably got a much better deal than you would have gotten otherwise as
20:35 like, oh, a seed company with his grand plans.
20:38 Financing is like a super normal part of running a business.
20:40 That makes tons of sense.
20:41 Although I would say having done both, having run a small consulting company where we lived
20:46 out of our revenue and now having done this, it's hard to imagine doing this without having
20:52 done the other one.
20:52 Like without having to run a business where you really didn't have to care, like paycheck
20:56 to paycheck cashflow to manage cashflow in that way.
20:59 And now the numbers are bigger, but the principles are still the same.
21:01 And not having learned that, like learning those same lessons with like a checking account
21:06 balance of this size would be, I mean, people do it all the time, but man, that would have
21:10 freaked me out.
21:11 Yeah, for sure.
21:13 It's still freaked me out.
21:14 I can imagine.
21:16 All right, William, last, but definitely at least, tell us about your SageMath as a platform
21:22 with CoCalc.
21:23 Yeah.
21:23 So I started CoCalc after teaching a lot of courses at various places.
21:28 And basically one thing happened, which was that I was getting frustrated with grant funding
21:33 for development of SageMath through academia.
21:37 Because what are you proving?
21:38 Like what theorems or new research is being generated by doing this, right?
21:42 Exactly.
21:43 It's a lot, but it's hard to, you know, nail down exactly what research.
21:48 Yeah.
21:48 There's like an extra step.
21:49 You build the software and people use the software.
21:51 And then that inspires creating a conjecture or figuring out how to prove something.
21:56 So there's so many steps along the way that the link can get lost.
22:01 Yeah.
22:02 Certainly lost on committees.
22:03 So I got frustrated with that.
22:06 And then also at the same time, SageMath is really big and complicated to install.
22:12 And the distribution problem for where it is pretty difficult and getting it to work under
22:16 Windows and OS X and so on is really painful.
22:19 So trying to kill both birds once, I started CoCalc where the idea was that it could generate
22:25 funding that could go towards Sage development.
22:28 And it would make it a lot easier for people to use Sage without having to install it on their
22:31 computer.
22:32 CoCalc has made it easier to use Sage and a lot of other open source software.
22:37 It hasn't really provided any funding for Sage yet.
22:40 There's a lot of years to go.
22:42 So we'll see how things go.
22:43 I launched the product in 2013, I think actually launched something and then started a company
22:49 in 2015.
22:51 I spent a couple of years trying to work with the University of Washington where I was a
22:55 tenured full professor to start up a company while being a professor and sort of spin it off
23:02 from the university.
23:03 But that was surprisingly frustrating.
23:06 And so I ended up getting I ended up finding an angel investor from outside the university and then working with him to start a company separately.
23:14 I'm dealing with all the IP issues.
23:16 In any case, everything got sorted out.
23:18 I spent a couple of very painful years trying to be both a full time college professor and a CEO of a small tech company.
23:25 And that was extremely stressful.
23:28 And I can imagine because being a professor already is like multi pronged, right?
23:32 Yeah.
23:33 You're a researcher and a grant writer.
23:35 Oh, yeah.
23:35 And also you're a teacher, right?
23:37 And your schedule gets very packed with very specific things that have to happen at certain times and you can't move.
23:42 It's not like you could just say, oh, I think I'll teach this class to 100 people an hour later today because I'm busy with this denial of service attack or something.
23:50 Yeah, exactly.
23:51 So it just got there are a lot of actual moments precisely like that where I had these two conflicting responsibilities at once where the site was being attacked by some denial of service attack.
24:02 And I was about to teach a class and I had to choose which am I going to deal with.
24:05 Oh, my gosh.
24:06 Yeah, it was very stressful.
24:07 If I can jump in briefly.
24:08 I'm actually curious if there are advantages.
24:10 Like were there lessons that you learned as a professor that were really useful in running a company?
24:14 I learned the only thing that was really useful and it was very, very useful is understanding professors.
24:20 So I have a pretty good understanding of the perspective of a professor as a potential user of CoCalc.
24:26 Very good because I spent well over 15 years as a professor.
24:29 So I can understand their perspective, but almost every intuition I have or had in academia in terms of how to do things is opposite of what I should do in business or startups.
24:42 Just everything is just reversed for me, at least.
24:45 So I decided what is my gut instinct for what I should do?
24:48 Question it and then possibly do the opposite.
24:50 The rules are just so different.
24:52 For example, in academia, you often apply for a grant and then find out six months or a year later and see how there's like really slow long-term process.
25:01 Whereas in the company as an industry, you need to adapt quickly to what's trendy and what's important to users.
25:06 And also even hiring is just such a different cycle in academia where you apply for a grant, then you get a position for a job, then you hire somebody.
25:15 That's like two years from when you decide you want to hire somebody until you hire them.
25:18 It's just a different scale.
25:20 But in case, I love both situations, but I couldn't do both at once.
25:24 Fortunately, my wife got a very good job as an academic and the company started making some money.
25:29 So I got confident.
25:30 And so I quit my, and this was really hard to do.
25:32 I quit my tenured full professor job.
25:34 Just quit it.
25:36 I remember watching the video where you announced that because it was on YouTube and it was going around Twitter.
25:40 And I'm like, oh, this is going to be interesting.
25:42 Let me see this.
25:43 Because that's a big deal as a tenure-tracked professor at a university like a University of Washington?
25:50 Washington University?
25:51 Yeah.
25:51 Yeah, University of Washington.
25:52 It was a good job and a very nice, the department's great for research.
25:55 And I never thought I would quit a tenured job once I had one that I liked a lot.
25:59 And I thought about it a lot, but just never thought it would happen.
26:01 And then it kept not happening until it suddenly happened.
26:04 It just felt like the right thing to do.
26:05 So then I had a pretty stressful couple of years with other people working on the company.
26:12 The infrastructure involving Kubernetes and other things melted down occasionally.
26:16 I really, really wanted to get CoCalc in front of people so they would use it,
26:21 so that I would know what to develop, so that they would then use what I developed.
26:24 And in order to do it, it was a delicate balancing act with getting it in front of people,
26:28 but also keeping it running.
26:29 It got a lot more stable over the years.
26:32 And now, like the one-sentence summary of what it is, is it's a web application that lets you
26:38 use open-source data science-related software collaboratively without having to install anything
26:44 yourself.
26:45 And where the collaborative aspects go way beyond just Jupyter Notebooks with real-time collaboration
26:51 to real-time collaboration on terminals, all kinds of files that you're editing, video chat.
26:58 And also, there's things like the file system gets snapshotted frequently.
27:01 So when you're collaborating with somebody else, you need to know who did what or undo things.
27:06 And so there's also a good attribution.
27:08 So as people are editing a document, you can see who did what, a very high resolution.
27:13 And it's mainly used by academics in teaching courses.
27:17 Basically, it's a product that the main users are professors and their students.
27:21 Right. And so I think it's really interesting, you were thinking you might not be leaving this
27:25 academic job, but your time there is really critical for helping you understand all the users, right?
27:32 Yeah, very, very critical.
27:33 And of course, I learned a lot of mathematics.
27:35 And having taught dozens and dozens of classes over the year, it gives you a certain perspective.
27:41 And then the other question, so there's six angel investors in the company.
27:45 There's no venture capital investment.
27:48 And we've been profitable for about a year now.
27:51 There are three people that work full-time on CoCalc.
27:54 And our bank account is going up every day for the most part.
28:00 That's awesome.
28:00 If it's trending up and not down, good.
28:03 Yeah. So we have no plans to raise further investment.
28:06 And all of us really want a company that's relatively small, profitable, and not dependent on investors.
28:13 Like, basically, we view our customers who are paying as many as our investors,
28:17 in that they're the ones that are driving our development direction.
28:21 Yeah. That's awesome.
28:22 Congratulations.
28:23 And it's what we're all comfortable with.
28:25 It's what we want.
28:25 Just a different model.
28:27 Yeah, yeah. Sure.
28:27 That's really great.
28:29 I'll throw one thing out about myself, and then get back to questions.
28:33 So for me, my full-time job also is the stuff I'm doing here with the podcast and the online courses.
28:38 And I didn't get investment.
28:40 I actually started on Kickstarter.
28:42 So I reached out to all the podcast listeners and said, I'm going to do this thing.
28:45 Will you come help me?
28:46 The Kickstarter funded within 12 hours, and it was off to the races.
28:50 It was fantastic.
28:51 So there's all these different paths, right?
28:53 So I think maybe a good place to move over to talk about next is we all see where you've been.
28:59 And that's really the slight variations, but also the commonalities of what you built,
29:03 which is awesome.
29:03 But William was just talking about it.
29:07 You've got this great job.
29:08 Maybe you don't have a great job, but you like paying the rent and having some kind of job.
29:13 But how did you decide it was time to quit, go all in on this?
29:19 Or did you, like me, I started the podcast while I had a job, but then quit and then started the course side of things.
29:25 What was the path and how did you decide it was time?
29:27 Actually, it's funny that we were just talking about all academia and grant proposals,
29:31 because for my co-founder, that was he.
29:33 He was at a point where he had to write grant proposals and as a postdoc.
29:36 And he was like, nah, I'm out of here.
29:38 That's not what I want to do.
29:41 And so that was for him the point.
29:44 And yeah, for me, it happened.
29:45 Like, sure, I was also in a privileged position that I was I live in typically live in Berlin,
29:50 Germany.
29:50 It's a nice city with a good standard of living, while also low cost of living.
29:54 So I was able to say, hey, I'll try this.
29:56 Worst case, I go back to being a freelancer as I was before.
30:00 I'll always find someone to pay me enough to live.
30:02 So why not?
30:04 You know, just do it.
30:05 It was a good time to do that, but it was no major.
30:08 And I was kind of sick of what I was doing before.
30:10 So it just fit in and felt right.
30:12 And I was like, OK, I'm privileged that I can do that.
30:14 Yeah, fantastic.
30:15 This portion of Talk Python To Me is sponsored by Linode.
30:19 Simplify your infrastructure and cut your cloud bills in half with Linode's Linux virtual machines.
30:24 Develop, deploy, and scale your modern applications faster and easier.
30:28 Whether you're developing a personal project or managing large workloads,
30:31 you deserve simple, affordable, and accessible cloud computing solutions.
30:35 As listeners of Talk Python To Me, you'll get a $100 free credit.
30:40 You can find all the details at talkpython.fm/linode.
30:44 Linode has data centers around the world with the same simple and consistent pricing,
30:48 regardless of location.
30:49 Just choose the data center that's nearest to your users.
30:52 You'll also receive 24-7, 365 human support with no tiers or handoffs, regardless of your plan size.
30:59 You can choose shared and dedicated compute instances, or you can use your $100 in credit on S3-compatible object storage,
31:06 managed Kubernetes clusters, and more.
31:09 If it runs on Linux, it runs on Linode.
31:12 Visit talkpython.fm/linode or click the link in your show notes, then click that create free account button to get started.
31:19 William, you were just talking about it.
31:23 I started working with the commercialization office at the university, like meeting with them every week and reading the rules of the university and realizing...
31:29 They're going to help me do this.
31:31 Wait a minute.
31:31 They're not helping me.
31:32 Yeah, there's a lot of legal and intellectual property issues involved with
31:36 working at an employer while working on something that you want to be a business.
31:41 Yes, it's very tricky.
31:42 Basically, a lot of jeopardy with being an employee of the university at any amount above like 5%
31:48 in terms of them owning what I do.
31:50 So it got complicated that way.
31:52 And that was another motivation for me.
31:55 It was just that I couldn't find a way to both work at the university and,
31:58 for example, for investors to have any confidence that I owned what I was actually doing.
32:02 Oh, yeah.
32:03 That's interesting to think of it from the investor angle as well.
32:06 Universities, for people who don't know, they take a good chunk of what is created there.
32:10 They take a good percentage of grants that they get and stuff.
32:13 So, yeah, it could be interesting and tricky.
32:15 Especially when it's commercially valuable.
32:17 So they don't care so much about just a completely non-commercial open source project.
32:22 But they can be pretty...
32:24 Well, they want a cut of businesses.
32:26 Yeah, makes sense.
32:27 I talked to another faculty member at the University of Washington.
32:30 He had written some software in the company.
32:33 The university wanted a huge license fee for him to be able to use it.
32:37 Like several dollars per user.
32:39 50% of all the money the company made.
32:41 He said it was a horrible experience.
32:43 So he got warned away from trying to...
32:46 It was nerve-wracking trying to balance that.
32:48 So it's hard to have a job at a company at the same time as you're trying to start another company.
32:52 It was the same for me.
32:53 I work for a company that did online developer training.
32:55 There's no way I could create another online developer company.
32:58 While I was like, it was right in my contract.
33:00 Don't do that.
33:00 That will be ours if you try that sort of thing.
33:03 I think you could only really have one job.
33:04 Or that's something we often say.
33:06 It's like, yeah, there are lots of companies we could start and businesses we could start.
33:09 But you could only really run one company.
33:12 And you have to have a clear vision and do the thing.
33:14 Like if you try to run like five different companies at the same time, that usually doesn't end well.
33:19 Yeah.
33:19 Or then you're running like five half-ass companies.
33:21 I think the same is actually even true.
33:24 Like it's a pretty popular model.
33:25 Or I think it's like a...
33:28 I said this is having run a consultancy that tried to do this.
33:30 It's a little bit of a pipe dream that you can take consulting income, which is easier to get.
33:34 Especially for technology, the margins can be pretty high.
33:36 Right.
33:37 In the short term, it's let me do this thing for two weeks so we can eat and that'll keep us going.
33:41 But yeah, it's...
33:42 Yeah.
33:42 And then we'll use it to make a product.
33:43 Like we'll use our consulting work to somehow make a product out of it.
33:46 That's what we...
33:47 I mean, kind of...
33:47 That's not what we did.
33:48 We call it...
33:49 We raised the client round.
33:50 So we just did consulting to get some cash in and then build the product.
33:53 But yeah.
33:53 Yeah, yeah.
33:54 Exactly.
33:54 Like it can be one and then the other.
33:56 Yeah.
33:56 People often don't understand that.
33:58 And they think that like you can just take on consulting gigs that in aggregate will like become a software
34:01 product.
34:02 I mean, there are definitely examples of people who do it.
34:04 There's always an exception.
34:05 Like I know people have done that successfully.
34:06 But at least in my experience, that was remarkably hard.
34:10 Like it was...
34:10 We reached the point where we have to just say, we're going to set the consulting work aside
34:13 and then we're just going to go focus on making this a product so that we can do the things
34:17 that you do when you do a product.
34:18 When you actually build a product and you don't necessarily get caught up into what's the next
34:22 feature that we need to do?
34:23 Like how can I split my time?
34:24 Like split the focus.
34:25 Like you were just saying, it's so easy to get that split focus between a bunch of different clients
34:29 and this consulting business.
34:30 And then also trying to figure out how to go like, I think in a more like long-term product
34:35 development way.
34:36 It's really hard to do two things.
34:38 For me, at least it's super hard to do two things at once.
34:40 And I'm really good at doing one thing and really, really bad at doing two things.
34:44 Matthew, how about you?
34:47 How did you decide that it was time?
34:49 Oh, we just had like intense user pressure to do this.
34:52 Like when we made Coil, there were a bunch of banks and hedge funds who were happy to be
34:55 customers day one.
34:56 It sounds like it's great for Matt because he just had these people lined up, but you did
35:03 the work for years to get into that position, right?
35:07 You had built up Dask.
35:08 You had built up those connections.
35:10 And so when it was time-
35:11 And many others, to be clear.
35:12 Like there's a large set of people-
35:14 Only because only you are on the show.
35:15 Speaking to you as a whole of your community-
35:17 It's like the royal, I guess.
35:19 Yeah.
35:19 Yes.
35:20 Like intense user pressure at every stage, right?
35:22 Like we just grew bigger than Anaconda because of the time.
35:24 So we went to NVIDIA.
35:25 We grew bigger than NVIDIA because of the sports.
35:27 We made Coil.
35:27 Yeah.
35:28 And so we probably did it late.
35:30 Maybe it's like the-
35:31 We're probably the counter example.
35:32 Like we probably could have started this a couple of years ago and been just fine.
35:36 So maybe we should have.
35:37 Like I could have been sitting here with my millions of billions of dollars.
35:40 Wouldn't it be great if somebody could come to us and say, go back in time five years
35:44 ago.
35:45 Here's the best choice you could make.
35:46 Yeah.
35:46 You could have bought a Bitcoin or something.
35:48 Two Bitcoins.
35:49 I didn't even know.
35:50 I mean, generally, like making a company is a risky thing and you need to be somewhat
35:54 risk tolerant.
35:55 I was not very risk tolerant.
35:57 I'm actually a pretty risk averse kind of guy.
35:58 Yeah.
35:58 And me as well.
36:00 I'm exactly with you.
36:01 And it was really super scary for me because like I described, I had to quit my job.
36:06 I couldn't try it.
36:07 I had to quit and then try it.
36:09 And I had just gotten a new job that was really well paid.
36:11 Two daughters who were in college got to pay their tuition, not a ton saved up.
36:15 Mortgage.
36:16 I mean, it was not like I was just 21 and living in Thailand with low expenses, right?
36:21 It was consequences of failure.
36:23 But the more I thought about it, the thing that helped me was I thought really hard.
36:27 I said, okay, well, what's going to happen if I fail?
36:29 I'm probably going to have to go find another job.
36:31 Maybe it's not exactly the technology I want.
36:33 It's not exactly the commute that I want.
36:36 But the worst case scenario is that I get a job that's a lot like what I'm doing now.
36:40 So to me, it was like, well, if what I'm doing now looks like failure, maybe I could do better.
36:44 If I could just fall back into this, not failure per se, but like the landing zone looks like what I'm doing.
36:49 Why don't I reach a little higher and see if I can go do something else?
36:51 You know, that was my thing.
36:53 But that sounds more like calculated risk taking.
36:55 Yes.
36:55 Fine.
36:56 I mean, it's not like you moved your whole family across the world to become a rapper or something.
37:00 Yes, exactly.
37:00 And then you fail.
37:01 I did that when I was younger.
37:02 You kids are like, what the fuck?
37:03 It's a great point.
37:06 Yeah.
37:06 It was very calculated.
37:07 I definitely took a significant risk because I had a math professor job tenured at a university that my wife has a very good tenure track job at.
37:16 So we solved the two people at the same university problem and all of that.
37:19 That is very hard to solve.
37:21 So to recreate that is not easy.
37:23 And then when you quit a math research job for a couple of years and then try to go back, that's really, really hard as well.
37:29 Yeah.
37:30 Extremely hard to, because you're competing with a bunch of young people who are doing all the trendy stuff to try to get a job again.
37:35 And at the same university, that would be really, really unlikely.
37:38 So it was pretty risky.
37:40 So I didn't quit until I was maybe overly confident that we were going to succeed as a company.
37:46 Maybe I was less confident than you, Matt.
37:48 Or maybe I should have been less confident than I was.
37:52 But so far, it's gone really well.
37:54 Yeah.
37:54 Fantastic.
37:54 What did you all do to prepare?
37:56 Did you make sure you had a certain amount of savings?
37:59 Did you try to build up connections?
38:01 What did you all do?
38:02 I already had those things.
38:03 I think what I did is I talked to a lot of people.
38:05 I think I recommend, I think making a company is a lot of very quickly becoming an expert.
38:10 It's something you know nothing about.
38:11 And making a really ill-informed decision.
38:13 And a lot of that has to do with just talking to people.
38:16 And so you need to find a lawyer.
38:17 Great.
38:18 You talk to the five people who know lawyers.
38:20 Get a few introductions.
38:21 After you talk to three or four lawyers, you kind of know how that conversation goes.
38:24 You're now able to choose one.
38:25 You choose one.
38:26 You move on.
38:27 So I think just having a bunch of phone conversations with, you know, not 10 people, but 50 people.
38:32 And also the right people.
38:33 Like I talked to the wrong lawyers at the University of Washington, and it was very unhelpful.
38:38 Then I talked to the right lawyers at actual law firms, and it was incredibly helpful.
38:42 Yeah.
38:42 Interesting.
38:43 It makes a huge difference.
38:44 Ultimately, running a company, you have to make lots of decisions, and most of the decisions have to be right.
38:48 And you have to keep making the right decision in a row.
38:50 Like that's kind of, there's very little magic about it.
38:52 If you're wrong, that's fine.
38:53 Then you have to try again.
38:55 Well, ideally, you shouldn't be too wrong.
38:57 If you're too wrong, then that's not good.
38:59 Yeah.
38:59 Or at least wrong quickly.
39:00 Right?
39:02 Yeah.
39:03 Yeah.
39:04 But I think that's also why, I don't know, if you're doing, if you're really trying it out and doing something real, I think that can really help.
39:10 But that's why doing a real business where, I don't know, you want to be profitable.
39:13 If you start doing that first, that helps because you see the money coming in.
39:18 Otherwise, it's often very easy to spend a very long time doing the wrong thing because you have the cash to do so, and then you can crash and burn.
39:25 You know, if there's real demand there and a real thing there, that helps because you see.
39:30 But also, you actually can make wrong decisions.
39:32 You just can't make them for very long.
39:34 You need to be, like, you're going to make wrong decisions.
39:36 I think you just can't, like, you need to also accept that you're wrong and you need to not dig in too much.
39:43 But I think a lot of it isn't about making the exact right choice.
39:46 It's just about adjusting and adapting on a day-by-day basis.
39:49 And also, make sure that the potential downside, if you make the wrong decision, isn't fatal.
39:56 Like with climbing a mountain, you can make some wrong mistakes, but make sure you have an ice axe to stop your slide.
40:01 You can sort of just not do much.
40:02 Exactly.
40:03 Yeah.
40:03 Yeah, I guess that's with that analogy.
40:05 It's like if you're building a rocket to go up that mountain, that's much more risky because then your rocket has to work.
40:12 And your rocket's going to be really expensive to build.
40:14 If that works, amazing.
40:15 You've made it up the mountain in, like, a few minutes.
40:18 But if it fails, that's it.
40:21 Whereas if you walk up at least a bit, that's pretty good.
40:24 I like what you said a second ago.
40:25 I think it's actually, especially for people with technical backgrounds, I think it's really important to hear that there's,
40:30 that the only way that you know whether or not your business is succeeding or not is if it's making money.
40:35 It sounds like a silly thing to say out loud, but I think for a lot of technologists, it's, there's just no, you can't, it's easy to convince yourself that there's a lot of other ways that your business can be successful.
40:45 And there's a lot of ways that a project can be successful because you build a great community.
40:49 Maybe your open source project has a lot of users.
40:51 It's solving a problem that you care a lot about.
40:53 Like, all of those are totally valid things to make a project successful.
40:56 But if you're starting a business, the only way that it is successful is if it makes money.
41:00 I think that's, like, you kind of have to accept it and know whether or not that's something that motivates you and whether that's something that, like, if you want to keep score for your project in that way.
41:08 So, I, that's exactly how we see it.
41:11 I mean, you said it kind of in passing, but it's like, yeah.
41:13 Yeah.
41:14 I think I've said before, like, profit is the best KPI.
41:17 That's what you should, you know, look at, ideally, if you can.
41:21 But it's a huge difference from academia where the success of a grant proposal is that you wrote a paper that got published in a good journal that people cite, which is not, it doesn't generate, it's just such a different metric, basically.
41:35 Yeah.
41:35 Yeah, it really is.
41:37 And it's easy to think, this thing that I love, I don't need to make money on it.
41:41 But at the same time, if you can manage to do it, all of a sudden, not two hours a week where you're tired, you can spend a little extra time on it.
41:49 Like, you could put all of your time and energy into it.
41:51 And another thing that I think is interesting to think about is if you're able to make something happen, create some project, create something that you're working on on the side.
42:00 If you can make that somewhat successful with two or four hours a week, if you manage to spend 40 to 60 hours a week on it, all of a sudden, well, it's a whole lot easier to get some traction than if you're just scraping away when you're tired at the end of the day.
42:13 Yeah, but I think especially if you're starting out as a side project, like, you know, a side business, a side business fundamentally is not a business if it, you know, at least as a side business, if it doesn't make money, it's an expensive hobby, if it's something you do on the side.
42:24 So I think if that's the approach you take, where you say, hey, I want to start something on the side, and then maybe turn it into something bigger.
42:30 I do think a good plan is to make money.
42:32 Yeah, I totally agree.
42:33 Yeah, you when you were on the show before, Ines, you wanted to, or maybe it was just in your talk, but you said, it's okay to charge money for a thing that you put a lot of energy into to have people support your company, right?
42:44 I mean, that was part of your talk way back.
42:45 Also, in general, companies want to spend money.
42:47 It's this myth of companies don't necessarily use open source, in my opinion, because only because it's free.
42:52 It's the whole spirit of open source.
42:55 It's available.
42:56 It's good.
42:57 It's also, you download it.
42:58 It runs.
42:59 You can program with it.
43:00 You can work with it.
43:01 You own it.
43:02 And you own the result.
43:03 That's what people like about open source, not just the fact that it's free.
43:06 I think almost in spite of the fact that it's free, companies use it.
43:09 Because so often they're like, who do we pay so that we can yell at them and get it fixed when it's not what I want, right?
43:14 Yeah, exactly.
43:15 Yeah.
43:15 Yeah.
43:15 So that's something we've also used to motivate the way we are building our stack.
43:20 And even if it's not free in that sense, and it's commercial, it can still have the same spirit of open source.
43:26 And we've found that this is very popular with developers.
43:28 And people really like our tools for those reasons.
43:30 Maybe that's a good segue over to this sort of mix of open source and business models.
43:36 There are a lot of open source projects that get so much energy.
43:40 And it boggles my mind that the person who's working on that project, it's not just entirely successful for them.
43:47 I'm thinking of requests or Django or Flask or these things where it really is being used by so many people.
43:54 Surely there's enough support for the person who's writing it to just keep writing it.
43:58 All of you are examples of how can I create something that I'm selling as a product that also supports some open source thing that just makes it better for everyone,
44:06 even if it was just the open source thing that they cared about.
44:09 What are your thoughts on having some paid thing that's not necessarily supported by open source,
44:13 but it has a kernel of open source around it or in it?
44:16 With CoCalc, the actual software of CoCalc, maybe 50% open source.
44:22 Like our actual web application, a lot of the backend is closed source.
44:25 We have an open source version that you can install in a Docker image that's entirely open source.
44:30 But the key thing that's really open source about CoCalc is all the software that you use when you're running,
44:35 when you're inside of CoCalc itself is open source.
44:38 So you have access to Julia and Octave and R and Python and Jupyter Notebooks and SageMath and all this other stuff.
44:45 So it's really, we have a product that benefits a lot of open source math software and open source data science software does well.
44:52 And so our interests are very aligned.
44:54 So the product benefits from open source doing well.
44:58 Unlike, say, Mathematica, which kind of, it's the opposite.
45:01 It doesn't benefit if open source does well.
45:03 Yeah.
45:03 But we, on the other hand, I tried for a long time to make CoCalc entirely open source, just top to bottom.
45:08 And it really made investors nervous.
45:12 And it made employees nervous who are going to spend 60 hours a week working on writing the software.
45:18 They're worried that some other company could just take exactly 100% of software without permission or whatever
45:24 and make a site that offers the same thing and charges exactly half as much or something like that.
45:30 I don't know there necessarily needs to be an expectation like, because you run a platform, the entire thing needs to be given away, right?
45:36 Yeah.
45:36 We run a platform that is not entirely open source, but it makes it easier for college professors to use open source in teaching their classes.
45:42 So it benefits open source overall.
45:44 Yeah.
45:44 And Matt, you're sort of in a similar situation with a platform story.
45:48 Sure.
45:48 I think maybe like all of us are in a shared situation of we have a free thing that's like the main value.
45:55 We need to like find some like peripheral thing to sell around it.
45:58 Maybe it's consulting services, maybe it's support, maybe it's a dev tool, maybe it's like an IT solution.
46:03 And we're selling to part of a company that's slightly different from our user base.
46:07 And that requires some finesse.
46:09 And we're all navigating that space and exploring that space and seeing what works and doesn't work.
46:13 There's lots of ways to make that work.
46:15 Yeah. So how did you decide what you're going to sell?
46:17 People ask, this is what I got for free.
46:19 I need more.
46:19 Yeah.
46:20 Complaints that everyone has.
46:21 It's really hard to deploy this stuff.
46:22 That's like the IT buyer rather than data science buyer.
46:25 Like they're very used to spending money.
46:27 It made sense to make something proprietary to sell to them.
46:29 That is like that fit.
46:31 Also, like I think lots of companies have done this before.
46:33 Right.
46:33 This is like the Databricks play.
46:34 This is kind of what Cloudera does.
46:36 This is a very common playbook.
46:38 There are other great common playbooks like dev tools, like other systems.
46:42 So lots of challenges to this too.
46:44 Right.
46:44 Like I happen to have like a large amount of control over the free thing, Dask.
46:48 I'm very tempted to do things to the free thing that like benefit the company.
46:53 And so there's definitely like things that you need to watch out for in this space.
46:57 It's not all, I think we're all going to say it's all great.
46:59 But I guess this can also be positive.
47:00 Oh, sorry.
47:01 This can also be positive if it's aligned.
47:03 For example, that's what's the case.
47:04 In our case, our tool Prodigy also uses Spacey.
47:08 So lots of Spacey users use Prodigy to create training data for their models.
47:12 So we've actually become very, very active users of our own open source software ourselves.
47:17 And we make lots of improvements that do benefit our product and vice versa.
47:20 And everyone benefits from that.
47:22 And we're in exactly the same situation.
47:24 But eventually like competition arises.
47:26 And then like I can make this change in Dask, which definitely benefits my product,
47:29 does not benefit my competitor's product.
47:31 Right.
47:32 I feel like it's a little bit like open source software is kind of like being in the ocean,
47:36 like in a rowboat.
47:37 And there's a really strong wind, which is business.
47:39 There's like, and if you can capture that wind, you can go a lot faster.
47:42 But the wind isn't going in quite the same direction that you want to go in.
47:46 As you need to build like a sail, you need to learn how to attack.
47:49 You need to like learn how to like, to harness that wind to go in the direction you want to go
47:53 way faster than you could on your own.
47:55 But there's actually like building, like sailing stuff is actually really hard.
48:00 And that requires a lot of nuance and a lot of like thought.
48:02 And we're all kind of building up our own sails and our own rudders.
48:05 Yeah, that's a cool analogy.
48:06 Jonathan, how about you?
48:08 So we are in an interesting spot where our whole stack is based on top of open source Python.
48:12 And I think we benefit hugely from that.
48:15 I think the where we actually had an interesting way that kind of was important to us as we were
48:20 giving back to the open source community.
48:21 We did a lot of research that was publicly funded research that was focused on how do we automate
48:27 different aspects of machine learning?
48:28 And then in some cases, like how do we discover some of the patterns, like what are approaches
48:32 or strategies that discover some of the patterns of the way that information gets disseminated
48:37 across the internet?
48:37 And so both in a research capacity, so we've actually published research about some of these
48:42 different projects that we worked on, like academic research, which is a cool thing for a company
48:46 at our stage to be able to do, to have the opportunity to do.
48:48 And then we published some open source libraries that some of which we use and some of which like
48:52 we've actually abandoned, like they weren't like we haven't abandoned the libraries, but we've
48:55 abandoned them as features inside of our product.
48:57 So they're no longer kind of like a key component of what we do, but something that was important to us
49:02 at one point, like helped us explore a really important idea and then do have some adoption
49:06 in the community.
49:06 And in fact, there's a few that I think are embedded in other companies' platforms, which
49:12 is kind of cool.
49:13 There's a company in Austin called Data.World, which is a data catalog company, also built on top
49:17 of like open source roots.
49:18 And I think some of their data visualization libraries and then some of their like data
49:22 inference libraries are built on top of some of our open source projects because we were more
49:26 closely aligned with us.
49:26 So it's definitely still a part of our DNA, a part of our culture, our technology and engineering
49:30 culture.
49:31 Although we're in a slightly different position that the thing that we sell is like a, we
49:36 have, it's like an enterprise intelligence communications product.
49:39 It's a little more like a traditional company that just uses open source instead of we're the
49:44 company behind this project plus or something.
49:47 Oh, totally.
49:47 I think a lot of like, you are talking about users who are very technical, you know, like
49:51 professors kind of teaching technology or like IT or developer users.
49:56 Our users usually have a BA in communications with a minor in poli sci and find like spreadsheets
50:03 to be overwhelming because it's like, it's the data, you know what I mean?
50:06 And like, and so in a way, like it's helped us be focused on being really empathetic and
50:10 how we present like analytics and output, but they're really far away from like a traditional
50:14 technology.
50:15 Yeah.
50:15 Yeah.
50:16 Very interesting.
50:16 All right.
50:17 We're getting near the end of our time together.
50:19 So let's maybe close this out just with two quick final wrap up and some questions that
50:24 the audience threw out there as well.
50:25 You all have made it.
50:27 I would say like you're all building successful stuff.
50:30 You're making progress.
50:31 Who knows what the future holds, right?
50:33 But it looks like you're doing great stuff and you've made that transition to where you
50:37 want to be.
50:38 But a bunch of people out there listening are dreaming of doing something, but that maybe
50:42 they're not really sure where to start or what to work on.
50:44 What advice would you have for people who are thinking of trying to create their own data
50:48 science related type of startup?
50:50 And what areas do you see that they might focus on?
50:53 I hate giving advice because it's so that, but in terms of areas, I want to, I do want to
50:58 comment on the areas.
50:58 The one thing I see a lot in our field is we only just at the very beginning of like machine
51:03 learning ops and for the lack of a better word, I don't know, operational stuff, like
51:07 how to, you know, really take like your project from a prototype to production and make that
51:12 smooth.
51:13 Yeah.
51:13 Productizing your actual exploration.
51:16 Yeah.
51:16 Yeah.
51:17 Or just, you have like some researchers hacking around in notebooks and then you also want
51:21 to ship something into production and there's all this, you have your data, you have that,
51:25 you have that.
51:25 So there's, that's very, we're in very early stages here, but I do think there's a lot of
51:30 room for innovation here and also innovation that's actually, you know, useful to the developer
51:36 and that really integrates into the existing workflows.
51:39 Because I think one problem we do have with a lot of companies that went for the enterprise
51:44 first type of thing is that a platform like that only works if you own the whole workflow
51:49 end to end and you want to be the one platform everyone uses.
51:52 Many people are trying that at the moment and some companies may succeed, some won't, but
51:57 that's very unattractive to a lot of real world scenarios.
52:00 Because if you give someone the choice of like all or nothing, people have to be like,
52:04 if I don't want all, I guess I have to go for nothing.
52:07 I don't want this thing to own everything.
52:09 I just want a tool that helps me do stuff.
52:11 I think there's a lot of low hanging fruit that's very profitable.
52:13 Yeah.
52:14 Very interesting.
52:15 Yeah.
52:16 Yeah.
52:16 You're so right.
52:17 I think where we've spent the most of our time and just technical churn is in that prototyping
52:23 stage where somebody got it to run in a notebook or somebody has a little script that they run
52:28 from the command line.
52:29 And then the, how to go from that to, oh yeah, hold on.
52:34 I'm going to deploy it to a Kubernetes cluster.
52:35 We're going to run it like in parallel to it on a thousand machines.
52:38 And there's a lot of really great tools for whatever that is.
52:41 And we're going to make sure it's running all the time on the weekend.
52:45 Yeah, exactly.
52:45 Totally.
52:46 Like infrastructure is a service until the cows come home.
52:48 But then there's that middle ground where it's like, well, what we really want to do
52:51 is we want to put this into a simple pipeline.
52:53 So it runs every day.
52:54 We want to put it in front of a few users.
52:56 Like we actually just want to run it on like real world data that updates every 24 hours.
53:00 That like kind of toy pipeline stuff, like what you might call like an alpha if you were
53:04 making application software or something, or what are that pre-alpha or A-B testing?
53:08 Like all of that, that workflow, like I think right kind of where you're talking about it
53:12 is.
53:12 It's like, I, that it doesn't seem to exist.
53:15 And we actually like have retooled our infrastructure to focus on that use case because it's so common
53:20 for us to introduce new analytics to our customers.
53:22 And like the presentation layer is relatively straightforward.
53:25 And so we actually are sunsetting some pretty heavy infrastructure that we use to operate
53:30 because it just doesn't, it was such a pain.
53:32 Like it's such a pain to work with.
53:34 And in fact, we're not always working on massive data sets all of the time.
53:38 A lot of times it's like, we do a pretty good job filtering down to smaller, like artisanal
53:44 small batch data and then running like single machine computation.
53:47 And it's a lot of like the problems, the machine learning problems are simpler once if we think
53:52 about it in the right way, but there's not a lot of good tools for that kind of experimentation
53:55 and prototyping.
53:55 Yeah.
53:56 Yeah.
53:56 Also that that's where the trend is going.
53:58 This whole idea of big data, we need billions of records.
54:01 Yeah, maybe.
54:01 But nowadays we see that, oh, with transfer learning, we can actually train pretty good stuff on a
54:06 pretty small scale and it works.
54:08 Hey, now, hey, now, you're cutting edge by market.
54:10 Cutting edge by market.
54:10 Can I stop talking about that, folks?
54:12 Yeah, no, no, that's super great too.
54:18 But I agree with you.
54:19 It's not even like necessarily just the training, which I agree with that completely.
54:23 And then even that, once you have a model that's trained, then you're going to be operating
54:27 on kind of production data to like make predictions or augment the data or season it or produce batch
54:33 analytics or whatever you're doing.
54:34 That usually happens on a relatively small amount of data, like relatively speaking to like what
54:39 we might think was training data.
54:40 And so many use cases are not all of them, but a lot of use cases, I think, in a company's
54:44 tool, both the everyday ones are in fact just a little bit more straightforward.
54:47 Yeah, interesting.
54:48 Cool.
54:49 William, Matt, you guys got some ideas on where people might find some open space?
54:54 Well, one thing is there's a big difference between a really cool idea for something to
54:57 build or a product and something you can actually make a business around and sell.
55:02 So it's good to think hard about how do you take, you know, the 20 different things you
55:06 might do that all seem really neat and decide which one is most likely to be something that
55:12 you could actually sell to people.
55:13 Yeah, yeah.
55:14 This thing looks cool, but what will they actually pay for it, right?
55:17 Yeah.
55:17 Without that, you can't put your time to it.
55:19 CoCalc is a really, it's basically just this platform where we can basically do almost anything
55:24 collaboratively with several people using it through a web browser.
55:27 And so there's a million ideas for things we can add to it.
55:31 And every day we have to stop and say, okay, what thing are we going to actually do?
55:35 And then we have this kind of iterative process where we look at what people are asking for,
55:39 what people who will pay us are asking for, and then what the results should be of the
55:44 platform overall.
55:45 So we've thought more about just how to systematically build good stuff into CoCalc to make it more
55:50 valuable to our users.
55:51 But we just get a rate on that rather than having some other more grand time.
55:55 Oh, we just have a strategy.
55:56 Yeah.
55:56 Yeah.
55:57 We just have a strategy for improving the product that customers appreciate, basically.
56:03 Yeah.
56:03 Fantastic.
56:04 Matt, how about you?
56:05 I'll give you the final word on this one.
56:07 Yeah, great.
56:08 I'll give me like a general thought on starting companies and then maybe like a civic, but
56:12 general thing, like no one knows what they're talking about.
56:14 I am definitely not qualified to answer the question of like how to build a company.
56:17 I think everyone on this call, except for maybe Jonathan, like this is our first time in
56:22 this process.
56:23 If I have that right.
56:23 No one knows what they're doing.
56:25 So don't trust us.
56:26 Also, like we're the mildly successful people.
56:29 Most people fail.
56:30 Given that, I'll now make my prediction.
56:33 So I just want, can I kind of just interject?
56:34 I do think, I mean, I do, I get your point of like, oh, nobody knows what they're doing.
56:39 But like, you know, some people do know what they're doing.
56:42 You know, there's some stuff you, you know, you do and you do well.
56:45 And that's good.
56:46 And I think that that is something that we should, you know, celebrate and honor that
56:49 like, I do think a lot of things where, you know, I know what I'm doing and there are other
56:53 things where I'm like, well, I don't know.
56:54 But like, I mean, I have a lot of broken noses from trying to run through walls for four or
57:02 five years, maybe the company work.
57:03 And like, I've earned this broken nose.
57:05 Yeah.
57:07 I really agree with that.
57:09 Like, cause you know, you've made a whole bunch of really hard decisions that you spent months
57:13 maybe thinking about over the last five years.
57:15 Like we all have and we're still alive or our companies are.
57:18 So that's something.
57:19 Right.
57:20 I guess maybe my point is I now know how to make the company that I made or I'm like in
57:23 the process of making, but like, I'm not sure how transferable my expertise is to someone
57:28 else.
57:28 Like we all like wandered through the forest and we like hit a bunch of trees.
57:32 We're like, oh, great.
57:32 We found a clearing.
57:33 But if someone else is in a forest, we don't necessarily know how to get to another clearing
57:36 again.
57:36 That being said, and I'll give my like, my advice given that I like what Inez said about like,
57:41 they're always now like, there's all in one platforms.
57:44 I think those are kind of going away.
57:45 Now I've seen a lot of companies that are providing little specialized services.
57:49 I think there's actually a great need in like integrating those services together and integrating
57:54 those products together.
57:54 I think that there's a great need.
57:56 And that's also like a great, that's an easy thing to get into.
57:59 If you would just like start a consultancy shop and start integrating products in like
58:03 some domain, maybe you're in finance.
58:05 Maybe you're in something else.
58:07 Maybe you're in a scalable NLP.
58:08 You can use, you know, explosion and coiled at the same time.
58:12 Like there's no company that's going to help you do that thing together.
58:15 So I think that's maybe a place where I think people can start is in cobbling together all
58:20 of these new sort of product companies.
58:21 Yeah.
58:21 And once you get into one of these verticals, you're like, you know what, there's this thing
58:24 that everyone seems to struggle with.
58:25 And now I'm in a position to really know the people and solve the problem.
58:29 Yeah.
58:30 And have people who've already paid me for it before, which I think is also good because
58:33 there's this startup wisdom.
58:34 You have to schedule calls and talk to potential customers, but you never know what they're going
58:38 to tell you.
58:39 You can talk to someone's like, Hey, could you imagine buying this for me?
58:41 And people would be like, yeah, sure.
58:43 And it doesn't mean anything.
58:44 So yeah.
58:45 But I would start, I would start with consulting.
58:47 I would start with integrating existing products and then find that pain point that you hear 20 times.
58:52 And then that's the problem.
58:53 Yeah.
58:53 Let me close out the question from the audience here that I think is relevant.
58:57 Maggie Kaman says a question, how intimidating were the business skill side of things for
59:03 all of you?
59:03 We all told our stories that we more or less started in some technical aspect and to varying
59:09 degrees worked out payroll taxes, investment, VC, all these things.
59:13 But what are your thoughts, Joe?
59:14 It depends on where you're based.
59:15 Different countries have different, you know, situations.
59:17 I do feel like, you know, I did run, I was a freelancer before, which helped me a bit.
59:21 I do take pride in, you know, being able to run my company and direct my company and do all
59:26 these things and be on top of things.
59:28 And I do think if you have that sort of mentality, you know, yeah, there's bureaucracy involved.
59:33 That's just how it is.
59:34 But it also feels good to be able to really be on top of what you're doing.
59:37 Yeah.
59:37 I felt entirely unprepared.
59:39 But I think Ines York's point there that you start with freelancing because you have to do a
59:43 lot more of the tax payroll side just for yourself.
59:46 And then it grows.
59:47 Jonathan, did I interrupt you?
59:48 Not at all.
59:48 Well, I was going to make a similar point that like the consequences for mistakes, as
59:53 those consequences get more severe, you'll have more opportunity to pay your way out of
59:57 the liability for it.
59:58 As you have to start to deal with like payroll from people in like different US states or maybe
01:00:02 even different countries and managing the tax implications and registering your business
01:00:06 and like all of that type of stuff.
01:00:08 Or frankly, like even knowing how much tax you have to pay relative to how you operate
01:00:11 your business, like those things are pretty complex.
01:00:13 And you get over a number of certain employees.
01:00:15 And then there's a whole new set of laws that apply to your business that didn't before for
01:00:19 protecting different classes of workers and stuff like that, which gets really complicated.
01:00:23 But now there are services that you can sign up for that manage almost like the entirety
01:00:27 of that kind of like people operation.
01:00:29 So for a bigger business, the consequences are severe, but you can pay your way out of it.
01:00:33 And when you're small, like it's a bummer if you get a tax bill one quarter, that's
01:00:37 I had some five figure of stakes when I was a freelancer.
01:00:41 You always have at least an accountant.
01:00:44 Like I do want to, I'm not sitting here claiming that I do like literal payroll and accounting
01:00:48 myself.
01:00:49 I don't, I hire someone to do it, but you know, you still have to be on top of stuff.
01:00:53 Like I do think it's important to not just believe, oh, I'm outsourcing all of that.
01:00:56 It'd be fine.
01:00:57 Oh yeah.
01:00:58 Yeah.
01:00:59 Like I remember, like I learned how to do it and then I did what you did pretty fast,
01:01:02 but I agree.
01:01:02 Like you can't, it's hard to, it would be hard to hire somebody had you not done it yourself.
01:01:06 Like you kind of like difficult to know like how to outsource it.
01:01:09 Yeah.
01:01:09 Actually even same with lawyers, like people have this idea.
01:01:11 You just hire a lawyer and they magically do everything for you.
01:01:13 It's like, nah, you can't, you don't get good value out of a good lawyer unless you actually
01:01:18 know what you want and understand a bit of this stuff yourself.
01:01:21 And then you can really utilize a professional.
01:01:23 So I'll actually give the counterpoint.
01:01:25 I think I, going into this, I had the exact opposite experience of, I did not want to
01:01:29 own any of this process.
01:01:30 Certainly I've had to do a lot of this stuff.
01:01:32 It's annoying, but like you can pay, you can buy your way out of it.
01:01:35 Like we, we got a PEO for, for us employees immediately.
01:01:39 They handle payroll, they handle taxes.
01:01:40 It was great.
01:01:41 We like got a high price lawyer who like helped walked us through a bunch of stuff.
01:01:45 They handle corporation, they handle first contracts.
01:01:48 It was great.
01:01:49 We paid a bit of money, but that was fine.
01:01:50 Yeah.
01:01:50 And I think whether you have funding early in the thing, or you're completely trying to
01:01:55 bootstrap, it can make a decision there as well.
01:01:57 We're mostly bootstrapping, but we've always had the one person whose job at the company
01:02:01 was to do all those, do the taxes and the payroll stuff.
01:02:05 It's like the very first person who wanted to be an employee instead of a consultant.
01:02:07 I said, okay, but you have to set up the payroll stuff with Quicken and all that.
01:02:13 You got to figure out your own situation.
01:02:15 And he was like, okay, that's now part of my job.
01:02:17 When he got tired of it, somebody else took it over.
01:02:20 It's creative.
01:02:21 That's very creative.
01:02:21 There are things that are a non-trivial amount of work, but it doesn't necessarily mean that
01:02:25 you as the founder have to do that work.
01:02:27 It could be somebody you hire.
01:02:28 Yeah.
01:02:28 And it's not that expensive.
01:02:29 Yeah.
01:02:30 The other thing that's related to this for us, at least, is that most of our customers are
01:02:35 universities and becoming a vendor with the university is a potentially complicated process
01:02:40 where they look at your terms of service and scratch off a whole bunch of things and add
01:02:44 other things.
01:02:44 And they want to see all these audits of your internal systems.
01:02:48 And they want to know that you have insurance for this and that.
01:02:50 It's like this endless sequence of hurdles involving 50-page inscrutable documents.
01:02:56 And it can be the business friction involving doing business with universities can be utterly
01:03:01 ridiculous.
01:03:01 And that's been a lot of work for us for the last two years, basically.
01:03:06 It's worth pointing out, though, that while there's lots of hurdles, they're all really
01:03:09 short hurdles.
01:03:09 Like, anybody can do this stuff.
01:03:11 It's not like this doesn't require previous experience.
01:03:15 Also, I think a hurdle becomes less of a hurdle if you do have, for example, customers that really
01:03:19 want your product.
01:03:19 I was laughing when you talked about all the university purchasing process because we obviously
01:03:23 we have university customers as well.
01:03:25 We have very large companies.
01:03:26 So we know the process.
01:03:28 But for us, it's like, you know, it becomes a lot easier if you have the champion in a company.
01:03:32 It's like, well, we want that.
01:03:33 Suddenly, things work.
01:03:34 You know, if you cold calling universities and trying to sell them, I'm sure that's going
01:03:37 to be a very, very different story.
01:03:39 It's been really weird for us because literally even today we're dealing with stuff like this.
01:03:43 But there's hundreds of different universities we talk with and they're all different.
01:03:47 And they don't make their own rules.
01:03:49 The rules are often state laws in the United States, at least.
01:03:52 Like in Texas, to do business with one university, you have to pledge to not boycott Israel.
01:03:57 That's just like a typical item in these like 50 page documents that you have to.
01:04:01 There's a huge amount of weird friction like that.
01:04:03 And like the state universities are the worst usually.
01:04:07 Oh my gosh.
01:04:08 So I guess the takeaway though, sounds like, look, there's just something you learn it,
01:04:13 you go through it.
01:04:14 And now you're on the other side of it and it's great.
01:04:16 Just do it.
01:04:16 Yeah.
01:04:17 Fantastic.
01:04:18 It's not as hard as creating a great product that people love.
01:04:21 That's harder.
01:04:21 That's for sure.
01:04:22 We're exciting.
01:04:23 I know we could talk for another hour.
01:04:25 Thanks for being here.
01:04:27 It's great to chat with you.
01:04:28 Yeah.
01:04:28 Thanks.
01:04:28 Yep.
01:04:29 Thank you.
01:04:29 Thanks for having us on.
01:04:30 See ya.
01:04:31 This has been another episode of Talk Python to Me.
01:04:34 Our guests on this episode have been William Stein, Matthew Rocklin, Ines Montani, and Jonathan
01:04:39 Morgan.
01:04:40 And it's been brought to you by Sentry and Linode.
01:04:42 Take some stress out of your life.
01:04:44 Get notified immediately about errors in your web applications with Sentry.
01:04:48 Just visit hawkpython.fm slash Sentry and get started for free.
01:04:52 And use the promo code hawkpython2021 when you sign up.
01:04:58 Simplify your infrastructure and cut your cloud bills in half with Linode's Linux virtual machines.
01:05:02 Develop, deploy, and scale your modern applications faster and easier.
01:05:05 Visit hawkpython.fm slash Linode and click the create free account button to get started.
01:05:10 Want to level up your Python?
01:05:12 We have one of the largest catalogs of Python video courses over at Talk Python.
01:05:16 Our content ranges from true beginners to deeply advanced topics like memory and async.
01:05:21 And best of all, there's not a subscription in sight.
01:05:24 Check it out for yourself at training.talkpython.fm.
01:05:27 Be sure to subscribe to the show.
01:05:29 Open your favorite podcast app and search for Python.
01:05:32 We should be right at the top.
01:05:33 You can also find the iTunes feed at /itunes, the Google Play feed at /play,
01:05:38 and the direct RSS feed at /rss on talkpython.fm.
01:05:42 We're live streaming most of our recordings these days.
01:05:46 If you want to be part of the show and have your comments featured on the air,
01:05:49 be sure to subscribe to our YouTube channel at talkpython.fm/youtube.
01:05:54 This is your host, Michael Kennedy.
01:05:56 Thanks so much for listening.
01:05:57 I really appreciate it.
01:05:58 Now get out there and write some Python code.
01:06:00 Thank you.
01:06:01 Thank you.
01:06:01 Thank you.
01:06:01 Thank you.
01:06:01 Thank you.
01:06:01 Thank you.
01:06:02 Thank you.
01:06:02 Thank you.
01:06:02 Thank you.
01:06:02 Thank you.
01:06:02 Thank you.
01:06:02 Thank you.
01:06:02 Thank you.
01:06:02 Thank you.
01:06:03 Thank you.
01:06:03 Thank you.
01:06:03 Thank you.
01:06:04 Thank you.
01:06:04 Thank you.
01:06:04 Thank you.
01:06:04 Thank you.
01:06:04 Thank you.
01:06:04 Thank you.
01:06:04 Thank you.
01:06:05 Thank you.
01:06:05 Thank you.
01:06:05 Thank you.
01:06:05 Thank you.
01:06:05 Thank you.
01:06:05 Thank you.
01:06:06 Thank you.
01:06:06 Thank you.
01:06:07 Thank you.
01:06:07 Thank you.
01:06:07 Thank you.
01:06:07 Thank you.
01:06:07 Thank you.
01:06:07 Thank you.
01:06:07 Thank you.
01:06:08 Thank you.
01:06:08 Thank you.
01:06:09 Thank you.
01:06:09 Thank you.
01:06:10 Thank you.
01:06:10 Thank you.
01:06:11 Thank you.
01:06:11 Thank you.
01:06:11 Thank you.
01:06:11 Thank you.
01:06:12 Thank you.
01:06:12 Thank you.
01:06:13 Thank you.
01:06:13 Thank you.
01:06:13 Thank you.
01:06:14 Thank you.
01:06:14 Thank you.
01:06:15 Thank you.
01:06:15 Thank you.
01:06:16 Thank you.
01:06:16 Thank you.
01:06:17 Thank you.
01:06:17 you you you Thank you.