If you're into data science, you've probably heard about Dask.
It's a package that feels like familiar APIs such as NumPy, Pandas, and Scikit-Learn.
Yet it can scale that computation across CPU cores on your local machine
all the way to distributed grid-based computing in large clusters.
While powerful, this takes some setup to execute in its full glory.
That's why Matthew Rocklin has teamed up with Hugo Bowne-Anderson
and others to launch a business to help Python-loving data scientists
run Dask workloads in the cloud.
And they're here to tell us all about how they've built this open-source foundational business.
And you know what? They must be on to something.
Between recording and releasing this episode,
they just raised $5 million in VC funding.
This is Talk Python to Me, episode 285, recorded August 12, 2020.
Welcome to Talk Python to Me, a weekly podcast on Python,
the language, the libraries, the ecosystem, and the personalities.
This is your host, Michael Kennedy.
Follow me on Twitter where I'm @mkennedy.
Keep up with the show and listen to past episodes at talkpython.fm.
And follow the show on Twitter via at Talk Python.
This episode is brought to you by Brilliant.org and Monday.com.
Please check out what they're offering during their segments.
It really helps support the show.
Talk Python to Me is partially supported by our training courses.
Do you want to learn Python, but you can't bear to subscribe to yet another service?
At Talk Python Training, we hate subscriptions too.
That's why our course bundle gives you full access to the entire library of courses
for one fair price.
That's right.
With the course bundle, you save 70% off the full price of our courses,
and you own them all forever.
That includes courses published at the time of the purchase,
as well as courses released within about a year of the bundle.
So stop subscribing and start learning at talkpython.fm/everything.
Matthew, Hugo, welcome back to Talk Python to Me.
Hi, Michael.
Hey, Michael.
Thanks for having us again after a couple of years.
Yeah, it's fabulous to have you both back.
You all were guests previously.
Hugo, you were on a really popular episode 139,
Paths into a Data Science Career,
which I think is great helping people do that.
And Matthew, you were 207, Paralyzing Computation with Dask.
Oh, I think you'll beat me.
You beat me on the show, Hugo.
It's not a competition.
But if it was, you're right.
You would have won.
Yes, that's right.
But I think this talk is going to be a really interesting extension
of the one that you were on, Matthew,
where we talked about the technical stuff of Dask and the computation.
And now, you know, it's really grown a lot.
That was February 2019.
That was a time in the world when you could go places.
Like you could just go out and you could go to a place where they made food
and you could physically touch another person
and then just take it and you wouldn't worry about it.
It was amazing.
That's right.
Yeah.
The actual remote experience of developing software
hasn't changed a ton.
I think actually people in our space have more or less the same workflow.
We just, you know, don't see each other at conferences any longer.
Yeah.
If we were accused of being antisocial as developers, well, we've taken it up a notch
or everyone's just come.
Other people have come to join us in this weird world.
But yeah, actually, I think software is pretty social as, you know, even though it gets categorized,
not so much that way.
So it's great to have you both back.
I'm looking forward to talking about Dask, but especially Coiled and this new company you
are starting and this new platform you're starting sort of based on taking that to the next level.
So it's going to be a really fun conversation.
Yeah.
I'm looking forward to it.
As am I.
Yeah, absolutely.
Yeah.
Now, before we get into it, though, you both were on before and I asked how you got into
programming and how you got into Python.
So I might have a really, you know, maybe keep it short since there's two of you and
we did cover some of the stuff a little before, but let's try a different question.
How did you get into data science?
You go, you want to go first?
Sure.
I was working in applied math in cell biology and biophysics.
And my job was ostensibly to do a bunch of mathematical modeling.
But all my collaborators were generating loads of data that I needed to figure out how to
analyze to collaborate with them and even, you know, play a big role in the iterative design
of experiments and all of this type of stuff.
This was 2011, 2012.
Excel didn't seem like a great answer.
That's where I started.
And then I went to R and then I went to Python and kind of learned them concurrently because
I was working with biologists.
R was quite popular, but the IPython notebook was becoming more and more popular.
It was a great resource for teaching oneself and teaching others.
So I jumped in then and worked in research, worked in education a lot, and then moved to
industry, to tech, and started working in ed tech to educate people around all of these
tools as well.
Yeah.
Excellent.
Matthew, how about yourself?
I think for me, that probably the culmination point or the inflection point was just after
I graduated from university.
I graduated with like a physics and astronomy degree.
And I was looking at job applications.
I didn't like any of the jobs that I was qualified for.
But the jobs that I loved.
I had the same feeling when I studied math.
I'm like, I love this stuff, but what am I going to do with this?
And none of this looks that great to me.
But I didn't know how to code.
I had been coding since I was like a kid on an old TI calculator.
And all of the programming mixed with science jobs, those were fascinating.
So I actually went into graduate school for computer science, scientific computing, and that
was a really good fit for me.
I love that I got to touch all sorts of different domains.
But that was probably the inflection point is looking at job applications after having
already graduated college and realizing, ah, I think I made a mistake.
Maybe I should have turned left earlier.
That's really interesting because a lot of people, they look around and they see folks
who have successfully created these amazing open source libraries and projects, initiatives,
you know, like Dask.
And they're like, the people who get to do that, they've been programming since they were
five and they got a computer science degree and they just knew they wanted to do that.
And I think that's not actually as true as often people think it is.
Right.
I think none of us got computer science degrees.
Is that fair?
Yeah, I didn't.
I got a computer science book after I decided I didn't want to work in math anymore and started
like, you know, C++ book and started going on that.
That's not the same as a degree though.
Good plan.
I feel like there's an analog in the data science world as well with respect to, you know,
all these boot camps that happen now and now masters in data science at prestigious
universities and relatively few people I know at least have taken the university track.
I think boot camp to junior data scientist positions far more prevalent.
But for more on that, you can check out the previous episode that I recorded with Michael.
Yes, exactly.
We've got a whole show on that one.
So, all right.
Now, the last time we spoke, Hugo, you were at data camp doing stuff with teaching people
online Python stuff.
That was awesome.
And Matthew, yeah, yeah, cool.
And Matthew, you were just moving to do a little bit of collaborative stuff with NVIDIA, but
now you both have, you know, teamed up, joined forces to do something else, right?
What are you doing nowadays?
So, we're building a company called Coiled, essentially to productize for the enterprise
a lot of features of the PyData ecosystem and Dask in particular.
So, the V1 of our product, we're just about to launch.
So, it's mid-August 2020, we're about to launch, is managing Dask and distributed compute
in the cloud for you and handling security, conda doc environments, team management, this
type of stuff.
And that doesn't really say what we do on a day-to-day basis.
I think I could list what we don't do on a day-to-day basis more quickly than what we do.
Yeah, sure.
But having, you know, incorporated the company in February, it's kind of waking up every day
and seeing what the most impactful stuff we can do actually is.
And that's really exciting.
And it's a great, I'm really excited to work with Matt and the whole Coiled team.
Matthew, how about you?
What do you do day to day?
You've joined up with Hugo on Coiled.
Yeah.
So, day-to-day, you know, I still help maintain Dask.
So, there's a ton of GitHub conversations, you know, Discord, Stack Overflow.
But now, we're also making a company.
So, we're, you know, figuring out sales.
We're figuring out legal.
There's a ton of sort of nuts and bolts of running a company.
That is quite difficult.
As Hugo was saying, listening to what you can do is different from what you can't.
Yeah, exactly.
So, you went to school for physics and astronomy, and then you got a master's degree in computer science, and then you did some really interesting data science around Dask.
I bet none of that taught you about marketing funnels or accounting or taxation law or any of that fun stuff, right?
You'd actually be surprised.
Like, running...
Like, yeah.
Maintaining an open source project includes lots of those things.
Okay.
So, there's actually a lot of, like, we're hiring.
We do a lot of community management.
There's a lot of, like, employer-employee kinds of relationships that occur.
Right.
People are new to the project.
Okay.
Yeah.
You need to have relationships with large companies like NVIDIA or Google or Microsoft.
Like, running a sizable open source project is actually not so dissimilar from running a business.
Yeah.
Now, taxation laws and legal agreements, there's certainly more of them now.
Probably so.
But, yeah, you guys probably wear a lot of hats as you're getting this stuff off the ground.
Indeed.
Very much so.
Yeah.
And to speak to Matt's point, when we first started working together, he was like, okay, what's the call to action on the landing page?
And I was like, oh, great.
Let's have that conversation.
And his, you know, appreciation of design ethics, sorry, design aesthetics and marketing funnels, I think is actually, I was pleasantly surprised.
Yeah.
Well, I mean, so there are probably, you know, 10 to 15 to 20 people who work on desk at different companies.
You know, many of whom we've, like, tried to get jobs.
So, you know, we do marketing.
We do sales.
We do all of those kinds of things you do inside of companies.
We just do it without paying anybody directly or without having any actual control over everything.
Running with responsibility is kind of like running a company without any power.
It's a lot of soft power.
Sounds like product management.
Yeah, I can imagine.
Sure.
It does.
I don't know.
All right.
Cool.
And I guess also just throw out there really quick, Hugo, you did the DataFrame podcast for a while.
So people may also know you from there as well, right?
Are you still doing that?
No, no, I'm not.
And I miss podcasting a great deal.
I'm very much enjoying going on podcasts.
But Matt and I have some secret plans to start podcasting in the nearish future.
So that may be a bit of a teaser there.
But yeah, that was a really fun podcast to put out weekly.
And of course, I came on your show, on this show before doing that.
I just want to let everyone know that Michael was actually incredibly helpful in getting the podcast up and running and letting me know all the things that he learned along the way that, you know, I still learned a lot along the way.
But there are several things that Michael helped so wonderfully with.
So thank you for that, Michael.
Oh, you're really welcome.
I was glad to see you having success there.
And I'm looking forward to whatever secret project you guys have in mind.
As am I.
Awesome.
So we're going to talk about Dask and open source and where maybe some sort of company making this a little more powerful or amplifying the message there might come from.
But I wanted to start a conversation a little more broad and philosophical.
So I'm going to talk about two things real quick.
First of all, we saw in 2017, Stack Overflow published an article called The Incredible Growth of Python.
And it showed Python being pretty flat for many years, relatively, along with a bunch of other languages.
And then around 2012, you know, somebody kicked the derivative up or the second derivative.
And it just took off.
Right.
And it went up and up.
And they said, look at this.
It's about to pass these other languages.
And if we predict out, look how crazy it's going to get.
And, you know, that was three years ago.
We can look back, you know, I'll actually link to the Stack Overflow trends now.
And those predictions underestimated how popular Python was going to be.
But more so, they underestimated the stability of the other languages.
And they're actually going down more than the flatness that they predicted, which is, I think all those kinds of things is really interesting.
My theory is a lot of folks came into Python because of the data science stack around that timeframe.
And so I guess my question to you all is, you know, how much is this incredible growth of Python, the incredible growth of data science in Python versus more broad stories around there?
I think there's a lot of, I think the data science or scientific stack inside of Python certainly played a large role in that.
And, you know, I think that's because we understood, I think that the scientific stack targeted very much scientific users, which were a good proxy for data science users today.
Yeah.
And so we had the same combination of performance and accessibility that was necessary to meet that need.
So we're sort of ahead of the game by accident.
Those are why a lot of the maintainers have a science background.
Right.
What I would say, though, is that Python is really only powerful today because of that union of the data science stack with the web stack, with the visualization stack, with the system operations stack.
And it's really the fact that we can do all of those things together, which make Python sort of the standard default place to build advanced applications today.
You know, if we were only MATLAB, for example, and we couldn't do web servers, we would be sort of a fringe language.
We would be a niche.
If we were only, you know, Scala and could do only Spark, we would also be sort of a niche.
Python can do everything.
And that is where you can build these really rich and awesome applications.
Yeah.
I think that's a really good point.
I mean, people talk about that's why Node.js had the interest that it did, because you could sort of solve the problem in all the places you had to work.
And I feel like that's kind of the story as well for Python on the scientific computation side and to some degree on the website as well.
I mean, we all have to write HTML and stuff.
But, you know, the way I think of it is, you know, if there's a biologist who's coming in and she has to do a little bit of computation, she's like, okay, I just need to do this.
I need to make this graph.
This data is too big for whatever.
If I can write these 10 lines of code, not even in a function, just top to bottom, straight down, write these five lines, 10 lines of code, get this amazing output by using all these libraries.
Eventually, the idea of like, well, maybe I need to pass different data.
So maybe I need to write a function.
And then, you know, you get a little bit farther.
No, now I'm going to reuse this.
I'm going to make this package.
Right.
You know, two years later, you look back and it's like, how did I become a programmer?
I thought I was a biologist.
I never, ever intended to be that.
So I feel like Python brings a lot of people in through that sort of gravity.
But because it'll solve the problems that are more advanced and has this rich sort of top end, you don't have to abandon it like you would MATLAB and go learn something else.
You just get to stay there.
And I think people are, it's sticky in that regard.
I agree.
This is a really common theme in how we think about data science.
There's this on-ramp, right?
You know nothing or you know how to use Excel.
You can use a little bit of pandas.
You can use a little bit of Dask on one machine.
You can go out to scale on a cloud.
You can run on the world's biggest supercomputers, right?
And it's that smooth experience that we think about.
We're getting ahead of myself a little bit talking about Dask.
But that smooth experience of starting from nothing and working up to being amazing is what I think a lot of the Python ethos is about.
Yeah, I agree.
I agree with all of that.
And I do think it's the rise of an entire community and network of tooling in the Python landscape.
It's also the rise of tireless educators such as the carpentries, data carpentry and software carpentry bringing this stuff around the world.
I'm very humbled to have played a small role in my work at DataCamp to spread the gospel of Python.
I've never used that term before.
We'll see how that lands.
The other thing I think that I've been really excited about is seeing the wider Python community embrace data science as a fundamental part of the Python landscape now.
I don't know if anyone's done a data analysis of, let's say, data science talks and keynotes and tutorials at PyCon over the past 10 years.
But at least anecdotally, we've seen a huge embrace there.
I mean, it was where we first met in your hometown of Portland, right?
Oregon.
Yeah.
Right.
Catherine Hough and Jake Vanderplus were two keynotes several years ago.
And I was like, oh, wow.
Yeah, they talked about the mosaic and it was beautiful.
And we're having keynotes from the Python community.
Exactly.
Yeah.
Super interesting.
So I do think that that's a lot of the magic of Python is that it welcomes people from these different areas.
And there was a really interesting survey.
I think it was the JetBrains PSF combined survey that asked something like, how many you are data scientists and what percentage of the Python community do you believe data scientists are?
And data scientists made up almost like the equal partition of web, which were the two biggest groups, but they thought they were much less represented because they, I think they felt like they were working more individually, but there were just so many of them.
So it was really interesting that they believed that they were not as big of a part as they actually were.
But I think that that perception is starting to change.
I'd be interested in what type of like self-identification bias there is with respect to data science.
Like I almost get the impression everyone has to identify as a data scientist these days, even like whatever they do, even if they're a gardener.
It's true.
Have you, have you touched pandas?
Then you are.
This portion of Talk Python to Me is brought to you by Brilliant.org.
Brilliant has digestible courses in topics from the basics of scientific thinking all the way up to high-end science like quantum computing.
And while quantum computing may sound complicated, Brilliant makes complex learning uncomplicated and fun.
It's super easy to get started, and they've got so many science and math courses to choose from.
I recently used Brilliant to get into rocket science for an upcoming episode, and it was a blast.
The interactive courses are presented in a clean and accessible way, and you could go from knowing nothing about a topic to having a deep understanding.
Put your spare time to good use and hugely improve your critical thinking skills.
Go to talkpython.fm/brilliant and sign up for free.
The first 200 people that use that link get 20% off the premium subscription.
That's talkpython.fm/brilliant, or just click the link in the show notes.
Another thing that I want to ask you in this sort of philosophical idea is that I mostly do web stuff with Python.
So I run my online stuff, my online training company, and various things with Python.
But obviously, I'm interested in all of it.
When I look at the web world, I feel like once Python 3 really got fully adopted, or at least became the default thing to do, a whole bunch of older ideas were all of a sudden still relevant, but they became, you know, that's neat.
But let's rethink this now that we can.
So I'm thinking of things like FastAPI, where they use type annotations to mean stuff, or, you know, things like that, or we're going to build this from the ground up with async and await, and so on.
So there were just so many different web frameworks and other tools that just came out of nowhere.
And some of them are not really maintained anymore.
But all these flowers bloomed.
And it was just a really interesting thing to see.
I don't have the same visibility in the data science side for that.
Did that happen?
And what was it like?
I think to a certain extent, it did.
I think probably larger is the widespread adoption of tools and not necessarily the creation of new tooling and the development of specific tooling as well.
But there are several tools.
I think the first one that really is so important is the Jupyter ecosystem.
I referred to IPython notebooks, and I did that accidentally, but also intentionally, because they were IPython notebooks back then, right?
That was super cool.
And I feel like people forget about IPython, but it's so important in the Jupyter ecosystem.
But yeah, since 3.6, we've seen two years ago, like JupyterLab 1.0, which I think brings the possibility of so many new people to use the entire ecosystem.
I always think JupyterLab does for Python, I think, what the RStudio IDE does for the R ecosystem.
It reduces the barrier to entry for so many people.
But then, as we've noted in other conversations, tools like Streamlit are really cool.
And I think this is going to be the next evolution of data tooling is bridging the gap between local computation and iterative science in Python and productionized science, right?
And machine learning.
So the ability to kind of build a machine learning product quite quickly is wonderful there.
Yeah, Streamlit was definitely one of the things that came to mind for me is like, this is really a different take on how this works, but it's kind of a neat, modern way to do it.
Exactly.
So for me, it wasn't so much the change of Python 3.6.
I think the scientific stack, the PyData stack actually adopted Python 3 like two or three years before the web stack.
Yeah, they definitely had a head start there.
That was great.
So I think that wasn't as transformational.
We had a much more smooth transition, I think.
I think around the same time, though, there was this huge influx of new people and new actors in the system.
So there's like, you know, as we shifted from being this sort of fringe scientific computing language to becoming the de facto standard language for ML AI workloads, with the option of like TensorFlow and PyTorch, you've got, you know, Google and Facebook acting, you've got Nvidia in there now.
And you have just, you know, a 10x in the user growth.
That is really, I think, our like, change moment is the like the TensorFlow engagement of companies for better or for worse.
Yeah.
What about enterprises and large corporations seeing the PyData stack as legitimately the thing that they could adopt over, I don't know, saying they have to do with Java or something like that?
Like, it seems like that's changed as well.
Yeah, there's a huge acceptance of Python in both in the data science machine learning space, but also in production, right?
As sort of Docker came up and as Kubernetes came up, like Python became a thing you could easily deploy into PenPom.
And that's new as of the last decade.
And with that comes a bunch of money to be made, which again, brings in this like other slew of actors in this space.
Yeah.
Both good and bad.
Yeah.
I think this is something which started for the most part in tech, where we saw massive, massive wins in open source adoption and then bled out slowly.
I mean, finances is a great example, like seeing how much places like JPMC and Capital One and these places use Python now.
But then we're seeing it in retail.
I mean, one of the great use cases of Dask and Rapids and XGBoost is at Walmart.
Going back to tech, the fact that Netflix runs like hundreds of thousands of Jupyter notebook batch jobs a day or something like that.
And they're hiring.
I mean, they've got a bunch of Jupyter core devs, right?
Yeah, their whole paper mill thing.
Yeah.
Yeah, that's really interesting.
I guess the early start on Python 3, because a lot of the tooling was improving and there wasn't as much like legacy Python data science.
I think that was part of the key to being able to just say, you know what?
We're just going to start something new on these new set of tools, new machine learning library.
Let's just use Python 3 as opposed to, well, we're still on this web framework.
We can't change versions.
And that thing depends on this.
So we're stuck, you know, seven or eight years in the past.
So, yeah, pretty cool.
I mean, it was still a huge effort.
But I think there's just like there was less production use of the data science stack.
It seemed like there was production use of the web stack.
And that's what's really hard to change.
And I'll also add that data scientists require flexibility and nimbleness and agility in their tooling.
And it's such the questions they're answering are changing so quickly.
The way these questions integrate into making business decisions.
And that interface is changing so quickly that the tooling is kind of moving alongside that.
And there's this wonderful co-evolution between the tooling and the techniques and the questions that we're required to answer.
Yeah, that's a good point.
All right.
So let's set the foundation for this project, this company that you all are working on.
And that would be Dask.
Matthew, you want to kick us off?
Tell us, you give us the summary of Dask and all the cool things that it does.
I mean, we did talk about it at WAGA, but that was over a year and probably not everyone heard it anyway.
Yeah, sure.
So Dask is an open source Python library that was designed to parallelize other Python libraries.
So we first started Dask at Anaconda.
And the goal was to parallelize out NumPy and Pandas and Scikit-learn to sort of like the foundation of the sort of scientific Python Python Python stack.
What we found pretty quickly is that about half users we were targeting, that's exactly what they wanted.
They had a big table or a big array of numbers.
And they wanted a bigger version of those things with the same APIs and the same feel.
And so Dask gave that to them.
But about half of our users wanted to do something totally different.
They wanted to use the internals of Dask to parallelize out some other crazy thing that they were building.
As we mentioned, in Python, people were building all sorts of new libraries.
And they wanted to add a little parallelism, a little bit of scalability into their library.
Yeah.
And the internals of Dask allowed them to do that.
So Dask is, at its core, a general purpose library for parallel computing.
You can think of it in the same way you think of the threading module or the concurrent futures module
or anything like that in the standard library.
But it runs at scale and gives you full scalability.
Right.
When you say at scale, you mean you could have a cluster of 20 machines.
Yeah.
Or 200.
Yeah.
Something that looks like a Pandas data frame.
And you ask it to do computation.
And that computation happens on all those machines.
Exactly.
Yeah.
And it's really smart about not moving data.
Because if you've got a lot of data, the movement of it around might actually be the slowest
part, right?
Yeah.
That and like 20 things.
Yeah.
So we think very, very deeply about how to run complicated task graphs at scale.
And that allows for us to do things like big pandas.
But also, you could use it in the same way you use Celery behind a web application.
Or you could use it backing a big machine learning application.
So Dask is a very flexible tool on which many people have built these sort of more special
purpose scalability tools.
You can think of it kind of like a tool that you would use to build Spark or the tool that
you would use to build a parallel airflow, for example.
I'll just build on this briefly by quoting Matt.
And I always quote him on this.
So he's heard me quote him many times on this.
But this is a blog post he wrote called A Brief History of Dask, which you can find on
coil.io forward slash blog.
But he speaks to three goals that the original idea that him and several other people at Anaconda
were thinking about.
Two technical goals, which were to harness the power of all the cores on your laptop in
parallel.
A second one to support larger than memory computation.
And these we know about.
But he also mentions a social goal, which is to invent nothing.
And I quote, we wanted to be as familiar as possible to what users already knew in the
Pi data stack.
And I think as the Pi data stack grew and garnered a lot of adoption, the fact that there was
a social goal to invent nothing allows pandas and NumPy users then to use it immediately.
And Matt says, you know, doesn't have an API because it uses the API, the packages that
it allows people to do distributed compute with.
Yeah, that's a really good goal because it doesn't matter how amazing the thing you came
up with.
If you say, OK, well, you used to talk to databases, but now use our special API that's
like a database, but it's not exactly because it's better.
And we have this graphing thing and it's like Altair, but it's not really Altair.
It's just motivated by it.
So you can just redo all your stuff and it's going to be better.
And, you know, a lot of times it's like, you know what?
The tools that I have really work well and I don't want to reinvent my world.
Exactly.
Yeah.
I call this the principle of minimal creativity.
I love it.
It's like productive.
That's a beautiful one.
It's similar to the productive, like laziness of developers or something like that.
Right?
Sure.
Yeah.
This thing that we thought was great, creativity, you know, building a new wonderful thing is
actually horrible.
Like you really don't want to impose your thoughts on others.
Building boring tools.
Yeah.
Right.
Building boring tools.
Yeah.
Otherwise known as getting stuff done, right?
This portion of Talk Python to Me is sponsored by Monday.com.
Monday.com is an online platform that powers over 100,000 teams daily work.
It's an easy to use, flexible and visual teamwork platform beautifully designed to manage any
team organization or online process.
Now, for most of us, we missed our chance to build the first apps ever in the mobile app
stores.
It was a once in a lifetime opportunity, but it's one that's coming around again.
Monday.com is launching their marketplace and running a contest for the best new apps featured
right from the get go.
Want to be one of the first in the Monday.com apps marketplace?
Start building today.
They're even giving away $184,000 in prizes, including three Teslas, 10 MacBooks, and more.
Build your idea for an app and get in front of hundreds of thousands of users on day one.
Start building today by visiting monday.com slash Python, or just click the link in your
podcast player's show notes.
My understanding is that Dask is used for all these different projects.
And like sometimes you'll find Dask being used and you're not even really aware that
Dask is somehow powering maybe it's parallelism or whatever.
So maybe give us a couple of examples of places you found Dask being used that surprised you or
you're proud of.
Yeah, sure.
I'll maybe talk about maybe Pangio first.
So I think I mentioned Pangio at the end of our last podcast.
Yeah.
So Pangio is amazing.
Pangio is a collaboration of earth scientists, so like climate scientists, meteorologists,
oceanographers, and a bunch of open source software developers who teamed up to make a new software
stack to solve a lot of climate science problems.
We combined things like JupyterHub, Dask, Kubernetes, and other libraries on top of that, like Xarray,
intake, all sorts of things.
Yeah.
And we just like, we revolutionized the way that that sector computes.
There were sort of decades old software stacks that we just immediately showed were not nearly
as powerful as we were able to do together, both in terms of computation and in terms of
accessibility.
It's at the point where, you know, if you were an undergraduate student in the Philippines,
you can go and you can look at cloud-based data sets that are many terabytes large and
see, you know, what climate change will do with sea level rise, for example.
And that's something that we were all, that happened in like six or 12 months.
It was amazing.
And that's such an important problem that we need to solve.
And so to know that some of the software you helped create is central to making that happen.
That's really cool.
Me and like a thousand other people.
Yeah, yeah, yeah.
Of course.
Absolutely.
Yeah.
But it was a great, it was a great example of a bunch of different kinds of people all
working together.
It was a bunch of like computer scientists working together.
We wouldn't have done it correctly.
Once the oceanographers are working together, it wouldn't have done it all together.
It needed to be a collaboration.
Right.
Yeah.
How many oceanographers are like, you know what?
I'm going to set up a Kubernetes cluster so we can do automatic scale out, but then scale
back down.
You'd be surprised.
You know what?
No, no, I know.
You'd be surprised.
They ended up having to learn those skill sets over time, which is partially why we made Coiled,
is to stop that from having to be the case.
They're also sharp folks.
I mean, people who are in that space are quite sharp.
Another example might be so Rapids.
So when we last talked, I had just joined NVIDIA.
So at the time, NVIDIA was building Rapids data science suite that is GPU accelerated.
So they have like NumPy, Pandas, CycleLearn equivalents that all run on the GPU.
It's a little bit like what Dask does for parallelism.
They're somewhat attempting to do that for the CUDA cores and GPU, right?
Yeah, exactly.
So, you know, Dask allowed you to do from Pandas to parallel Pandas.
Rapids allows you to go from Pandas to GPU accelerated Pandas.
And then Rapids and Dask together allow you to go to, you know, GPU accelerated Pandas across
the cluster of machines.
Yeah, that's a great way to put it together.
Yeah.
The really great result we had out there, which is super surprising to me, was they did a
benchmark, the TPC XPB benchmark, where there's like a bunch of sort of data science and business
analytics queries.
And they got something like 40% faster and like seven times cheaper than the next solution,
which is like Spark or MapReduce on a bunch of Dell machines.
Yeah.
And so in some sense, that's like 400, right?
Because it's, you know, the 40X faster and the cheaper, right?
Because normally you think I can get a lot faster, but I spend a lot of more money or I can get
cheaper, but it goes a lot slower.
But if you get it to expand in both axes, that's awesome.
No, to be honest here, it's a more expensive machine, but running for a much shorter amount
of time.
Yeah.
So it's not 400X, it's genuinely 40X faster and only 7X cheaper.
But yeah, no, it's amazing.
And I think what I love about that is that there are all of these sort of old guard companies
building out solutions for this benchmark.
You've got Dell, HHP, and they're all using like monolith software projects like Spark.
And this benchmark was different.
It was NVIDIA and it was people at Coiled and it was people at Blazing SQL, another startup
company.
There are a bunch of small startups and a bunch of small software projects that all collaborated
together to just smash this benchmark, right?
All the other companies were fighting over sort of 10%, 20% gains.
And we come in with like a 40X speed improvement.
And so it just sort of, we just wiped everyone out, which was great.
Yeah, that's a super cool project.
And Rapids, I mean, it seems like that's a pretty early stage project and it's probably
just going to grow.
Early stage of moving fast.
I mean, that's an example of a company investing in open source with a team of 50 people.
It's impressive.
And then the last one I might mention is Napari, which is kind of like Pangeo in that
they are using Dask to advance another field, in this case, biomedical imaging.
But their approach is really different.
A lot of lab bench scientists, people who are looking at microscopes, don't know how to program.
And so we can't give them a Jupyter notebook that they can play with.
Instead, they're used to sort of point and click interfaces.
And so Napari is an image viewer for large images.
With a point and click interface, you sort of pan and zoom around these, you know, picture
of a cell or picture of some sort of cancer thing.
And what I love about this is that they use other parts of Python.
They use the whole QT side of Python.
So that's a QT based application.
And they're not targeting data scientists.
They're targeting actual scientists.
And I think that's like a great space for growth of Python in the future is to build applications.
Yeah, yeah, yeah.
Because it's one thing to say we build it for data scientists.
We're kind of like Python programmers in general, but they have this special visualization data
handling skill set as opposed to the person who took your x-rays or whatever, right?
Yeah, exactly.
And also there's an order of magnitude growth that we can have.
Yeah.
And I'll also add to that that I've spoken with several users of Napari recently and the way
it changes their approach to science and their scientific flow.
I mean, they can do a bunch of imaging.
And whereas previously they'd have to wait until the next day to check out the images,
they can literally go away for 15 to 30 minutes, come back, check out the images, then plan the
next experiment.
So it changes their absolute flow state of scientific research and the rapid iterative
cycle for them.
Yeah, that's really awesome.
I mean, it's got to feel great to work on that project and just see, you know, it's making a true
impact for everyday people.
Yeah, that's cool.
The one other thing I'll add, which I think we hinted at before, is that Dask is famously used for
leveraging clusters and parallelization, but it also does it locally.
So before you scale out to your cluster or whatever, you can scale up to do out-of-core
computing on larger data sets yourself.
So it allows a lot of people to do more locally than they'd otherwise be able to across all
the types of questions we've been discussing, which is pretty cool.
Yeah, absolutely.
Well, you know, the MacBook that I'm sitting here with, the MacBook Pro is a core i9 with
six hyper-threaded cores.
So 12, basically.
And if I go and do Python stuff really hard on it, I get one twelfth the CPU consumption
of what's available.
And my gaming machine is, you know, 16 cores, right?
It's like, if that stuff is just mostly idle in the Python world, unless you find a way to
take advantage of it.
And so that actually really surprised me about Dask.
I thought of Dask as, you know, the way we sort of opened the conversation.
It's this way to take huge data that has to fit into a cluster and not just onto my little
laptop and run it distributed in terms of distributed machines.
But the fact that it also runs and sort of scales up and takes better advantage of your
local hardware is pretty awesome.
The median cluster size is one, which is just a laptop.
And so we optimize for that case.
Yeah.
Yeah, that's really cool.
I was going to add, the other thing to note is the interoperability with a lot of other
packages.
So if you're using scikit-learn and you want to parallelize your hyperparameter search or
whatever it is, you can use the, I think it's the njobs quag or something like that.
And you can use Dask in the backend there.
Recently, I was so excited to see Matt.
We're doing these YouTube live streams weekly of people using Dask and a bunch of other
stuff.
So subscribe to our YouTube channel if you're interested.
But marketing aside, somebody from Grubhub, Alex Egg, used Snorkel for weak supervision, which
is a clever way to label your data for supervised learning without actually hand labeling it.
And I saw Matt discover a sub-module of Snorkel called Snorkel Dask.
So seeing, you know, the whole array, the whole ecosystem start to incorporate Dask is really
exciting, right?
Yeah.
Yeah, that's cool.
I had no idea they'd integrated it.
I was like, oh, I just learned something today.
They're using this stuff.
Great.
That's really, really neat.
And yeah, I'll put a link to your YouTube channel there so people can check it out.
I think it's really interesting that people are doing stuff on Twitch and programming,
all these live streaming places that I never associated with programming for the longest
time.
It was always, you know, World of Warcraft or some other sort of gaming thing that was in
a different world.
It all starts with gaming, man.
Gaming's ahead of the curve, right?
Switching, putting on my for-profit hat just for a second.
Like now in COVID times, like marketing is completely the Wild West again.
Like we've got to figure out how to reach our audience.
I used to go to conferences and just know everybody.
Now, how do we do that?
You know, Twitch or live streaming is like a thing to play with.
Probably not the right thing, but we're going to find out.
And experimenting and finding out the right way to engage people today is actually a really
fun and interesting problem for which there are no right answers yet.
Yeah, yeah.
It definitely is the Wild West and it's a fun time, right?
Like you said, it's unknown, but it's really cool to be able to just explore all these
different ideas.
Hey, Hugo, marketing idea for you.
Let's get on all the cool Python podcasts and see if they can cross-market to coiled things.
I think that's a great idea.
Let me just note that down.
Yeah, great.
Yeah, well, I don't really know which ones you should talk to, but we talk after.
We embrace them after.
Who should we talk Python to?
I know, I know.
All right, so let's take it over to the business side a little bit.
We have DASK.
We talked about some of the things that it does.
One of the interesting challenges people often run into when they have these successful projects
is how do I take this really amazing and powerful thing that I built and allow me to keep working
on it by somehow getting paid to do so, right?
And I think probably the first step is we've seen a really big adoption of open source software on the enterprise.
It used to be, oh, what are you going to be doing?
Are you doing Java and Oracle?
Or are you doing Microsoft?
Which type of company are you at, right?
Like there's a lot of, there's even like Gardner reports talking about how open source software has not just lowered the cost for enterprises,
but actually increased the quality at the same time, which is like one of these double wins as well.
How do you guys see it?
So I'll add one more piece of the puzzle to the question in the sense that not only are we seeing a lot of people in enterprise adopting open source,
we're seeing, I'm actually going to paraphrase Brian Granger, who said this a couple of years ago at Jupiticon.
We're seeing a phase transition from a lot of people using open source individually in enterprise to large scale enterprise adoption of open source.
So having individuals use it within an organization, I think is, is something where the open source provides nearly all the value they, they need there.
But for an institution to actually adopt OSS at scale across an organization,
there are other moving parts that need to be in place that I think commercial companies can solve for.
So having said that, maybe Matt can talk about why we're starting Coiled.
Yeah.
I love the Brian phrase, phase transition language.
That sounds exactly like Brian, who's a physicist.
Physicist.
Physicist who then made Jupyter notebooks.
Yeah.
The way I think of it is that, sorry, so open source software one, right?
So like no new company is installing Oracle or SAS today.
They're installing open source.
But as we tossed out all of these sort of enterprise software companies and their enterprise software stacks,
we accidentally tossed out all the things they sold us that weren't software, right?
So like they would, Oracle would sell you, you know, their database things.
Like service level agreements.
Exactly.
How do, how do we get help if we're stuck and it does not working?
All that kind of stuff, right?
The sort of training safety blanket of commercial software.
Yeah.
Training, the safety blanket of enterprise support, but also, you know, hooking into enterprise office systems
or network security or sort of plugging all of those things together, integrating with other technologies.
And now that all these companies are adopting this open source stack, all of that stuff is missing.
And so it is again, the wild west.
And it's sort of a, it's an awkward place as a company to be adopting this technology.
I was in a conversation once with folks at NASA and they were saying, hey, look, what hosted notebook solution should we use?
At the time there was, there was Domino Data Labs.
There was Anaconda Enterprise was selling something.
There was AWS SageMaker.
And I said, hey, have you considered just using JupyterHub?
It's actually a really pleasant experience and it's free and it's easy to use.
And they said, no, but like we need to buy something.
Like we're not going to manage JupyterHub.
We need to buy something because we're NASA.
And the open source thought is just, it's free.
Why don't you just take it?
It's not so hard.
But of course for them, they don't want another puppy.
Right, exactly.
A thing they got to take care of and walk even in the rain.
Yeah.
And so that, I think filling in those gaps and providing all of that sort of supporting infrastructure,
which is both technological and cultural infrastructure, that I think is a great place where for-profit
companies can augment the open source software stacks that we have spent so all this time building
and have really just out-competed the proprietary software stacks.
But of course, doing those two together requires a lot of nuance.
I think we haven't yet figured out the right models to be a good actor in the open source
community that we love and love, that's highly principled, and also build a successful business.
Yeah.
And that's fun.
And that's what we're excited about experimenting with.
Well, and I think it's about time, right?
The fact that these companies, for lack of a better word, they've started to feel the pain.
They've decided they want to take on open source.
They see the value and they're going to move there, but they're like, but there's still these
problems or these new problems that we don't know how to solve.
And so I think there's opportunities for people to come along, knowledgeable in open source stuff
to help give them the support they need so that they can go to the CTO or whatever, say,
we can build on this and here's how we're going to get the support that we need.
Not, you know, Sarah's pretty good with Dask.
She could probably fork it and fix whatever.
Well, they've done that for a while and they're into problems.
Yes, I know.
To be clear, though, I think that isn't on them.
You said it's about time as though there's sort of blame.
But I think that blame is on us.
It's on the open source community.
Like we needed to learn how to speak corporation.
And like we're learning that.
We're learning how to write legal agreements that they can actually sign.
We're learning how to give them institutions that they can engage with on a peer-to-peer basis.
Right.
You know, Ford can't sign a contract with Dask.
Dask is not an entity that you can sue if they break your company.
Coiled, you can sue.
Like, great.
They can sign a contract with Coiled.
But I think that's really on us.
Our community needs to figure out how to build more of those institutions to engage better with
companies and eventually pull money out of them to feed back the open source innovation
that we've all been building really successfully over the last decade.
I think another part of the value commercial entities like Coil can add is, as Matt mentioned,
the PyData ecosystem is, for the most part, developed by a huge number of scientists and
people who are answering scientific questions themselves.
So the PyData ecosystem is very good at helping scientists and data scientists answer scientific
research or industry-based questions.
It doesn't necessarily solve for all the cultural challenges that occur within organizations
and the enterprise.
Now, I actually haven't...
This isn't as well thought out as I hope it to be in the future.
But these types of cultural concerns, I think, are about making sure everyone across an organization
is happy, such as IT, checking all the boxes from IT that I mentioned before, like network
security, auth, usage controls, making sure management is on board with everything that's happened.
So advanced telemetry for management so that they can enable collaboration and make sure
they're aware of costs and usage and that type of stuff.
So not necessarily solving for the nodes of the network of an organization, but solving for
the edge as well, I think, is something key that entities like Coil can help solve for.
Yeah, absolutely.
I definitely think that the donate button is not the right answer, right?
In the corporate world, making a donation, it doesn't even make sense.
How are the shareholders gaining value from this donation or whatever?
It just doesn't even make sense.
You can get pizza money pretty easily.
Yeah.
But going beyond, that's hard.
But yeah, having a career or a business around it is really tricky.
So I think you're right that the speaking corporate while keeping the ethos of open source
is pretty important.
So it sounds to me like you guys decided, let me guess, November to December time, you
decided there's this gap and you guys can start a company, which you founded in February, called
Coil to start addressing some of these problems in the data science, distributed computing world,
people doing task stuff.
That's right.
All right.
Yeah.
So tell us, what is Coil?
What slice of this enterprise challenge or corporate challenge are you taking on?
Yeah.
So Coil is a for-profit company based around scaling Python or sort of based around Dask,
whose mission is to make computing accessible, right?
So we care very deeply about enabling individuals to scale out comfortably and also extending that
capabilities into corporations.
We interacted with hundreds of companies who are using Dask and all had more or less the
same needs.
We mentioned them before, all the needs that you have around adopting open source software,
training, support, deployment problems, security off IT issues.
We were more or less begged by enough companies to make this thing that we decided to make it.
Yeah.
That's a good place to be.
Data scientists, as I mentioned before, require a lot of nimbleness and flexibility in the tools
they use.
And at the moment, they need to do all types of crazy stuff from, let's say they want to build
something at scale.
They need to, as we mentioned before, figure out Kubernetes and Docker containers.
And then like battle with AWS and all of this stuff.
So do a whole bunch of DevOps-y stuff, right?
That they shouldn't be doing.
Yeah.
And it probably makes their managers nervous because, oh yeah, all we had to do to make
this work is we created the Kubernetes cluster and then we put the data into this S3 bucket
and we were able to just talk to it and it was great.
Like, wait, wait, wait, wait, wait.
What's the access level or what's the publicity versus lockdown state of that S3 bucket?
Are we going to end up on the news next week because of this?
There's a story around Pangeo.
We mentioned Pangeo before.
The sort of Earth Science Collaboration Climate Science Group.
That was actually a really eye-opening experience for me because I really started to understand
what enterprise software looked like.
So what we did, I think we were giving a talk at the American Meteorological Society.
And over the weekend, a bunch of us hacked this thing together.
It was JupyterHub on the cloud with Dask enabled.
And so we computed this big data set.
And then we showed that everyone in the room could do the exact same computation on the cloud.
So I did this fantastic thing on stage.
And then we said, hey, everyone, open up your laptops.
You can do the same thing too.
And that blew up.
I think within about six months, we went from three groups in Columbia University, NCAR,
and Anaconda to about 50 groups.
So everybody was excited about this.
We sort of revolutionized how we do Earth System Science.
But then that's when the nightmare started.
Because suddenly we have all these groups trying to use this public access thing.
We had to figure out like, hey, wait a minute, this is costing us money.
So we had to implement user access controls.
Okay, who's whitelist on this thing?
Who can use it?
Suddenly, there were different groups in different continents who wanted to use different regions on the cloud.
Now we have to have not one Kubernetes cluster, but a dozen Kubernetes clusters.
Everyone wanted their own software to be installed.
The oceanographers have a different software stack from the satellite imagery people, it turns out.
And so they were all asking me, hey, can you just pip install this one more package, please?
And eventually, you can't add all those packages together.
So now we had to make software environment switchers.
It turns out that no one had...
We couldn't figure out how to do AWS credentials.
So people couldn't store their data on the cloud.
It was read...
You could read any data, but you couldn't then transform it and then store it into your own buckets.
And so figuring out auth and passing that around.
And then security, it was open for an embarrassing amount of time before Bitcoin folks showed up.
It was all of those problems.
Eventually, I stepped back.
And as you sort of predicted, all the oceanographers started taking over Kubernetes.
And that was what happened.
And that experience really showed me personally all of the challenges around doing this kind of science or data science at scale, both on a technical perspective, but also on a social cultural perspective.
There's a ton more than just algorithms work to do.
Yeah, it seems so easy just to set it up.
And then there's just one more thing and one more thing.
And eventually, yeah, you've got oceanographers doing Kubernetes, which is fine.
They can do it.
But you shouldn't have to understand how your car works just to go get groceries, right?
Or to go to work, right?
If that's not your intent, it should just get out of the way.
I mean, some of them then did become auto mechanics as a result, which is a fine career change.
Yeah, absolutely.
If you want it.
But if you're trying to do something else, you don't want to work on your car.
You just want to get there.
Awesome.
Okay, so tell us exactly what is it that Coiled is doing so we can sort of understand where it fits in trying to solve this enterprise, open source business story.
If I want to be your customer, what can I do?
Is it a SaaS service?
Is it like hosted notebooks?
What do I do?
Yeah, so Coiled sells many things.
Mostly, we focus on the Coiled product, which is a hosted Dask solution.
So we solve all of the infrastructure problems around hosting Dask.
So if you want to, if you're on our beta, for example, you could actually, I invited you just half an hour ago, Mike.
Yeah, and I'm sorry, I didn't get to it quick enough to sign up and play with it, but I wish I had.
So if you did, you could pip install Coiled wherever you run Python.
It could be in a Python session, could be in Jupyter Notebook, could be on the cloud.
And then you would ask for a cluster.
You'd say Coiled.cluster.
And that would allocate a bunch of machines for you on the cloud somewhere.
You would then connect to those machines in a super secure, super credentialized, very nice way.
And you'd be off to the races.
So if you start my beta, we sort of try to minimize the time of signing up to running computations on the cloud.
Currently, the number is around two or three minutes.
We can get it down to about one minute, I think.
Just enough time to make a cup of coffee.
Yeah.
If you have a Keurig with the pre-made filter thing, if you got to get the coffee out, maybe it won't be nice.
Yeah.
So from your perspective, it just looks like Dask.
We didn't have a set of Kubernetes.
But there's a bunch of other stuff around that that we manage.
So first, manage Dask clusters.
Second, customizable software environments.
You want to use your favorite software libraries.
And we're going to help you manage that between your local environment and also in Docker images on the cloud.
We also help you share that with your colleagues.
So often we find a sort of one person who manages software and they share it with other folks.
And then third, user management, cost management, and telemetry.
So that coil will help you understand what's going on.
Or more likely, we'll help your boss understand what you're doing and make sure that you don't break the bank.
Yeah.
I've definitely got to some very high cloud computing bills before.
Although in my defense, I said, this is going to be very expensive.
We should use this other service.
No, no.
We have a contract in agreement with this cloud service.
So we're going to use it.
Then I got a message.
Why did we spend $15,000 on that last month?
Yeah.
Because you told me to use it.
It would have been $500 over there.
But these surprises are unwelcome.
Yeah.
And so just elevating that to you visibly, right?
There's a page which shows all the running clusters.
It shows how much they're costing per hour and how much they've cost total.
You can aggregate those costs across users.
You can set policies.
Hey, I mean, by default, if you leave a cluster running, this is a super common mistake.
We'll just shut it off after 20 minutes for you.
So there's lots of things that you can do that save you a ton of money if you're doing them correctly.
So Coil is just our way of running Python at scale in the cloud in a way that's a bit opinionated.
It is the way that I find to be the best way to run, to run that.
And it also allows you to be opinionated as a user.
You can do it from the comfort of wherever you do your data science, right?
So if you like doing it in JupyterLab or Jupyter Notebooks or IPython, you can do it all from there.
So we're trying to meet end users where they are.
So we will spin up all the AWS stuff for you.
And you don't need to go there.
And I think one of the biggest pain points, which Matt hit the nail on the head with, is making sure that you can move seamlessly from local computation to cluster computation, where your environments and your data are all matched up, which is super exciting.
Maybe I'm doing some work in Jupyter, working with Dask to try to take advantage of the 16 cores that my machine has or whatever.
And at some point, I decide we're going to give it more data.
We're going to productionize it.
And it's going to actually need to be faster or work with more data.
I can basically switch where I'm talking to.
I can import coil, say, give me a cluster and go here.
And that's pretty much what that switch looks like.
Yeah.
You can run coil from anywhere.
You can run Python.
In that story, you're actually probably not starting with Dask.
You're probably starting with pandas on a very small sample of data.
In that same notebook, in that same process, you say, hey, wait, it's time to scale up.
Import Dask.
Use Dask locally.
You know, use your 16 cores.
Say, wait, actually, this is running a little slow.
I want to kick it up a notch.
I want to go to the cloud or go to your local Kubernetes cluster or whatever.
And then, you know, you import coiled, hit a button, and now you're running your computation
elsewhere on some remote cluster of honor machines, all in the same user flow.
You mentioned before, like, hey, are you hosting notebooks?
And actually, intentionally, we are not.
We do not want to own the user's environment because your user environment is going to look
so much different from everybody else's.
Maybe you don't use Jupyter.
Maybe you use PyCharm or VS Code.
Maybe you're actually just like running this in a cron job.
We don't want to own everything.
We just want to sprinkle in robust, secure parallelism and scalability into your existing
workflows, right?
So this is, again, in sort of the Dask ethos of invent nothing and being minimally creative.
Minimal invitation.
Yeah.
Minimal creativity.
Yeah.
The principle of minimal creativity.
Yeah.
So you don't have to do very much to switch to using coiled.
It's a small change.
So you talk about the different places I might, like, I could be using JupyterLab, which would
be cool.
I could be using VS Code or PyCharm, and that would be cool.
Another place that seems like it might be really interesting to use this is I'm in a fast
API backend, and I want to answer quick with a lot of data, right?
It could be, I guess what I'm getting at is like production.
Yeah, absolutely.
You can use Coil from anywhere you can use Python.
What's the story of data?
So, you know, one of the reasons I might switch away from just running Pandas or Dask would
be I have a lot of data.
At the same time, how do I get the data to you guys, to your clusters?
Because that, like I said, could be the slow thing moving around a cluster.
If you got to, like, get that out of one data center to another, that could even make it worse.
Yeah.
Well, we often find is that if you have, you know, gigabytes of data on your machine, it's
more likely that you've already downloaded the data from somewhere else.
You had your data on the cloud or on your local data center, it would have been better
just not to download it.
And so Coil really helps you run your computations in that remote space very comfortably.
So, you know, if you have data on AWS S3, you know, there's no reason to download it, open
up Coil, and you can just run on the data that's there.
Right.
Get an authenticated URL, like a signed URL over to that S3 bucket or something.
I mean, you already have the URL, right?
Yeah.
I mean, what we do is we scrape your local AWS credentials, generate a secure token, pass that
to all the Coil workers.
So those Coil workers look like you.
You then can operate on that data as though you were sitting, again, you have the ergonomic
experience of being on your laptop, but you have the computational experience of being on
the cloud.
And it feels much more proximate.
Yeah.
Okay.
That's really neat.
Where do these Kubernetes clusters that run my Dask stuff, where do they live?
Yeah.
So there's two answers to that.
One is you might have your own set of machines on-prem, you want to run Coil there.
This is actually really common today with GPU clusters.
There's really people buying all the GPU clusters.
They don't really know how to handle them.
Coil is a great way for that.
But if you're on AWS, so we currently support AWS and Kubernetes going to other clouds whenever
that makes sense for us.
If you're on AWS, they're running on the cloud.
We actually don't use Kubernetes.
We chose to use Elastic Container Service, ECS, which is like a older, slightly simpler system.
They could be running on our account if you want to use our hosted thing, or we can deploy
it inside of your AWS account.
Okay.
Yeah.
And I guess if it deploys on your AWS account, you could say, I'd like this to run in the
Bahrain data center or the Sydney one or wherever.
Sure.
I mean, we could also do that anywhere.
You can run like our public version of Coil.
So we host a public version, which is designed mostly for individuals to increase data access.
And that can run on any region.
So because we're using systems like ECS, we don't have to maintain Kubernetes clusters
everywhere.
We can run your code anywhere AWS is running.
Can you also run against an arbitrary Kubernetes cluster?
So like if I have set up a Kubernetes cluster at Ludnode, and I give you the connection and
credentials to the Kubernetes cluster, could I say run it there?
Yeah, you would want to run Coil very close to that system so that we have the right access
everywhere.
Oh, yes.
Yeah.
Okay.
Yeah.
That sounds quite neat.
It's fairly close conceptually to an infrastructure as a service sort of model in terms of like
what I'm buying, what I'm getting, what I'm paying for, but specifically focused on helping
data scientists not actually care about the infrastructure.
I'm asking those like, what do I pay for?
Right.
Do I pay for like the CPU cycle computation, sort of like a Lambda, like the function call?
Do I, for the machines that are running?
That is a super interesting question for which honestly, I don't have a good answer yet.
We are like talking about this every week right now.
Right now, you either pay, it's free for individuals currently, we're in beta, or like big companies
are signing us some check with some other pricing involved.
Yeah.
I actually recently wrote a blog post on cloud pricing, which I think is broken in lots of
ways.
Yeah.
The obvious thing to do is to charge you a surcharge on top of whatever your cloud provider
charges you.
If Amazon charges you a hundred bucks, we'll charge you a hundred bucks too.
That's kind of like the Databricks model.
Databricks charges about a hundred percent markup.
AWS charges about like a 40 or 50 percent markup.
I actually hate this model because it totally misaligns incentives.
So if we do this, then I'm incentivized to make your task workload as inefficient as possible
and use as many resources as possible.
You know what?
Reserved instances and spot instances, we don't need any of that.
Give me the most expensive flavor of a large three or whatever the machine name is, right?
Like that would be the incentive, which is actually the exact opposite of what you would hope.
It's like if Toyota or Ford were incentivized to make you burn more gas, right?
It's as though like the tar company has got a kickback from all the oil companies for burning
gas and you'd never get the Prius in that situation or the Tesla.
And we want to make the Tesla, right?
We want to make the super sexy, super ergonomic experience that's highly efficient and saves
you money in the long run.
So we're still thinking about that.
If your listeners have thoughts on the right pricing model, we'd love to hear from you at
hello at coil.io.
It is tricky.
I don't know.
I mean, I was just, I'm doing this new project where the video players for my online courses,
I would like, so this is a whole like custom player, just HTML5 and JavaScript, Python.
And I want when you hover over the little scrubber to like change the time, it to show
you a preview of each thing.
And I, okay, well, what I can do is I can re-encode all the videos really small and then
like put a little hidden player and like just set the time and move that around.
It all works beautifully, but I've got 200 hours of high def video that I need to turn
into that.
And so I literally sat down and said, okay, well, how much is it going to cost me to feed
that through elastic transcoder at AWS and in bandwidth and get it back and get it.
So I actually have that as those pictures I could show like, all right, that's going to
cost about five or $600.
All right.
This feature, having the data to back this feature is worth $600 to me.
I'll do it.
But I just think this, this thinking about how do I pay for a thing and the trade-offs is
really interesting.
Yeah, no, I'm putting on my sales hat for a second too.
Like that is a very clear win where like you need video.
It will give you this much money in sales.
Great.
It makes sense.
When you're talking about accelerating data science in a company, like the value that you're
providing is so far removed.
Yeah.
So like, you know, if I was going to sell you an efficient refrigerator, I would say,
Hey, look, it's going to save you, you know, $200 in electricity bill over the year,
over 10 years is $2,000.
Great.
Pay me a thousand dollars.
That's a very clear calculus.
Yeah.
But when it's like, Oh yeah, I'm going to help you scale Python.
That's like not quite as clearly valuable.
We need to get into a longer conversation of like, well, why do you care about Python?
Why do you care about data science?
How much value does that bring to you?
What actually are you trying to solve for?
Oh, you're trying to increase, you know, retention in your customers.
Like it's like, you have to get a lot more in depth with your customers to figure out what
the value proposition is of like more ergonomic scaled Python.
You get into things like, well, what if we could get your recommender system, the next
version into production a month sooner?
Yeah.
How much money would that get you?
And what if we could get you answers 100 milliseconds quicker?
How many fewer bouncing users would you have leaving your site?
Like these are, they're meaningful, but they're, they're not as clear cut.
So they are interesting discussions.
I think.
I think you've raised several important concerns there.
And one in particular is like, there are a whole bunch of companies who have hired lots
of data scientists.
Cause that's what you do these days.
And they actually haven't seen the value delivered.
They've got data scientists who are getting, you know, really serious, serious salaries.
And the data scientists will recognize the value of code, but the economic buyer in an organization
will be like, wait a second, we're paying you all this money.
Like, why are we paying more for tooling?
We thought you used all this OSS stuff.
So there's a slight mismatch there as well, which is something culturally that we're, we're
working to figure out as well.
Well, I think just put it on my, like I used to work at big company X or whatever thinking
hat, you know, from the people who make the decisions, there's also avoids security leaks
and downtime.
And, you know, there's, there's not just always the positive selling point or the positive advantages.
There's the, you know, you were avoiding these three really bad potential outcomes by productizing
your data science and you can do it quicker.
Right.
So these are also valuable.
Yeah.
Now the things that we've seen that work really well so far are what you just said.
I mean, actually the biggest one is Databricks is expensive and they like, they're expensive,
not in a good way.
They're expensive because we leave machines on all day.
If it was a better experience, that won't happen.
And so we want that.
We want to reduce our costs.
It must feel really bad to just waste money, right?
To literally just leave it running and not actually even because I, it just took a while.
Right.
Yeah.
There's what Hugo was talking about of like a common theme we hear about is like, I've got this
data science team.
They use pandas and Python and PyTorch on a single machine.
I've got like the scalable data engineering team and there's a lot of crosstalk between
them.
That's really slow.
And we want to be able to allow our data science team to go directly to scale without having
to interface with a different team.
Because that communication, just that iteration cycle is just killing our performance.
Another common sort of theme is, oops, we bought a bunch of hardware.
We bought like, you know, 50 GPU boxes and we have no idea how to use them.
Well, like there's only so many TensorFlow Keras runs we can do.
We've seen like the Dask Rapids XGBoost thing.
We want that.
But like, we just have like a bunch of hardware sitting in a rack somewhere.
Can you help us sell a product to manage that rack for us and give us a lot of utilization,
a lot of value out of our pre-existing purchase?
And those are the things that really tend to hit home.
Well, I do hope that you guys have a lot of success because I'm always excited to see some
interesting company taking a really powerful open source project and just adding value to
that space and being successful.
So it seems like you're on a good track.
Thanks.
Yeah.
We've been on the track for a while.
I mean, Dask is sort of unique among open source projects in the Python space.
We've always had really good funding.
Like there are a lot of funded Dask developers.
And it's because we've always been sort of scrambling a little bit to get money.
And this is maybe just the next step in that process.
Yeah.
Cool.
We're going a little long in time, but I did want to just ask you really quickly some meta
questions.
So are you guys using Coiled to build Coiled?
Is there like, what's the Python inside story, the Coiled Dask inside
story?
Right now we're not.
This actually did come up recently.
We actually find ourselves building a lot of conda environments for our users.
And that is actually something that we've got, you know, web backend.
We've got the scalability need.
Dask is like an obvious way to scale that out.
Currently we're using a single machine for that.
Our needs are that big.
But yeah, that would be the next step as a build farm.
And you guys are using Django.
Is that right?
Sort of the API layer?
Yeah.
So Coiled actually looks kind of like a normal vanilla Python web application.
It's, you know, Django and Postgres and, you know, Amazon ECS, as we mentioned.
And it's been great.
It's actually, it's my first time using Django.
I'm like a decade or two late.
But it's been fantastic to seeing how much is ready for us out of the box.
So yeah, couldn't be happier.
Yeah, that's great.
And it sounds like there's a non-trivial team size.
I know a lot of people are saying I'm possibly looking for remote work.
Is that a thing that you guys are doing?
Are you looking for more people?
Are you kind of steady state until you get a little farther?
What's the status there?
Yeah.
So Coiled is a fully remote company.
We're actually born in the era of COVID, which is fun.
We've always been remote.
We've always worked remotely.
Yeah.
We're maybe like five or six full-time and two or three part-time right now.
Right now, I think I actually kind of like staying small.
We raised a bunch of money, but we're sort of not in a hurry to burn it.
By the time this episode airs, yeah, I wouldn't be surprised if we're looking for more folks.
If you go to coil.io slash jobs, I think, or just coil.io, we'll have active job listings.
Yeah.
And that's both data science folks and web folks and DevOps people.
It's a nice group of needs.
Excellent.
Well, like I said, really interesting project.
And I hope you guys make a lot of progress with it.
Now, before you get out of here, let me ask you the final two questions.
If you're going to write some Python code, what editor do you use?
Do you want to go first?
I use JupyterLab these days.
Right on.
Matthew?
So if I write Python code, I'm actually going to give me a cheeky answer.
I'll say GitHub.
So most of the Python code that I write today is indirect.
I mostly try to nerd snipe other people into writing code.
So maybe this is like the community maintainer's answer.
Yeah.
GitHub and I'll say, I'll put in a plug for whereby as well,
which is my favorite video conferencing tool.
Oh, super.
Okay.
And notable PyPI package.
We've already got a pip install desk, pip install coiled.
Right?
Those are good ones.
But, you know, something like, oh, this is really cool.
It's not super well known.
Maybe people should check out X.
I'll point to Napari, which I mentioned earlier.
Yeah.
The search image viewer.
It's really cool.
It's actually fun seeing a rich client application written in Python.
Didn't know that was cool anymore.
I'll point to Snorkel, which I mentioned earlier, which is for weak supervision.
And it helps you build training data.
I think training data is one of the biggest challenges we have in the ML space.
Like I think scale AI raised a hundred million dollars last year or something like that.
And they still hand label data for people.
Like they're called scale AI, but they hand label data.
ML Turk.
Yeah.
Mechanical Turk is still like a huge thing.
Right?
So any ways we can figure out to do this programmatically is really cool.
And the Snorkel API allows domain experts to come in and write using basic functions and decorators,
heuristics for labeling data, which is super cool.
That's what I'll shout out today.
All right.
Super cool.
I guess I'll throw in as well.
Missing no.
Missing N-O, which is a quick visualization for missing data and like pandas and stuff like that.
Ask what's missing.
You'll get a cool little graph.
Like usually if the state is missing, also, I don't know, phone is missing.
Like all sorts of cool stuff.
So people can check that out as well.
All right.
So final call to action.
People are interested in Dask.
They're interested in Coiled.
They want to parallelize some things.
What do you guys tell them?
I would love.
So I've got a call to action for Coiled.
Matt may have one for Dask.
All the features we've just described of Coiled in rapid development.
And we'd love to involve anybody who likes to break things at scale in this development cycle.
So go to Coiled.io, sign up for our beta.
And take our product for a test drive, crash it, and let's figure out how to build it together.
So I'd love to involve you in that conversation.
Excellent.
Matthew?
I'll have you go with that one.
I'm actually going to...
Sorry, I'm going to go out of thinking this.
Mention one thing on that.
It is super fun to run a beta.
As an open source software developer, I'm used to never seeing how people use my software.
And running a beta on a public service, there's a bunch of creepy spyware I can put on our website,
which tells me exactly what you've done, which we'll take off at some point.
It is amazing getting this kind of immediate feedback.
Yeah.
A different level of visibility, right?
Into what people use and telemetry and whatnot, right?
So yeah, I'll just echo Hugo.
Go plan with a beta.
It's super fun, mostly for us, but also for you.
And yeah, you can play with that on the cloud.
It's cool.
Is there a free thing I can do?
Everything is free right now.
Yeah.
We'll limit how much you can spend, because that's the features that we care about.
But yeah, I think we just limit you to 100 cores at a time.
So you can't go totally wild, but you can do lots of fun things.
Just 100 cores, huh?
That's awesome.
Just 100 cores.
Yeah, that's really cool.
All right.
Well, you guys, thanks again for being on the show.
Good luck with Coiled.
It's a nice, natural extension of Dask, I think.
So excited to see you doing it.
Yeah.
Thanks, Michael.
Go start for the beta.
Thanks so much for having us on the show, Michael.
It's always fun.
Yeah, you bet.
Bye, guys.
This has been another episode of Talk Python to Me.
Our guests on this episode were Matthew Rockland and Hugo Bowne Anderson.
And it's been brought to you by Brilliant.org and Monday.com.
Brilliant.org encourages you to level up your analytical skills and knowledge.
Visit talkpython.fm/brilliant and get Brilliant Premium to learn something new every day.
Build your idea for an app and get it in front of hundreds of thousands of users on day one.
Start building today at the Monday.com marketplace by visiting monday.com slash python.
Want to level up your Python?
If you're just getting started, try my Python Jumpstart by Building 10 Apps course.
Or if you're looking for something more advanced, check out our new async course that digs into all the different types of async programming you can do in Python.
And of course, if you're interested in more than one of these, be sure to check out our Everything Bundle.
It's like a subscription that never expires.
Be sure to subscribe to the show.
Open your favorite podcatcher and search for Python.
We should be right at the top.
You can also find the iTunes feed at /itunes, the Google Play feed at /play, and the direct RSS feed at /rss on talkpython.fm.
This is your host, Michael Kennedy.
Thanks so much for listening.
I really appreciate it.
Now get out there and write some Python code.
I really appreciate it.
Thank you.