#202: Building a software business - podcast episode cover

#202: Building a software business

Mar 09, 201959 minEp. 202
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

See the full show notes for this episode on the website at talkpython.fm/202

Transcript

One core question around open source is how do you fund it? Well, there's always that PayPal donate button, but that's been a tremendous failure for most projects. Often, the go-to answer is consulting. But what if you don't want to trade time for money? You could take things up a notch and change the equation and exchange value for money. That's what Ines Montani and her co-founder did when they started Explosion.ai with spaCy as a foundation.

Listen to her story about building a sustainable software business on open source and Python. This is Talk Python To Me. Episode 202, recorded January 30th, 2019. 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.

Ines, welcome to Talk Python. Yeah, it's really nice to be here. Thanks. It's really excellent to have you here. You gave such an excellent talk at EuroPython in 2018. And I just wanted to have you on and talk about that and share some of those ideas. I think it's going to be a lot of fun. Yeah, I think so too. For sure. Before we dig into those, let's just get started with your background. How did you get into programming in Python?

Yeah, it's actually kind of interesting because I would say I don't have the typical programming background. So I started... You didn't write games at five years old? No, but I started making websites when I was like 11, when we got our first computer. So I first started in Microsoft Word. And then I, you know, it was back in the day when you could just look at the website source and copy it. And so I would do that and always build websites.

And I did then decide when I was older that I wouldn't want to do this professionally. Like for some reason, it never appealed to me. But I, so I worked in media, I worked in marketing, and then eventually ended back at programming when I realized that I could combine all the things I liked into a job because I also did linguistics in uni. So I was always interested in language. Yeah, that's a really interesting background.

You don't think of that as a normal path, like marketing into software development, especially something like data science, right? Where it's really deep. But I guess that ties more into your linguistics side of things, right? Yeah, and spaCy, especially. Like spaCy, when I started working on spaCy, I realized that, wow, I can really combine what I liked.

For example, front-end development with a bit more programming, other types of stuff with language and really, you know, using computers to understand language. That was kind of like the perfect combination of stuff. Yeah, that's cool. Was that kind of how you got into Python because the NLP side of things? Or where was Python in the story? Yes, mostly, yeah. Nice. And today you're running a business of your own, doing some really cool stuff, which we're going to dig into.

Maybe just tell people quickly about what you do day to day. Yeah, so our company is called Explosion AI, and we mostly develop a lot of open source software. One of those projects is spaCy, which is a popular library for NLP and Python. We also publish other products and other tools for software development developers. So we're a developer tools company. It really sounds like such an interesting project.

And I love how you have spaCy and you kind of built a proper business on top of it, not, you know, just throw like a PayPal donate button on there and hope that that does something right. Like, but legitimately building something on top of this open source stuff that you all have going on, which is great. We definitely spend some time thinking about how we could best do this, but it combines all the things we like doing.

It's really nice to have an open source community to put our stuff out there. So yeah, we're very happy with the way we've made this work. Yeah, it seems like it's working out really well. So let's dig into this idea of building a software business. You know, it's something I'm very passionate about, something that I've done, right? I have my own business and work for myself as well.

And I think one of the things that really appealed to me about your talk was, it kind of pushed back against some of these startup, San Francisco, high growth VC type mindsets that are fine for some things. But it seems like a lot of folks see that and go, oh, well, if Instagram raised all this money and it was successful, I'm going to have to raise all this money for my new text editor or something silly that doesn't fit that mold, right?

Yeah. No, that's definitely, that's something we see a lot. And I think, of course, I understand why this narrative is so prominent because it's also, it's often pushed by people who like that narrative because it makes the money. And also, I'm not saying it's the wrong narrative for everything. But like, definitely, I think there are lots of businesses that also work very well if they're not following the typical startup playbook. Yeah, absolutely.

You know, I think it's partly popular because it's a little bit like winning the lottery. People like these winner takes all scenarios. People like imagining that type of success and going after that. So I think it does play to some of the instincts that we all have probably. Yeah, probably. I will get into more detail about this, but you talk about selling what you currently have versus selling potential, right?

Like, hey, this is going to be great if we just had $100 million in VC money and we could get everybody to use it. Think how amazing that would be, right? And I feel like that's also a little bit, I don't know, I feel like so many of those things are a little bit shallow. And I don't know, that's not quite the right word, but it's like, they're not really creating meaningful things for people.

they're just trying to get a bunch of people to use something silly so that then somehow they can skim a bit of money off of it. Yeah, you're selling the potential to make future money because the idea is, of course, if you take $100 million in funding, you need to deliver a lot more than that.

So you're basically, you're working towards that future where you're going to make $100 billion rather than the present where you could be making $200 million, which they still are pretty, I would say I would call a business with $200 million profit, I would call a successful business. Unqualified success, right? But in this venture, sort of win the lottery thing I told, like that actually would be kind of a failure, right?

Like just doing double what you did in raising your money, that would actually be probably not enough to make the investors happy. Like they look for more than that generally. I mean, it's better than failing, but still. Yeah. Yeah. So let's talk about your journey and your project, your company, Explosion AI. So I guess maybe just set the background, like how does Explosion AI and spaCy, and we'll talk about some of the products you have, how does that whole history fit together and whatnot?

My co-founder, Matt, he used to work in academia. So he was a researcher and he was working on NLP and he very early on saw that, oh, this is getting, this is finally getting useful. We're finally getting to a point where this can actually be used in like commercial projects and help companies. So he left academia and started writing spaCy. So he basically, he was in Australia, he moved to Berlin. He took some time off and focused on the open source project.

And that's kind of the early beginnings. And we met here in Berlin and we started working together very quickly because he always had ideas for like visualizing the software, making it more accessible, making it more usable. And that's also something I was very interested in. So we started working on spaCy and this worked very well. So yeah, we founded Explosion AI together. And of course we had to think about like, well, how do we make money? how do we fund what we're doing here?

And so for the first, I would say six months, eight months, maybe we did consulting. So we really, there were lots of companies who were interested in that. So we did have the advantage that we had spaCy. People liked our work, wanted to implement this better. And yeah. That's cool. That seems like level one of this sort of like, how do I make my open source project or my open source success or passion be my job?

And like, I guess level zero is create a successful thing that is open source, right? You got to start with that. And then level one is I'll do consulting, high-end consulting as the creator of this project, right? But you all were looking a little bit beyond that, which I thought was pretty cool. And you, I really liked this phrase you used in your presentation.

You said to sort of get the project going, we raised a client round and we went like, you did consulting and you made money to like fill in the gaps until enough momentum was there and the products were there and stuff, right? Yeah. It also helped us get all these insights that otherwise, even venture-backed startups have to do this too. Like you have to talk to your users or potential users and find out what's working, what are their problems, what are you really going to solve?

And that kind of came almost for free with consulting because we actually worked with users who were already using open source projects. We saw what they were doing. We really also prioritized companies who already had something running that they wanted to improve. So yeah, we got to see, okay, what's working for them? What isn't, what are the main pain points?

And one of them was really creating training data for machine learning models, which is what then really convinced us that like this idea for Prodigy, our first product was definitely something we should invest more into and launch as soon as possible because that's really something that people wanted. Absolutely. I mean, that seems like the perfect follow-on, right? And we'll talk, we'll talk about that in just a second.

But I think one of the really important things that maybe I would guess you gained through that whole experience is you not just learned what people want and need, but you also made connections with these, these big companies as you consulted for them. They probably trusted you. So you could say, hey, we have this thing that's going to help you if you all want to get it.

It probably, it's almost like building an audience of folks who will be your customers before you're trying to make them your customer. What do you think? Yeah, that's true. And I think that also happens with the open source project because, you know, if you want to convince people to give you money, you need to show them why they should give you money and not some other guy. And so, of course, the open source work can function in that way.

People see our software, people can see that we can build useful software and it makes it easier for them to trust us that, of course, the software we're selling them will also have a similar quality and solve their problem in the same way space it in. For sure. So, let's talk a little bit about Prodigy and that's your first paid for product. You go to the website, it has a, how much does it cost? You put in the credit card and you get it, right?

It's not like, well, you sign up, we're going to market to you and then maybe we'll run some retargeting ads on you or whatever. Like, no, no, just you come, you find the value, you pay for it, right? So, tell us about Prodigy.

Yeah, so Prodigy is an annotation tool mostly that helps people label data for machine learning projects and run experiments because the idea is, okay, if you're using a library like spaCy or any other machine learning solution, you ultimately, once it's really giving you a lot of value, you want to train your own systems that are very, very specific to your problems that you're solving.

For example, you get a lot of customer emails and you want to have a system that automatically labels them whether they're about an invoice question or whether they're about some other problem the user is having, whether it's a complaint, whether they're happy. So, that type of system and you need examples for that. So, you have all of your emails and you want to train a system and for that, you need to label the data and often, you need to label it 10 times until you find a way that works.

That's very tedious work so we've thought a lot about how can we make it simpler and one conclusion we ended up with is that it needs to be a developer tool, the developer needs to run it locally, needs to be able to quickly also program their own workflows. It needs to be a Python library that you can interact with. It can't be just some app that's on the internet and you need to have that control. Yeah, it's not going to do it, yeah. Yeah, and also it's what people are used to working with.

Like we think, or we call it let them write code. We think that developers want to write code. That's not an issue. It's actually, it's a feature. You know how to write a function in Python no matter how you want to do it. If you can write it in Python, you can use it in Prodigy. Yeah, it's really cool because most people doing something with spaCy or other machine learning are, chances are they're already somewhat competent with Python anyway, right?

And so you might as well just leverage that and that sounds really cool. And also a big reason people are using spaCy and open source tools like that is because they want to build their own systems and implement them themselves and also because often the data they're working with is not just something they want to upload onto the internet and they usually, they probably also shouldn't.

Like they're building their own systems which means also their other tooling needs to fit to that kind of workflow they've set up. the data needs to stay on their machines on their service. It can't just be sent to us and Prodigy really fits neatly into that kind of workflow and it's been, yeah, it's been very popular and we're very happy that we were able to provide more value to our existing users that way. It sounds like a really great product and it sounds like it's been pretty successful.

You talked in your presentation about having two products that you're working on that are kind of follow-ons, one called Annotation Manager and one called Datastore. Do you want to tell us about that as well?

Yeah, the Prodigy Annotation Manager or what we're now calling Prodigy Scale is basically an extension that lets people scale up their annotation projects because once you've found out an approach that works, you often want to have more people labeling your data and you want to be able to see what they're working on. You want to be able to farm out texts to people who might not be sitting in the same office. You also want to compare what they're labeling to see if there's a problem.

Maybe someone's misunderstanding the question. That can lead to lots of hassle later on and ideally you want it to be accessible over the internet. And so that actually, it's been under development for a long time and it was a very, come up with an infrastructure that does not compromise on data privacy while still offering a software-as-a-service like FIO. So you still log in on our website but you're also running a local cluster that farms out the work.

And so the data never goes through our service so it directly goes via your cluster. Your annotators can access it. They still have the same nice feeling of accessing it through a web app we own and we run but you don't have to send us your data and we don't store your data. Yeah, that's an important thing that you talked about a lot.

How basically, a lot of these high-growth VC companies, their goal is to race for as many users as you have so you can so you can basically own their data infer things about them and then try to sell them something or sell marketers to them or something to that effect you know, Facebook or whatever, right? Yeah, that's not very important to us, no. It just doesn't sound like it's going to fly very well with machine learning, right?

You want to send your most important data flow of your company probably containing private information through it, right? That just, that needs to be something private, right? Yeah, and we do have a lot of users in, for example, the healthcare field who are actually also working on very interesting stuff and for them it's just like an absolute no-go. Like, they have their very secure audited environments that they can have their data on because it's maybe sensitive patient data and that's it.

And so they need tools like that and they're very happy about tools like that. Yeah, absolutely. You know, we have laws like HIPAA in the US about healthcare data but also things like GDPR in Europe and even Washington State, the next state over from Oregon, is working on a GDPR-like. Yeah, I read that. I think GDPR is a good thing. I'm a fan of regulations in general if they're reasonable.

Not saying that everything that comes out of the EU as regulations is great but I do like the general sentiment of those kinds of privacy laws. Yeah, I think there's a big pushback on the overstep and misuse of people's data. So this trying to build your business on people's data is, I don't know, maybe it's a little shaky ground. So it's good that you are not, right? Yeah, I also, I think it's just not necessary and that's kind of, also that's one thing I try to get across also with that talk.

It's like there's so many other ways you can build a business that's very sustainable so you don't even need to do that. Yeah, I do think that people are kind of myopic about seeing VC funding as the only way, right? Like it's, I don't think so. Yeah. Now, one question I did want to ask you and not quite seriously but just to get your thoughts on this, right? Because I would, I've made the same decision but why not just keep consulting?

You had six months of this, I'm sure it was going really well. You're like, oh, we could totally just continue to consult and a lot of people go down that path. I think it's a little more risky to start a business and spend your time on that. So what was your thinking? Why go, no, we're going to build something, a product and we're going to sell it rather than try to just keep working for Bosher? Or whatever, right?

It's a good question and I think to some degree it comes down to personal preference. Like there are other companies in our space that are doing very well with consulting but I think you do get to a point where, okay, if you want to scale consulting, you do also need to, you need more consultants. You need to, then you're actually running a consultancy business and you're managing other consultants and that's just not really, also that we see, we don't see this as our strengths.

like we are quite aware of, okay, what are we good at? Where do we have an edge? And for us, that's building good developer tools and we always thought we were a good team on that. And the nice thing about selling software is that you can sell it, you write it once and then you sell it lots of times and that's like, in terms of a business, that's very good. You have one thing and you sell it and it doesn't, it's still there. You sell copies of it. I totally agree.

That touches on something I deeply value these days. It just seems so important to me that if it's possible to trade value for money rather than time for money. Yeah. I mean, I've always had a good job.

I've had a lot of freedom in my job, but you know, when I was doing full-time work, but it was like, well, you can't really go on vacation with your family this month because there's that project and it's just, you know, it's not the same feeling of I'm going to create something, people like it, they find a lot of value and it's just a little exchange some money for it. Like that just seems to me a much more rewarding thing to do than book another week of consulting.

Yeah. And I also think offering consulting on top of an open source project that you also have, I think there's actually a very weird, the incentives are very, very misaligned on this because you are making money of people needing help with your software. So don't make it too easy. Yeah, yeah, exactly. So if you make it, like we've always wanted to have great docs, wanted it to be easy for people to use spaCy.

So if it's too easy to use spaCy, people don't need our services and we make less money. But if spaCy is shit, we're losing business that way because people are not coming to us anymore and the library loses adoption. So I think it's, there's a very weird... Yeah, they are a little misaligned, the incentives there.

Yeah. Yeah. So that's also why we think, we think there's a great business in this for other people and actually, in fact, there are lots of consultants who are somewhat specializing on building stuff with spaCy and it works well for them and we think that's much better for us than if we did all of that. you talk about bucking the startup playbook and, you know, like going against it, some of these common misconceptions. In your talk, you had four main misconceptions.

I think they were really spot on and super interesting. So let's talk about those a little bit. The first one was you have to lose money in the early days and the early days could be six months, they could be 10 years. I mean, there are big companies that are still losing money, not making money. Yes, it is incredible, right? And, you know, maybe that makes sense and you actually talked about when it does make sense, but a lot of times it doesn't and, you know, so let's just start there.

Do you have to lose money right away for a long time until you've got enough growth? In some industries, in some areas, that might be the case. So I'm not saying, oh, running at a loss is always bad. There's a legitimate like reason why, okay, you might have very high startup costs. You can't expect, for example, any social app in that sense or anything that really can only make money once you have users falls into that category because you need to grow.

Yeah, like a two-sided marketplace like Airbnb or Uber or Lyft or something like that, right? Or anything that has like a physical product. Like I think in my talk, I had like this mattress business where, okay, you need to build something. Casper, yeah, and then you need to sell that. And, okay, so you need some cash up for it. That's fine. But for a lot of digital things, that's actually not the case.

And you can, especially if you have a product that you want to sell, there is definitely an advantage in selling that straight away rather than running at a loss even though you have something valuable that people would be paying for. I totally agree with this. And I feel like, especially in the digital world where it's software or something along those lines, you can work your way into it, right? You don't have to say, we're just going to quit our job and start writing the first line of code.

You can start working on this for an hour a day. You can start testing. You can see, like, is this something I built that seems like it's going to be successful? And then slowly sort of transition to it, right? Which also helps you have enough traction when you're started that it's like sort of covering some of the bills.

Yeah. And also, I think this whole idea of, okay, running at a loss, it's still kind of inspired by much more traditional manufacturing where actually things become cheaper at scale. So you need to reach that scale. Like if you're building, if you have a manufacturing plant, yes, if you're building one car, that's going to be much more expensive than if you build 100,000 cars or 100 million cars.

But that's usually not actually the case with software development because that's actually more expensive at scale. So this whole concept all falls apart if you're actually applying that to digital or fully digital digital products and tools. This portion of Talk Python To Me is brought to you by Linode. Are you looking for hosting that's fast, simple, and incredibly affordable? Well, look past that bookstore and check out Linode at talkpython.fm slash Linode. That's L-I-N-O-D-E.

Plans start at just $5 a month for a dedicated server with a gig of RAM. They have 10 data centers across the globe. So no matter where you are or where your users are, there's a data center for you. Whether you want to run a Python web app, host a private Git server, or just a file server, you'll get native SSDs on all the machines, a newly upgraded 200 gigabit network, 24-7 friendly support even on holidays, and a seven-day money-back guarantee. Need a little help with your infrastructure?

They even offer professional services to help you with architecture, migrations, and more. Do you want a dedicated server for free for the next four months? Just visit talkpython.fm slash Linode. We brought that up in your talk and it was so interesting because you're right, things do get harder in software as the software gets bigger, whereas they get maybe harder but much cheaper in any form of physical manufacturing or something like, right?

Yeah, Elon Musk built the Gigafactory because he needed to make batteries at a larger scale so they could be cheaper, right? These types of things, like that. Yeah, yeah. It's not like he's making much money with that yet. I think they actually said Tesla was going to have a profit. Either it just did or it's just about, but yeah, that's the whole big growth sort of side of the world as well.

Yeah, so the idea that software gets harder to build the more people you try to throw at it is really interesting. I mean, long ago we had the whole mythical man month that you can't have a hundred people working ten times faster than, you know, ten people, that sort of thing, right? So it's just, it doesn't always take a huge team to build these products and, you know, you talked about some of the open source projects and others that were actually built by pretty small teams, right?

there's not that many people behind spaCy and that's super successful. There's not that many people behind Flask, right? And that's super successful. Like the people involved in the pallets project, they run a bunch of open source projects and that's like, you know, count them on my hands, number of people, right?

Actually, even if you look at the large companies, if you look at things that are produced by Google or open source projects released by other companies of a very large size, it doesn't mean that all of Google is working on TensorFlow or all of Google is working on some other project they released. Or Facebook's React is another example. It's not like all of Facebook is working on.

They actually have a very, very small core team as well and it's a very successful project and I think that also you need maybe a single author or very few authors to really give a project the direction it needs. It's like, yeah, writing a novel with 200 people, that's like a very fun art project, but, you know, it's not going to be like the most amazing, continuous novel of all time. I think it's the same.

Yeah, but which is why I always found contributors a very weird metric to look at open source projects and how big or successful they are. Yeah, I guess even in these big companies, the reason the small team gets to work on it is they have enough extra money, they can just pay them to work on these projects, but that doesn't mean they put 100 people on, like you say, React or something, right? That doesn't make sense.

Yeah, and it also doesn't mean that the project is necessarily has like, I don't know, more of a chance to stay than a project that's developed by a small company. If anything, it's much cheaper for a company like Google or easier to just shelve some project even. I mean, look at all the stuff Google's killed that people love, like Google Reader. I'm still bitter about this to this day. I'm bitter. Yeah, it's been 10 years and I still think about this a lot. Still have a few scars in that.

Yeah, they're killing Inbox, which I absolutely love, and it's gone in two months. Yeah, two months. So, well, you're right, it doesn't mean it. Yeah, so that's why when people are like, oh, but how do I know that your project is going to stay around? It's a weird way of looking at it. It's a valid concern, but just because something is developed by a very large company doesn't mean they're going to keep it alive for longer or necessarily want to invest more resources into it.

Yeah, that's for sure. So, one other thing you touched on about this kind of running at a loss side of things is it's a little bit of a winner-take-all situation. Yeah. that means people are pursuing these sort of big VC-funded, they've got to be really big projects, and that leaves room for a bunch of small and medium-sized success stories that are just a little too small for, you know, that big investment or whatever, right? But it would be really great for many people.

what we're talking about there as small is still like a very, very significant amount. Like, you know, in a lot of these areas, a few hundred million would be too small. And I think for a lot of people, that's actually, that's a pretty good business. Yeah, I would think so.

Yeah, yeah, and also there are lots of these types of businesses where you can, for example, if 50% of your revenue is profit, you have a much, much higher trajectory to actually, if you grow at a similar rate organically, you're actually much better off than if you're in a position where you maybe have the same revenue but it's only like, you have the same profit but it's only like 10% of your revenue or 2% of your revenue.

Yeah. So, yeah, we've always seen it like, okay, we don't have to be the one provider of developer tools ever in the world.

Right, so basically, if you're not chasing this tournament, winner takes all, I got the big VC round and we're gonna, you know, Facebook's gonna crush MySpace or, you know, whatever type of story we're trying, narrative we're trying to tell here, then it's not necessary to, run at a loss because you can be more organic, you can work on the products that people really want and just grow a little bit slower but still totally good for you and your smaller set of people, right?

Yeah, well, you can have a competitor, you can, it's fine, you don't have to crush everything else. Exactly. Can't we all just get along? Which is quite expensive, yeah. Yeah, that's for sure. The other one, which we touched a little bit on, is that you need to hire a lot of people. So, you think that small teams actually are a big advantage here, yeah? I agree. In our case, definitely.

I mean, we're actually working with a few more developers, especially for Prodigy Scale to get that ready, and some other projects we've lined up. But yeah, we're still very small and the ideal company we envision is also very small. And for us, it means that actually we can really take advantage of hiring or working with people or being people who have, yeah, more, a bigger variety of different skills that we can use.

like, in my talk, I call this like T-shaped skill, they're tree-shaped skills, kind of, you know, based on this idea of the T-shaped skills, like a T-shirt, one foundation, and like two other skills you kind of have.

Right, so maybe just to try to summarize that idea of like the T-shaped skill is like, you have a bunch of things you sort of know, you're sort of competent, you can sort of create a website in Python, you can sort of, you know, work with CSVs or databases, but you're really good in one, like the stem of the T is you're really good in one deep area.

You're like a systems engineer, that's the idea of the T-shaped and then I say, actually, what's even better than that and even more useful in small business is that, is it, are the tree-shaped skills. So you have, you still have a base but you have all these different branches and all these different other skills that you have, those can, they can overlap with other trees, you can grow a new branch which is kind of nice because actually, yeah, a T-shirt is really quite static.

Just gets worn out over time, that's right. Yeah, but like a tree, you can, you know, a tree is active, a tree is growing so I kind of like that metaphor more.

I like that metaphor a whole lot too because I think, you know, it's one thing to hire people but you're never going to hire people that have all the skills you need but you know what, they can learn it, they can take an online class, they could go and do an in-person class, they could get a book, there's so many ways to learn these days that like you can sprout these new skills and I think that's a great analogy, these tree-shaped skills.

The types of people who have these sort of very versatile skills, it's not really selected for in a lot of larger teams and, you know, more, you know, the more stereotypical software development because in large companies, it's, you know, it's fine, it makes sense why a large company hires differently than a small company because you need people to be a bit more interchangeable and you need a very different type of team but if you're small, you kind of don't have those concerns

and so you can really, yeah, it can really help you a lot to have very different people, very different backgrounds and that's kind of what we're doing. So another analogy that I really like about this is this tree and this idea of like growing new skills. To be successful as a software developer, especially in smaller companies, you have to be always willing to be learning new things, right?

It's not enough to like, well, I went to school and I got my computer science degree so now I'm just going to go do that, right? like you're continuously learning and this tree analogy and adding new skills, I think it embraces like the best type of software developers anyway because they're constantly learning. No, I agree with that.

So another thing that you said was you don't have to be sneaky and I feel like that comes back to this kind of data is the new oil, what we need our users so we can take their data and somehow make money on it and maybe we're going to do something a little shady so we've got to be a little sneaky about that. What did you mean there?

I also had this point like you don't the true value lies in your users' data which is basically the same idea that you're kind of you're trying to trick people into using your product but actually your incentives are very different or you're trying to monetize something that you don't already have you're trying to you're monetizing some future promise that you've made which will actually offer you those returns that you have to come up with because just making a profit isn't enough

so you actually end up often all I've definitely seen like a lot of products on companies that have made in my opinion bad product decisions in order to kind of satisfy those types of promises Yeah promises to investors right not promises to the users and actually it's not even just that you have all the evil investors you actually you set up you go for a business model where okay you get a lot of money up front and that's great and you can work with that but also for yourself

you need to turn it into a certain type of company in order to make it worthwhile and to also get some money out of it for yourself so it's just that okay that that thing you agreed on and that dynamic and that works for some types of products and for others it really doesn't Yeah absolutely machine learning that's processing sensitive private data probably not so much sneaky is probably not a good option no and also you do want I think trust is very important and actually genuine trust

like if your users think you're a decent person that's like that's worth a lot and that's also something you don't want to play with and that's you know it's a scary thing to do and say okay look I'm ready to really take full responsibility and I want to you know we say well we want to be held accountable for the things we do like it'd be much easier to just not do that and set those expectations That's right so another thing that's big in the startup world is that you have to

not just test things or try them but you have to A-B test them you have to every time you send an email there needs to be a couple of variations every time you have a page that talks about your product you need to have three versions that sell it in different ways and so on and that can just be overwhelming to a lot of people they're like do I really need to do all this stuff to get started I don't know it just it seems a little over the top and one of your beliefs is that you can make good

decisions without testing all the assumptions yeah you can you don't have to test everything right that's true and also because I think the underlying idea there is that you can't just replace logic and reasoning about things with pure data you've collected because there's always you know it's always biased in some way and that's just not possible and the thing is the reality is if you're running a business you need to make a lot of decisions and you need to make you need to be right

that's sort of the secret you need to make the right decisions and make them many times in a row you know you can do a lot of things to make this easier for you and make it easier for you to make the right decisions but ultimately you need to be able to reason about things and reason about it in a way that leads to the outcome that you want and that's something you can't just compensate for by trying things until you maybe find something that works and then going back looking at what you've

tested there and drawing the conclusion and how this must have been why this worked and the other thing didn't yeah and so many times I think those experiments especially around price or offers can feel really crummy to the your best people the people who buy stuff from you and support you I'm thinking of things like Udemy the online course place where if you go there they say the price of this course is 200 bucks but you know what if you don't actually buy it but you're logged in

you'll get an email saying oh it's actually on sale for just one week it's $15 or something right like it's 5% of the price or whatever a little bit later and then you come back and there's some other sale it ends tonight oh wait tomorrow the sale is on these are just all these shady things and just my feeling of companies like that I just like oh man like either just sell me what you think the value of the thing is or I don't know just don't don't try to like continuously show me

tricky stuff until I you know bite on something right it just feels like dishonest somehow we as developers are maybe also a bit more a bit less like oblivious there like you know we spot bullshit and we don't want to be like bullshit I'm not saying this is like something unique to developers but I think you look at these things and you don't want someone to tell you like oh this is magically going to solve all your problems you want someone to tell you oh you developing something here's

something that can help you and here's how this works and here's how much this costs and you're like all right or you're like maybe not so we've definitely we've definitely seen seen this as something that's like important for us and just because you're a b testing something it doesn't always mean you know you still need to reason about stuff like if you just automatically you test every possible combination and you might end up with the conclusion that scamming people is actually the most

lucrative way of making money at least in the short term right but it goes back to this trust thing as well yeah in the short term maybe even in the long term like there are people who've been scamming for all their lives and they've been doing pretty well at that so you know you can optimize for that but like is that really the thing you want to be doing probably not or if it is I thought about like mentioning this up front in my talk like I'm going to be talking about ethical and legal ways of

running a business if that's not what you have to know start some like initial coin offering stuff and leave now like because it's the other rules like sure if you don't want it to be legal or ethical like yeah none of this there's a lot of options but who cares right that's that's not what you're about interesting and you also talked about some of this a b testing stuff is sort of driven by this tournament winner takes all mentality because if you're competing against another company and

your belief is they're going to crush us or we have to crush them there's no way we can both coexist then you're always looking for that little edge right that's true and also or you look at like I think another thing that's that's also very popular is looking at others in this who were in the same tournament and didn't make it so you look at some other company that was there before and they failed and then you try to analyze that and maybe even talk to them why did you fail and they will

tell you well we should have done x because we didn't do x and that's why we failed and so you're like well and that's how that's actually where I think a lot of this advice comes from and it doesn't actually make much sense because it's it's not really um yeah we're not that good at really analyze and at analyzing why something didn't happen and just because you didn't do x and fail doesn't mean that if you had done x you wouldn't have failed yeah I mean if you actually knew exactly

why it failed you probably could just address it and make it not fail yeah probably right like well this is the problem let's just not do that I mean not always but uh it's still interesting and then the last misconception you talk about is that the true value of your software company product whatever lies in your users data yeah because I mean we really I think we talked about this briefly earlier we yeah we definitely covered this yeah yeah and I think it's clear where this comes from

this was definitely driven by this idea that all data is so valuable and people talk about this and I think it's never even really clear what they mean by data do they mean your personal data because maybe that's valuable if you're in a certain position like if I want to sell you stuff knowing who you are where you live what you like is valuable if I don't for me personally your Amazon buying history wouldn't be very valuable if I were in a different business maybe it would so it's not

always very even very clear what people mean with data but what people have concluded is that we need to harvest as much as possible as quickly as possible whatever we can might be worth something and I think now we're getting to a point where people are sitting on all of this and are realizing that actually it's not even necessarily that useful and they're very now we're at a point where companies are really struggling to make sense of all of that data they've harvested at like very high

costs in terms of user experience and trust I agree and I also think it's only valuable to the very large companies right like it's valuable to Facebook it's valuable to Google but if you were a three person software company that had 5,000 really committed users that were could otherwise pay you right there's no way that those 5,000 people's buying history or whatever is worth anywhere near just like their trust and like hey I'm gonna make something for you I think it's valuable I

think you'll want it they agree you give them something that they give you money back right like that's just a much better and easier story I think this portion of talk Python to me is brought to you by rollbar got a question for you have you been outsourcing your bug discovery to your users have you been making them send you bug reports you know there's two problems with that you can't discover all the bugs this way and some users don't bother reporting bugs at all they just leave sometimes

forever the best software teams practice proactive error monitoring they detect all the errors in their production apps and services in real time and debug important errors in minutes or hours sometimes before users even notice teams from companies like Twilio Instacart and Circle CI use rollbar to do this with rollbar you get a real-time feed of all the errors so you know exactly what's broken in production and rollbar automatically collects all the relevant data and metadata you need to

debug the errors so you don't have to sift through logs if you aren't using rollbar yet they have a special offer for you and it's really awesome sign up and install rollbar at talkpython.fm slash rollbar and rollbar will send you a $100 gift card to use at the open collective where you can donate to any of the 900 plus projects listed under the open source collective or to the women who code organization get notified of errors in real time and make a difference in open source visit talk

python.fm slash rollbar today we can do that we can just we can sell products and not promises and that's that's very nice and that also makes that also means we can really make product decisions around actually providing that value that people want without having to engineer our personal objectives hidden or hidden objectives into that somehow yeah yeah it comes back to kind of the start of this whole conversation right like sell products not don't be sneaky all those kinds of things right yeah

and also I think in machine learning especially people have this idea that oh maybe the users okay our users are using prodigy to label their data and there and that's because it's you know seen as such a tedious process you know maybe we could people have told us like oh you're sitting on this gold mine if you just harvested everything people ever labeled with your tool you could then use that and train one machine machine learning model that knows everything but this is actually

very far from how machine learning works in practice it's also the really the true value is in creating very very specific systems that are very specific to your problem so anything you label might not necessarily be useful to me also this process is very very experimental so I have no idea of knowing which one of your 200 data sets is actually the one that worked for you and even if I do I know it worked for whatever problem you were trying to solve there's no machine learning

model to rule them all also we've built an annotation tool we believe our annotation tool is one of the most efficient out there so if we wanted to label some data and train a model we would just do that ourselves right just go to mechanical turk yeah well yeah I'll just I mean prodigy is very optimized for having people work very fast having people you can hire doing it yourself so you don't even need any human labor platform because that also comes with a lot of problems so I could

sit there spend a day and I could be very very productive run lots of experiments and end up with a model that well at least knowing whether my model can learn what I wanted to learn and that's very powerful and so if we wanted to do that there's no need to just take this from our users we can just do it you've built the tool that they get to use to really solve their problem you could just do that for yourself it makes a lot of sense I think I don't know there's there's a whole lot of

interesting ways we could talk about AI and machine learning and stuff where do you see AI going do you see it being these super specialized things do you see there being one AI to rule them all like what are your thoughts here I think the one AI to rule them all that's like maybe something you can come up with if you yeah follow some of the media coverage but like I don't think it's very very realistic and very close to what people are actually building I think what we're seeing is all across

industries whatever people are doing they want more insights they want to optimize their existing processes and they want systems that specialize very well to exactly what they are trying to do and it becomes more of a tool right so the more specialized it is yeah and they can use machine learning as a tool to achieve that and of course there are realistic concerns that we do have to think about in for example what's going to happen with people being replaced how or how are companies

dealing with this in maybe ways that are actually very harmful also because of kind of a wrong idea of what the technology can really do their ethical concerns their concerns about bias and just you know just because we build some system doesn't mean that it's like perfect and you know we still build it so we're gonna all the mistakes we make we're just going to encode in that system all the bias and all the problems we have we're going to just encode in that system and cool

then it can you know if you make bad decisions cool you can train a model to make those bad decisions for you it doesn't mean that things are necessarily better so these are all things we have to talk about ultimately I think still machine learning is a tool at this point and yeah I tend to agree I am a little concerned about the automation and jobs and then the effect that will have on on politics and society but but in general I'm pretty upbeat on these things I guess let me

ask you a couple of sort of meta questions around around this to close out this okay first of all it seems like you're having a lot of fun are you having fun running your own company you and Matt yes definitely I would say it's the best job I've had so far yeah that's cool I thrilled doing what I'm doing I'm basically broken like I cannot go back to a regular corporate job I don't know about you but I think it really depends like I feel like one thing I hate is like this mentality that a

lot of self-employed people have where they're like essentially looking down on people who are like in regular jobs I read this a lot and I'm like no there's so many valid reasons why you would want to have a regular job working for someone else and that makes people happy but on the other hand I do think yeah in general and as a society we should make it easier for people who want to start their own businesses to start their own businesses and then make it easier for those

businesses to actually create sustainable jobs that then other people can take right we were just talking about AI taking away people's jobs but if there can be other businesses so they don't lose their job they just do a different job that's also meaningful to them that's a much better option right also businesses that can pay their employees out of profits they make because that's ultimately also very sustainable because that means the money is there right and rather than say

stock options that are kind of promises down the line in the future yeah yeah exactly and also already I mean in order to like a lot of these offerings in order to exercise them you already need such a privilege that you can afford this and if you cannot you know this is expensive if you're already pretty privileged enough fine but like if you're not none of this is going to help you very much I totally agree that's a great point then another question someone asked at the end of your talk which

I thought was maybe worth mentioning is you know you hear people talk about I think this also comes from some of the VC back companies is talk about work-life balance and just giving up everything to work super super hard and maybe they're really successful in business but maybe not so much in life right with relationships and whatnot how's that for you I'm definitely very much against this kind of school of like entrepreneurship where all you need to you know only the hardest workers can

succeed and you need to run on four hours of sleep and like I don't know this is definitely something we try to like optimize in the way we run our company that like you know we we're not measuring success by like how how low can you go on sleep and how hard can you work because I also think you can always work you can work smarter instead of harder there's a certain privilege of course that comes with you know we I can choose where I want to work I can choose to structure my life in a

certain way I feel like this is important to point out because not everyone's able to do that but in general I do think we can you know in a way if you if you're not in the competition you can optimize for living in a place that's affordable you can optimize for okay you want to have more time or you want to work in a certain way now while you're younger so you can maybe work less when you're older those are all important considerations yeah absolutely like for example you talked about

living in Berlin where life is fairly reasonable as opposed to you know eight thousand dollars for an apartment in San Francisco or something completely off the charts right and we're lucky that we don't have to be in one of the tech hubs we can be on the internet but I don't I'm always trying to when talking about these topics especially work life balance I'm always trying to be careful not to come across as like yay start your own business it's all great like oh I can but also not

going the other road and saying yes you know yeah you have to be prepared to work like super hard and you're on call all day and it's like there are valid concerns on both sides and I don't want to over romanticize either of and but I do think it's possible to optimize for something that works for your living situation yes yeah you don't have to completely kill yourself to make it work in your specific situation right like you and Matt are having a have a good time not always

working always burned out if I could keep it that way that's a very good objective for me yes one of the really nice trade-offs when that person asked that question I thought well yeah it's a little more stressful you've got to keep the business running there's more stuff on your shoulders but also you have more flexibility because you're trading value for money not time for money so if something comes up in your life you're like the next three days I kind of want to do this like you

just do it and then maybe you work on the weekend to make up for it or like I think there's more fluidity and freedom to find that work-life balance if you're after it yeah and also this idea of I mean what's often referred to as passive income even though I find this I don't know I find this term a bit weird I do find it weird as well because you typically have to work super hard to get that passive income it doesn't it's not really passive yeah it's also because it's this fantasy like

of course everyone wants to like sit at the beach while making tons of money and that's why this has also been abused a lot in like I don't know life advice and you if you google passive income I'm sure the top results are all from some scammy life advice buy this e-book where I'm going to tell you how to make passive income and the advice in that e-book is write an e-book promising others passive income and it's like that kind of pyramid scheme so that's why I like hate this term but it's

obviously in general optimizing for a situation where for example you build something once that has value that people like you optimize for a business where people genuinely like buying your software and are happy with your software and you'll have one software one piece of software that you can just sell to lots of people who are all happy with that that's a good way of doing it because you know this means you can build something once and maintain it once and sell it a lot to people

there's a lot to be said for that path absolutely so I guess maybe we could close out our conversation around this building a software business maybe bucking the startup trends with just some advice you might have for people so if there are people out there maybe they have an open source project maybe they just have an idea for something they want to start what advice would you give them about somehow making this their job right starting some kind of company that offers value to people

maybe they're doing consulting maybe they're doing full-time work I don't know yeah I mean it's a very loaded question because it's it's tough I know it's very specific to people's situations but yeah definitely I think what worked for us was definitely okay you you know you want to offer people something that they need and if you're in a position where for example you have an open source project and you see that there's you know genuinely something you're solving for people that's a very good

start you know it is also very good to actually you know you look at how is it going are you making making money with this and also have a plan for okay when are you gonna stop because I feel like the if you're going the opposite route there's not really never really an incentive for is it working is it not working because you can always optimize and you're running at a loss anyways but if you're actually running at a profit you can use that profit to really see

okay you know this is where you're going it doesn't lie it's very yeah in a sense it is riskier because you know there's no that's the only path like always people are like oh you're going you're doing the risk averse thing and I'm like well it's not that risk averse because you know we're actually making a profit that is like that's quite a risk because if you're not making a profit that's it you know like choosing not to make a profit is actually a pretty risk averse it's a

little too open-ended maybe maybe I mean it's it's like ultimately or maybe ultimately like giving advice is always difficult and ultimately the advice would have to be make decisions and be right about them that's actually that would be the most honest genuine advice but it's also often not what's really that actionable yeah very satisfying because the advice you know you still need to do it and I but on the other hand I kind of I also like this sort of way of thinking about it because

it shows that okay at this and whatever I'm going to tell someone is always going to be kind of biased yeah it's this idea okay you can like it is possible to ship value and make money from that it is possible to offer something that people will pay for because people like paying for things it's not like nobody wants to pay for stuff people do want to pay for stuff if you can find a way to give them that opportunity and I think also it is fine if you can reason about things and

you're right it's fine to do that like you shouldn't feel like you need all of this data to back up whatever you thought was right if you can actually make this work it's fine like you don't have to beat yourself up because you didn't maybe test that assumption and somebody's gonna ask you oh but how do you know that like the sky is blue it's like well I looked at the sky and it's like it's blue my experience is it's generally blue yeah yeah I mean something it's real because I

experience it is also a pretty problematic way of looking at things in my opinion but like it's still there are some things that you can know when it's fine to like know things and act on them especially if it like leads to a good outcome yeah that sounds good I guess take your best take your understanding make your best decisions you can and take action and then follow that feedback loop right basically creates a job for yourself where you can do all the things you like and channel that into

a productive outcome that's commercially viable because it took me a while to kind of get there but often I do think for most people they have things that they like doing that they're good at that maybe are not so compatible in the very stereotypical system of working and typical jobs in tech that might actually it might actually look very different once you're in business for yourself and you realize that oh actually this sort of talent I have here or this thing I'm

really good at I can actually use this productively in my own business this is useful for people yeah absolutely yeah that sounds great let's leave it there so hopefully people got a lot out of that conversation I'm sure that they will but before I let you go we have to ask you the two questions at the end of the show as usual if you're going to write some Python code what editor do you use visual studio code like probably like most people these days I'm not sure what's the most

popular I would say the Vim no I think Visual Studio Code is probably the number one most popular and you know PyTarm is actually going pretty strong there and if it's not one of those two it's usually Vim or not even a max it's usually Vim yeah I've tried probably most editors I'm also very very open to trying new things if they come out but I kind of I do think Microsoft did like a really good job it's a very it was it's a very impressive product like I didn't expect that at first when I

started using it yeah I hear that a lot and it's getting better all the time which is pretty cool yeah and I'm actually very excited about the Python integrations and also the more like data science focused stuff that I've been working on also I'd always wanted like a spaCy extension I haven't I haven't had time to look into this but like we have an open issue on the tracker so if someone listens to this and wants to work on this I'm super super excited about that idea that sounds super

cool all right and then notable package on pipey maybe not necessarily the most popular but some of the people you're like oh somebody they I found this and they should know about it and I'll go ahead and throw spaCy out there for you already so we can put spaCy on the list right yeah of course one idea I've had just that we have to mention like spaCy wouldn't have been possible without siphon and lots of other probably most sometimes people don't realize this but most Python packages you

use wouldn't have been possible without c extensions and all you know the great work that it went into the siphon so I feel like I should just mention that because it's such a huge part of what we're building but also one thing I was really got into recently was like making our code more consistent having like a well formatted well organized code base and so often when I start like organizing things I kind of get really into it so but like I've really started to

appreciate the black formatter the auto formatting tool and just in general the idea of okay enforcing opinionated formatting rules automatically right as like a pre-commit hook or something even better right yeah or even maybe in you I actually think for me it works well in my editor because I actually if something looks like super messy it does remind me that like often the code is actually not that great like if I write like a line of code and then I see it gets spread over

five lines and actually looks more confusing it often means that yeah okay I maybe I shouldn't have had that for loop and if statement on one line just to kind of make things a bit like nicer actually it's not it's harder to read I should refactor that so that's actually helped me quite a lot and also just having yeah flake eight I always kind of likes having you know kind of a subset of rules that we enforce to have some standards you know you don't have

to go over the top and like okay we want to meet exactly everything but there's some things that are very helpful you can catch bugs that way and just having things nice and tidy by default was very nice I like that it doesn't complain but that it just fixes it rather than going here's the seven things you need to go reformat it just goes I'll reformat those right that's nice yeah yeah and also even if you run diagnostics it says okay here you you're overwriting

something you've imported you probably didn't want to do that and then I look at it I'm like yeah I didn't want to do that or like okay something's under like something's actually not defined yeah that's that's a bug thanks so stuff like that it's it's helpful it's simple and especially if you have lots of open source projects lots of code bases yeah a lot of contributors yeah it's great yeah all right yeah so I want to give you a chance for a final call to action for

folks I think we already did that around the building a successful software business so maybe just around spaCy and prodigy tell people that are interested in NLP and what you guys are up to where can they check it out if you don't know about space yet you should check it out if you feel like spaCy is not going to be useful to you then you don't like I'm not you know I don't want to go here and tell everyone they should use our software we're building very specific

maybe slightly niche developer product developer tools but you know spaCy I think we really we put a lot of effort into our documentation we have a nice getting started guide if you're interested I'm hoping it should you know even give people who haven't really worked much with machine learning a good intro to how machine learning works with text and how you know you can use that productively yeah my your python keynote was recorded and it's on YouTube so that

kind of has the full overview of all my thoughts on that you know the stuff I was saying yeah and I'll put the keynote in the show notes as well of course prodigy if you're working with labeling data if you're training machine learning models we're hoping that prodigy is a good developer tool that gets people productive we have a lot of people who felt like their work yeah it really speeded up their workflow and made them more efficient and yeah keep an eye on prodigy for like our

announcement for prodigy scale which takes it to the next level follow us on Twitter because we have that's where we announce new stuff we have a lot of cool stuff coming excellent yeah a lot of great stuff people should check it out and you know thank you for being on the show and sharing your experience yeah thanks for inviting me yeah you bet bye bye this has been another episode of talk python to me our guest on this episode was Ines Montani and it's been brought to you by Linode and

Rollbar Linode is your go-to hosting for whatever you're building with Python get four months free at talkpython.fm/Linode that's l-i-n-o-d-e rollbar takes the pain out of errors they give you the context insight you need to quickly locate and fix errors that might have gone unnoticed until users complain of course track a ridiculous number of errors for free as talk Python to me listeners at talkpython.fm slash rollbar 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 you you you you you you you you you Thank you. you Thank you.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android