Latest / Agentic Conversations (formally mlops.community) / The Creator of FastAPI’s Next Chapter // Sebastián Ramírez // #324
Transcript
- 0:00I am Sebastian Ramirez or Tiangolo.
- 0:03I am the creator of Fast API and now the founder of Fast API
- 0:07loves this new company. I drink my coffee as a
- 0:12cappuccino and I drink a lot of it.
- 0:15Welcome back to the ML OPS Community podcast.
- 0:17I'm your host Dimitrios, and today we've got the mustache man
- 0:21himself, Mr. Tiangolo, AKA the creator of Fast API, which I am
- 0:29sure a few of you use and love. We talked all about developer
- 0:34experience when building software.
- 0:36We also talked about how he thinks through abstractions.
- 0:41Let's just get right into this conversation because I had a
- 0:44blast with my amigo, Mr. Sebastian.
- 0:54You know what I want to tell the listeners?
- 0:57I want to start with the fact that we did a hackathon and the
- 1:04winners of that hackathon were from Columbia.
- 1:08Right, right. I forgot that that was so fun.
- 1:12We were the judges and the funniest part was you're from
- 1:16Columbia, The winners were from Columbia.
- 1:19Afterwards we're making all kinds of jokes like.
- 1:23Yeah. They paid off the judges.
- 1:26Yeah, yeah, yeah. What is this so very?
- 1:29Very because the, the, the, the thing that they came up with
- 1:32was, was quite cool. But I feel like I am Colombia.
- 1:35I cannot, I cannot vote on this. And they had just like, you
- 1:38know, like hands off, like the other two judges.
- 1:42You decide that I can't. You had too much honor.
- 1:45But I also remember that when we were just hanging out and
- 1:48everybody was hacking somebody, you were talking to somebody and
- 1:53for some reason pedantic came up and they didn't know what
- 1:58pedantic was. And you looked at him like you
- 2:00don't know what pedantic. Is.
- 2:02Oh, let me tell you all about it.
- 2:03So why do you love pedantic so much?
- 2:07Pedantic. I think Pedantic is so cool.
- 2:11Thing is, Pivantic made it super simple to validate data and to
- 2:17get out of completion and lean and errors for the data that
- 2:20you're handling in code. The funny thing is, before
- 2:24Pivantic was as widely known as it is right now, it was like,
- 2:28you know, like a library for doing data validation, but it
- 2:30was not as obvious. I will think that you need to do
- 2:35data validation, that you need to validate the data, you need
- 2:37to structure it properly, serialize it, converted,
- 2:41documented isn't it's not something that is obvious.
- 2:44And there's a lot of code that goes, you know, like just wasted
- 2:49on doing custom validations just because, you know, like, if you
- 2:53don't know that there's that option, you end up just like
- 2:55writing a lot of code just to check if it's actually an
- 2:58integer or not, or maybe this one is adjacent object or like,
- 3:01I don't know. So I thought that Piantic was,
- 3:04was amazing doing that. It was just not as obvious that
- 3:08you will get so much benefit from it for fast API.
- 3:11It was, it was like the key, you know, like the key component for
- 3:14doing all the data validation, serialization, parsing,
- 3:17documentation, all that stuff. And to make it super simple and
- 3:20super intuitive. And I guess that's also why it,
- 3:25it sort of helped David show, Hey, Piantic is here.
- 3:28Like you can use it for these types of things and then like I
- 3:31think people slowly got the hang of it and started using it for
- 3:35more things. But I think it actually took a
- 3:38bit for people to start exploring Paiantic in many other
- 3:41ways. I remember I was, I was like
- 3:44that at that moment, I was pitching Paiantic for everything
- 3:47because I was doing all the data processing with Pedantic.
- 3:50I have, I have a bunch of custom GitHub actions that are pretty
- 3:54much just a pedantic model that extracts the data from the
- 3:59environment variables and just like give me the right data.
- 4:01And then the code is super simple afterwards.
- 4:03And it actually doesn't even involve a fast API or anything.
- 4:06It's just like pure pedantic. So like, yeah, I think it's a
- 4:08great tool. You were super early on that
- 4:11trend and so it feels like you saw around the corner a bit and
- 4:17you incorporated into fast API, right?
- 4:19Yeah, yeah. So The thing is, I was, I was
- 4:23looking to build something that was similar to the other tools
- 4:26that I was using. But by that point I realized
- 4:29that I wanted to have the best developer experience possible
- 4:33and that will need to take advantage of type annotations.
- 4:36And type annotations were just super new.
- 4:39They were for a year or something.
- 4:40So there was no tool that was using type annotations, at least
- 4:44not properly. And pedantic was I think the
- 4:48only one that was using them at the time, apart from data
- 4:53classes that was in the standard library.
- 4:55But data classes doesn't do like any data validations,
- 4:57realization, transformation, but it's sort of the same, the same
- 5:01style. And I was looking for a tool
- 5:04that will do things like that. I was using by then.
- 5:07There was a previous tool called Marshmallow and Marshmallow was
- 5:12great. It's just that it was the same
- 5:14before. We have type annotations, so
- 5:16that didn't have a way to exploit them.
- 5:18I was trying to look for something like that that will be
- 5:20based on type annotations. So I was, I already had my mind
- 5:24set on what I needed and then I found Pedantic is like, OK, this
- 5:28is the right thing. But the Pedantic docs docs were
- 5:32mainly focused about managing settings and handling settings
- 5:37for applications. And we're like, OK, but is this?
- 5:39So I was like, you know, like, is this actually what I need or
- 5:42not? But then, like, I, I kept
- 5:44digging deeper and then I found out, yeah, this is exactly what
- 5:47I need. It's just that it's probably not
- 5:49obvious that it could be perfect for all these other use cases.
- 5:52So yeah, just like started just exploiting it and nagging
- 5:56somewhere with the hey, here's another PR.
- 6:01Yes, Emma, that's awesome. He's been so good and they're
- 6:05great shepherds for that whole community.
- 6:07It's cool to see by Dan Dick and and like you said how it had
- 6:11this lagging effect, but now it feels like it is very much at
- 6:16the forefront and people understand the value in it
- 6:20thanks to I think in part a lot of what you did with fast API.
- 6:25Nice. I'm I'm you know, like that's
- 6:26that's that's an order for me to think that I helped people to
- 6:30get to know Pedantic. And now Pedantic is also using
- 6:32like everywhere in, you know, like all the major Edelen
- 6:36providers or as the case or tools, they are all based built
- 6:40on top of pedantic. And that's amazing because I
- 6:42think it's like, yeah, it's an amazing building block for
- 6:45everything that we've built on top.
- 6:47So there's two things that I wanted to talk about from our
- 6:51last conversation, which was I think like 3 years ago till now,
- 6:55that I swore to myself if we end up talking again, I have to ask
- 7:00you about these things. The first one is I got a little
- 7:04bit of Flack back in the day because I didn't ask you about
- 7:08your stint in ML Folks were like, yeah, but Sebastian's done
- 7:14ML stuff and you guys didn't talk at all about that in the
- 7:17podcast. So can you break down the ML
- 7:20stuff that you did and give us a bit of, I think you're like an
- 7:24undercover ML/AI guy where you're masquerading with the
- 7:29FAST API. But was it was FAST API built
- 7:33for ML use case? Yeah, exactly.
- 7:38Do you? You got me.
- 7:40So I got into Python to do AI and ML.
- 7:45That's why I got into Python. It was a requisite in a in a in
- 7:49an AI course from edx from Berkeley like, I don't know,
- 7:5410-12 years ago. All of them, yeah, like.
- 7:56Yeah, that's how I got into Python.
- 7:59Then I started working and I was doing stuff with computer
- 8:02vision, and then it was computer vision without deep learning,
- 8:06without neural networks. It was just like, you know,
- 8:08like, oh, very complex algorithms and like SIFT and
- 8:13like then matching stuff and like call my filters and like a
- 8:16bunch of stuff that was, was super sophisticated, complicated
- 8:21and difficult to get. Like, you know, like great
- 8:23results with it. And then like, you know, now,
- 8:26now you can just like put deep neural networks on top and like
- 8:29get a lot of value without, you know, like without having to
- 8:33feel so much. It's amazing.
- 8:36But yeah, I got into that. Then I, I took a bunch of, I
- 8:38took a lot of online courses, but like I, I have like a, a big
- 8:42inclination towards machine learning and AI.
- 8:45And then fast API came from that.
- 8:47And then, yeah, so like I, I started working at the company,
- 8:50we were doing like machine learning stuff and it was things
- 8:54related to that, but we always had to build applications.
- 8:57I mean, in all the cases we needed to build an API on top of
- 9:01things. So I kept struggling we and kept
- 9:04like stumbling in like the issues of like building an API
- 9:07with the tools that I had on hand.
- 9:09And I figured that this was one of the things, one of the
- 9:12patterns that was just repeating over and over and one of the
- 9:15things that had to be solved over and over.
- 9:17And I didn't found a great solution and something that that
- 9:21will work well. And I found something that will
- 9:24sort of work and I figure out how to make it work.
- 9:27But it was so complicated and like, you know, like it was
- 9:32difficult. And then the team that I was
- 9:34working with that they were all struggling.
- 9:36And it was like, yeah, this is just copy paste whatever
- 9:39Sebastian did. And like, it's, it works.
- 9:42Yeah. It's not the best developer
- 9:44experience. So, you know, like continuing in
- 9:48that path. I, I was using that setup for
- 9:50quite a while, but like, you know, like I kept just like
- 9:53investigating and researching different framers and things
- 9:56until I ended up in fast API And then I just, I got stuck in AP
- 10:00is but like I, I got into Python because I was going to do AI and
- 10:04MMM. You missed the train on that
- 10:07one. You were super early and then
- 10:11you went down the API rabbit hole and ended up powering half
- 10:14the Internet. That's that's, that's a crazy,
- 10:18it's like, you know, like it's, it's something that makes me
- 10:22very what proud and humble and like everything at the same
- 10:26thing to see so many AI applications and like, you know,
- 10:29like many of the of the, you know, like top voices and like
- 10:36top opinion leaders in AI liking and using fast API.
- 10:40For me, that's, you know, that's mind blowing.
- 10:44Well, I remember you telling us that one of the bigger ones that
- 10:48you had heard was using, it was like NASA and they were powering
- 10:54spaceships or something along those lines.
- 10:56And I that blew my mind. Just like there are some really
- 11:02cool use cases, and of course there are because you use AP is
- 11:06for everything. Yeah, it's not like.
- 11:09It's not contained in that way. You can use APIs wherever.
- 11:14And like you said, your commitment to the developer
- 11:17experience has been, I think, what makes fast API shine.
- 11:22And so the second thing that I wanted to ask you about was what
- 11:27I also got Flack for in the last time that we had a conversation.
- 11:33And that was people saying, why didn't you ask him why there's
- 11:36so many damn emojis in the docks?
- 11:38And this is this is pre chachi PT.
- 11:42You were very early on that trend also.
- 11:46Yeah, that's, yeah, that's funny.
- 11:48Like, you know, at some point, I don't know how much you go into
- 11:53Reddit. I now try to avoid it because in
- 11:56many cases it's a dark place. It's a very dark place.
- 11:59Yeah, but at some point I remember there was some
- 12:01conversation in one of these ready to like, I don't know,
- 12:04fast API or Python or something, and someone was saying like, Oh
- 12:08no, couldn't trust Fast API. Like, you know, like, Oh no, can
- 12:11I trust? Like it's a, it's a single guy.
- 12:13Like how can you trust them? Like, you know, like people
- 12:15don't realize that most of the open source projects they use
- 12:18are built by a single guy or a couple of people.
- 12:21Even if they are big corporations, this is still
- 12:23mostly like one or two people for most of the open source
- 12:25projects. But anyway, they were saying
- 12:27like, no, no, how cool can you trust like a simple guy on
- 12:30bland? One of them said like, well, but
- 12:32wait, why? Why wouldn't you trust this guy?
- 12:35Or like, why, Why do you say he's a psychopath or something?
- 12:38Like I said, like he's clearly he, he clearly does very, what
- 12:43was he? He clearly does very hard drugs.
- 12:45Like what? How?
- 12:48How do you know? And it's because of the emojis.
- 12:53So the emojis, Yeah, yeah, yeah. That's what that tells that like
- 12:59I do very hard drugs. Like, well, I do very.
- 13:02I do lots of coffee, maybe that. Oh man, that is the best Reddit
- 13:10thread. We'll have to try and find that
- 13:12one to showcase to people because yeah, that that's the
- 13:16Internet for you. That's what you can expect when
- 13:20you gain a certain amount of notoriety.
- 13:22You're going to get that type of random speculation.
- 13:26But this one like, you know, like the point is, I guess well,
- 13:29after one, at first it's like, oh, that, you know, like you
- 13:32feel weird and like maybe like a title like did I do something
- 13:35wrong? Or it's like something bad or
- 13:37something. But then like after a while
- 13:38you'd realize that the the bigger the scope of the impact
- 13:43that you can have, the higher chance that you're going to have
- 13:47some random person just nagging about random stuff that doesn't
- 13:51really make that much sense. So I guess, yeah, trying to
- 13:56trying to take it as a compliment, I guess, you know,
- 13:58like when someone criticizes you so badly, like, how could we get
- 14:05to this point? You know, like I'm a random
- 14:07person in the other side of the world on the Internet.
- 14:10How could this person hate me so so much?
- 14:13For the emojis that you use in the dark.
- 14:16So yeah, I don't know. I have also had like a few
- 14:19reports, I think like it more than it's more than 123 of
- 14:24saying like, hey, the first API dogs have been hacked because
- 14:28he's so full of emojis. It's just that they put the URL
- 14:31run because there's a version. So Fast API is translated to a
- 14:35few languages and one of those languages is emoji.
- 14:39It was just an April Fool's joke and it just stuck and it's still
- 14:43there and you can find the whole documentation written in emojis.
- 14:47And it was, it was actually done by other people.
- 14:49It was not done by me. It was done by a few other
- 14:52people. And I think that's the PR with
- 14:54the most approvals I have have in Fast API.
- 14:59So when people get to like, you know, like Easter eggs and April
- 15:01Fool's jokes, like, they really go harder on that so that that's
- 15:06still there. But then occasionally people
- 15:09bump into a URL with the emoji prefix and they just see
- 15:14everything in emoji and like, oh, no, it was hacked.
- 15:16And then they tag me on Twitter. It's like, yeah, I know you're
- 15:19in their own language. Incredible.
- 15:22Dude, that is so funny to think about.
- 15:24Well, there's the other piece. I just can't stop thinking about
- 15:30the emojis part and how much controversy emojis cause for
- 15:36basically nothing. I also get that way when I play
- 15:41guitar in our virtual conferences or in our I used to
- 15:46do guitar intros for the virtual events and we threw them up on
- 15:51YouTube. And I'll tell you what, some
- 15:53people on YouTube, they've got some creative ways of talking
- 15:58shit. And I was the same way as you
- 16:01where I would just think, damn, I am honored in a way because
- 16:07they took the time out of their day to talk shit.
- 16:10And I guess I could feel a little bit ashamed here, but
- 16:15Nah, I'm going to take it as a compliment as opposed to a
- 16:20threat or just dissing me. So.
- 16:25So anyway, the, the thing that I wanted to talk to you about too,
- 16:31you have started a new company. You also got some funding from
- 16:37Sequoia, I heard or I saw and I know that for the last year or
- 16:42so you were doing something really cool that Sequoia was
- 16:46sponsoring, which was like they were, it was almost like this
- 16:51entrepreneur, entrepreneur in residence, but it wasn't.
- 16:55So maybe you can break down what you were doing and then why you
- 16:59finally landed on Fast API Cloud or the pro version of Fast API?
- 17:05Because I know that back in the day when we had a meet up and
- 17:08then we went out after the meet up in Berlin, people were like,
- 17:12oh, so you're going to start a company, you're going to do
- 17:14something around fast API and you're like, I don't think so.
- 17:17I don't know, maybe we'll see. I'm open.
- 17:20But that was also like 4 years ago.
- 17:21So obviously a lot's changed. Give me the breakdown and the
- 17:26lead up to this. You know, like I, I remember in
- 17:29that conversation after the meet up, one of the guys came and say
- 17:33like, OK, so I and are you going to work like full time on that
- 17:37or not? Because at that point I still
- 17:39wasn't working full time on Fast API.
- 17:40Yeah, you had a job. I.
- 17:42Think I had a like I I had a part time job and I asked them
- 17:45to do it part time because I wanted to spend more time on
- 17:47open source and he's I remember this guy said like, hey, are you
- 17:52working full time fast API? Like no, but like yeah, you know
- 17:55like I don't have a product or something like why don't you
- 17:57start the company? No, yeah.
- 17:59And I remember he said, like you should, you should start a
- 18:02company or do something and build something for, for open
- 18:05source because we all need it. Like, you know, like we all
- 18:10benefit from that. And it will be a shame if we
- 18:12cannot get like more of that, you know, like it was something
- 18:16around those lines and it was like, oh, that's shit.
- 18:19That's so, you know, makes you feel, well, on one hand, super
- 18:25appreciated. On the other hand, like sort of
- 18:27almost our responsibility of like, you know, like this is
- 18:29something that is being so useful to people and I get the
- 18:32chance and the power to help many more people by just
- 18:38improving. It was like something that you
- 18:41sort of got to do right. So yeah, it was.
- 18:45I remember, I remember that that point and that moment.
- 18:48And that guy, I think I remember who you're talking about.
- 18:51And that guy, 'cause I, I remember distinctly being at the
- 18:55bar when we were talking and he was telling me like, dude, yeah,
- 19:00like maybe you could start a course or maybe you could do
- 19:02something with this community, like certificates.
- 19:05And I looked at you and I was like, yeah, and maybe you could
- 19:08like start a course too, or like a newsletter.
- 19:11And he looked and he was like, this is Sebastian.
- 19:14He started Fast API. He's not starting a course.
- 19:17He's got a company. To go start and.
- 19:21I was like, OK, dude, thanks for like that packhanded cuff.
- 19:27I was, I was laughing so hard. I can't remember who what that
- 19:31guy's name was, but I'm going to go find him and, and we'll have
- 19:33some laughs together. But anyway, so then you had that
- 19:36pressure put on you. Yeah.
- 19:38But then after that it was, I don't know if it was like the
- 19:40next year or one year after I remember was probably 1.
- 19:44After that, it was in 2023 Sequoia started the open source
- 19:48fellowship. So it was like this sort of it
- 19:54was a steep end to cover my expenses.
- 19:55So I would just like work full time on open source.
- 19:59I think during that time is that we had the, the the hackathon
- 20:02that I was helping judge and like that stuff.
- 20:05But that was because that was after the previous event.
- 20:08And you weren't getting paid right?
- 20:10The I remember you telling me that you had the option to
- 20:15donate on the GitHub page, but the sponsors of Fast API.
- 20:21It wasn't like enough for you to live off of.
- 20:23Yeah, yeah. And you know, like this is, this
- 20:25is quite fun. Is that like people come and
- 20:28sometimes people come and sponsor and give like, you know,
- 20:30like a couple of bucks, 5 bucks a month tame something like
- 20:34that. And it's like super, you know,
- 20:35like I appreciate it a lot and it's like, it feels very
- 20:39encouraging. But with that, it's very
- 20:41difficult to make a, you know, like a sustainable income
- 20:44because you get like, you know, like you get 100 and 100 people
- 20:49putting 5 bucks a month is 500 bucks a month is not, is not
- 20:54enough to live off. Then the ones that put the most
- 20:58are the ones that get something in exchange, like a badge in the
- 21:01dogs or like consultancy time or things like that.
- 21:05But then in the end is, you know, like it's sort of a
- 21:08transaction that, you know, like you're giving something extra
- 21:12for them to give you something back.
- 21:15And sometimes, you know, like it's also difficult for
- 21:17companies to justify giving money to, to, I don't know, to,
- 21:21to sponsor open source stuff without having something in
- 21:24exchange to show finance and to show the investors.
- 21:28And like all the stuff it's yeah, it's, it's I guess it's
- 21:32like it's difficult to balance. There are some things like for
- 21:34example, the open source pledge. Now I think that's that's
- 21:37amazing from those started from the people from Century and also
- 21:41people from Astral and Pedantic join and like a few other
- 21:45companies join there that they are, you know, like committing
- 21:48to give, I don't know, a certain amount of open source employee.
- 21:53They have some certain amount of open source a year or something
- 21:56like that. But The thing is that, you know,
- 21:58like the open source sponsorships are normally not
- 22:01super, super meaningful necessarily, at least not for
- 22:07the majority of of projects. So it's like it's it's
- 22:10something, but in the end it's also sort of a service or a
- 22:14project or transaction that you have to give away something.
- 22:16It's like a budget or something like that.
- 22:19But yeah, with the, with the open source fellowship, they
- 22:21will cover like, you know, like cover my expenses and then I
- 22:23will be able to just like go full time on open source.
- 22:27The, the, you know, like they will ask every once in a while,
- 22:31hey, what do you think about this company?
- 22:32But that was like, I don't know, like 4 times in a year or
- 22:35something like that. So it's, it's very, it was very
- 22:37little. It was actually just mainly
- 22:38focus on your open source. And it was also not like, you
- 22:42know, like here's a project manager, you have to work on
- 22:44these issues or you have to do this or that.
- 22:46It was just like, you do your thing, we just trust you go and
- 22:50build your, your stuff. You know what to do, just go and
- 22:53do it. So it was, it was it was super
- 22:56useful because I was able to work and like tackle very
- 23:00difficult things that's required a lot of continuous focus time
- 23:05and that the results and the value will be seen only after it
- 23:09was completely done. So for example, a migrating or
- 23:12like supporting fast API supporting Pedantic version 2.
- 23:16FUS CPA currently supports both version 1 and version 2,
- 23:19depending on whichever is the one that you installed.
- 23:22FUS CPA supports that one. So people can like do the
- 23:25migration and that, but then like getting that, doing that,
- 23:29getting to a point of quite a lot of work.
- 23:31And it's something that will have been very difficult to do
- 23:33if you just like put one or two hours in the nights and then
- 23:38like a bit during the weekend. It's very difficult to keep the
- 23:41pace and keep the context. So that, that was amazing.
- 23:44You'd still. Be working on yeah.
- 23:46That was the open source fellow sheet.
- 23:47That was 2023. By the end of 2023, I was seeing
- 23:52there were like, you know, like companies trying to build a
- 23:55cloud for first API cloud for five and trying to get like that
- 23:58feature, trying to get that going.
- 23:59And I was like, why will, why will someone else build it?
- 24:03And why wouldn't I build it? Because on one hand I could make
- 24:07sure that it has like, you know, like the best developer
- 24:09experience for fast API, because I am the first user of fast API.
- 24:13I build fast API for myself to use it myself.
- 24:16And then like building a cloud and building it for myself.
- 24:18And just like it's just so satisfied that everyone gets
- 24:22doing. Yeah, but like I'm building it
- 24:24for myself as I wanted to exist. And then it's also like, you
- 24:29know, like the community is already there.
- 24:30And I can make it super simple to integrate it with fast API to
- 24:34make it easy to integrate with fast API.
- 24:36And I can also ensure that, you know, like fast API kids being,
- 24:39which is something that is super important to me, that fast API
- 24:42kids being open source, fully open source with all the
- 24:45features like you can deploy wherever you want, however you
- 24:48want. I'm just going to make sure that
- 24:49you have an amazing developer experience with Fast API Cloud.
- 24:52So you want to drive as the Pi Cloud and stay there, But like,
- 24:55you know, like it's still, you can, you can use it however you
- 24:58want to use it, it it makes sense.
- 25:02And it was also like, you know, like there's a chance also to if
- 25:05there's some fruits that could be taken out of like all the
- 25:08work I put over the years on the open source, I would like to
- 25:12take a piece of that at least. So like, yeah, that makes sense
- 25:16as well. And figuring out a way, a
- 25:18sustainable way to have a funding for the open source
- 25:22projects. That was that was something that
- 25:25I have been like, you know, like trying to figure out how to do
- 25:28for four years. And like the open source
- 25:30solution was great, but it's not something that I can feel like,
- 25:32oh, I'm going to just like stay here forever in the open source
- 25:35fellowship. Like they probably wouldn't want
- 25:38to just like, you know, like pay me forever just to stay there,
- 25:41you know, like they were willing to extend it.
- 25:43But but it was like, you know, I should probably make something
- 25:47that make sure that all this stuff keeps working and so that
- 25:51I can also work on A and I get people to work on the open
- 25:55source projects, fast API type air sequel mode async, like all
- 25:59the all the stuff that I built that is already there.
- 26:03So what like, you know, like just the balance of everything
- 26:05together. You can't.
- 26:06Rely on the goodwill indefinitely.
- 26:11You have to at some point figure out there what is a more
- 26:16sustainable way. And this feels like it was a
- 26:19great bridge from not you were you were moonlighting on this to
- 26:27then it became your full time thing and now you have this
- 26:33sustainable way of keeping it your full time thing.
- 26:37And so that makes a ton of sense.
- 26:39I want to go into the difference or what you get with Fast API
- 26:45Cloud and how you think about which features or what parts go
- 26:51towards the open source versus what parts now go towards the
- 26:54company and also everything around that decision making.
- 27:01Yeah. This is actually this is
- 27:03something that I gave a lot of thought to.
- 27:06Building a cloud was not like, you know, like I was not trying
- 27:11to build a cloud. That's that's felt like daunting
- 27:13and it was daunting. It's been like a lot of work
- 27:15that we have been doing and it was like, can't I make, you
- 27:19know, like a simple product or something?
- 27:21But every time I will came up with something, it will just
- 27:24make sense to make it open source type SQL model.
- 27:26I think it was like, yeah, well, this has to be open source.
- 27:30Building a cloud. It was daunting, was a lot of
- 27:33work and I required a team and I required resources.
- 27:37But it had these had these very nice detail, this characteristic
- 27:45that they overlap. And like the conflict of
- 27:48interest between the open source and the cloud are are minimal.
- 27:52You know, like you have the open source is this way and then the
- 27:55cloud goes this other way and it's just like they just cross
- 27:58each other. But the open source, it doesn't
- 28:01really affect that much. In fact, it actually aligns
- 28:05quite well. If fast API is even better, you
- 28:07get more features, you can do more stuff with fast API.
- 28:11There's a higher chance that you will want to just use fast API
- 28:14in general. And if you use fast API in
- 28:16general, there's a higher chance that you at some point will want
- 28:18to try fast API cloud and try other service.
- 28:22So, you know, like it just made sense to to do something that
- 28:26had the least friction possible with all the open source,
- 28:30because it also simplifies all that conflict and like that sort
- 28:35of process like what goes in the pro version and what is the core
- 28:38and what is it now? Fast API is all pro.
- 28:41You get the pro for free. And if you want to deploy in
- 28:44fast API cloud, they just could just deploy to fast API cloud.
- 28:47But the open source thing is just like you get all the
- 28:49features that that are there and all the new features that we
- 28:52will build, like all the new stuff that we will make sure the
- 28:56fast API is just as good as it can be.
- 28:58And we keep improving on that. Then like you will be able to
- 29:01just reap those benefits no matter how you deploy it.
- 29:05And then on the other side, we can make sure that the point of
- 29:08fast API cloud is just the best developer experience ever.
- 29:12It has like, you know, like the most robust and resilient way to
- 29:15apply things that you get something that is just instant
- 29:18there, like you don't have to think or figure out or like, you
- 29:21know, like tweak a bunch of configs and they work errors in
- 29:24other languages. And you know, like all that
- 29:26process is, it's a, it's a lot. You've been through it.
- 29:31Yeah, yeah. Which is also the other reason
- 29:34why I, I, I, I realized and I decided that it was a good idea
- 29:39to build a cloud project. Before that, I was very much on
- 29:43the side of just learn to build everything yourself.
- 29:45And just like, you know, like install the Linux machines
- 29:47yourselves and just like build and set up the cluster yourself
- 29:51and just like deploy your things there.
- 29:53And actually, I had one of the, the main, the most prominent
- 29:57websites for explaining how to use an alternative to docker
- 30:02that was created by, sorry, an alternative to Kubernetes that
- 30:06was created by Docker. It was called docker swam,
- 30:08docker swam mode. And it was, it was a great
- 30:11product. It was quite lean, but in the
- 30:15end it didn't work out for them and they sold it to another
- 30:17company that put that on their, their Kubernetes Umbreva.
- 30:21So like, you know, Kubernetes one one way or another, but then
- 30:26Kubernetes is just massive, just getting to learn Kubernetes,
- 30:31getting to use it, getting to manage it and you just do it.
- 30:35And then you're just scratching the surface.
- 30:36It's just a lot, a lot of work. So you know, like seeing that
- 30:40and seeing that I before that I could tell people that, hey,
- 30:43just go and start like this other thing.
- 30:45And then you you're good to go. Like, you know, like you have
- 30:47the first version that is working in like in a week, in a
- 30:50couple of days. But then if I tell them, well,
- 30:53you have your fast API app now, gold length Kubernetes for six
- 30:56months, or you know, like try one product or the other, like
- 31:00maybe this one will work. That was not the great story.
- 31:04So that also convinced me like it's probably probably makes
- 31:07sense to have something that is dedicated to this type of
- 31:10application and to make it super simple for people to deploy fast
- 31:14API application and be being able to just focus on the code
- 31:18and the product and not on all the nuances of deployments.
- 31:22Yeah. So everything fit together and
- 31:26match to that point to say like, yeah, well, this is probably the
- 31:29best way to go. This is the way that I can have
- 31:32the biggest impact in people's code and the things that they
- 31:36can achieve and the things that they can do and build to help
- 31:39others on the open source and also on the product and like
- 31:43everything together. So yeah, you remind.
- 31:46Me of the founder of that company called I think it's base
- 31:5010 or base camp. No base camp is what it is.
- 31:53And they I have heard a few podcast with him on it and he
- 31:59talks about how when he sees or uses poorly designed or just not
- 32:07the best thought out software it drives him crazy and so crazy
- 32:13that he has started a few different companies to combat
- 32:18poorly designed software. And I think 1.
- 32:22Of them was even a parking lot software that his HOA or his
- 32:29condominium complex used and he hated it so much he just went
- 32:33and created a new one. If I'm.
- 32:36And. It reminds me of you kind of.
- 32:38You go through and you say, wow, this developer experience is
- 32:44painful. And then I'm sure there is a
- 32:50long period of time where you sit with it being painful and it
- 32:54like continues to be painful, but it eats away at your soul in
- 32:58a, in a way that for some of us, we just put up with it.
- 33:02But for you, you're like, I'm going to have to go and create a
- 33:05product around this. Yeah.
- 33:08Maybe, maybe some, maybe it's a bit like that, like, yeah, I
- 33:11don't know. And like, you know, like there
- 33:13are many tools that are just great, but they are also super
- 33:18complex or like dealing with a lot of nuances.
- 33:21And it's just like some layer of abstraction.
- 33:24And then sometimes just just having to deal with that is
- 33:27like, oh, it's a complex. Like, you know, like if you had
- 33:29to go and buy the the motor and the tires and the doors to
- 33:34finally assemble your own car is like, that's, that's just too
- 33:37much. You just go and buy a car.
- 33:40So, yeah, in, I think in many cases, it doesn't really make
- 33:43sense to assemble your own cars when your business is not
- 33:47assembling cars, your business is doing something to ride them
- 33:50or maybe not even riding them. Maybe you just need them to be
- 33:53able to get something across, but you need a car to be able to
- 33:57do that. And like, yeah, like I feel for
- 33:59many, many use cases being able to just like get the car and
- 34:02like not having to deal with that makes makes total sense.
- 34:06Yeah, you don't. Even need to create an Uber or
- 34:09you're not even an Uber driver using your car everyday.
- 34:12It's just that you're getting in a car and it's taking you from
- 34:16point A to point BI. Feel like that metaphor because
- 34:19that you at the end of the day, everybody needs to use a car or
- 34:26use AAPI in their software that they're building.
- 34:30And so how can you make that the least friction or the easiest
- 34:40for getting that outcome that someone is looking for?
- 34:44Yeah. Exactly.
- 34:45And you know, like that was the spirit of fast API.
- 34:48How can you make it so that you just write the code in the way
- 34:52that will be the most intuitive to you and then it does the
- 34:56right thing and does all this stuff that you needed to do
- 34:59underneath. By default, data validation,
- 35:02documentation, everything is just done by default and it just
- 35:05gets out of the way. So you can like focus on your
- 35:08code. You know, like when you see a
- 35:10fast API application, the amount of fast API code is minimal is
- 35:16it mostly is just like the actual code of the business
- 35:19logic. That is the idea to try to make
- 35:21it super simple to use the tool and you know like to do not get
- 35:27in the way of building the thing that you need to build since we.
- 35:30Talked last two. I have been thinking a lot
- 35:33because I think in our first conversation we hit upon the
- 35:37point of how you look at what abstraction layer to play on and
- 35:43where that decision is made or how you think about making that
- 35:47decision. It's only become more relevant
- 35:50since the new LLM boom because of all these new tools that are
- 35:56coming out and trying to abstract away different pieces
- 35:59of the LLMAPI calls. Or maybe it's the orchestration,
- 36:05or maybe it is something around the system.
- 36:09When you're building with AI, have you thought not necessarily
- 36:13about the abstraction for the AI systems, but what is your way of
- 36:20going about these abstractions and thinking through what would
- 36:26be the best abstraction here? Do you sometimes create an
- 36:30abstraction and then roll it back and say, actually no, no,
- 36:33no? Is it something that you're
- 36:35working with and it it slowly is boiling in your mind and you
- 36:40then all of a sudden have a Eureka moment?
- 36:43What does that look like? That's actually a very
- 36:46interesting question because like, you know, I do think about
- 36:49that a lot, but I don't get asked about that oven.
- 36:54I think it's more of like, you know, like it's boiling in the
- 36:58background and I'm trying to figure out what is the right way
- 37:01and just like, struggling with it.
- 37:02And then at some point I realized and figured like, yeah,
- 37:04it makes sense. And it's fun that I think about
- 37:09that a lot for the stuff that I built.
- 37:11And the same, you know, like with fast API type or SQL model
- 37:16asyncher and also the fast API cloud product for all of them.
- 37:21I avoided building them for a long time.
- 37:24For Fast API, I was trying not to build something.
- 37:27I was looking for other tools and like what was already there
- 37:29that I that could do what I, what I, what I wanted for, for
- 37:32the company I was, you know, like I have been told like how
- 37:35you should start a company for years.
- 37:38Yeah. Like that there were like I had
- 37:41like, yeah, a few people that were interested in me building a
- 37:44company and like it was, yeah, no, I don't, I don't think so.
- 37:48I don't have like a right product.
- 37:49It's not, I don't have something that will be the right
- 37:53abstraction to build. But then, and this is, this is
- 37:56the key point, this is how I think about it.
- 37:58When you when the new abstraction that you could build
- 38:02learning and using that new abstraction for your users, for
- 38:05your final users when learning, that is much less effort than
- 38:12they will have to put to learn the underlying thing.
- 38:17So you know, like for them to use your, to use YouTube, for
- 38:20them to use fast API, the effort, they have to put some
- 38:23effort into reading the docs into learning how to write a
- 38:26code for fast API into learning how to do that.
- 38:28But if they didn't put that effort, they will have to put an
- 38:32order of magnitude more effort into learning how to do
- 38:35everything by hand or more, you know, like orders of magnitude.
- 38:39So when you hit that point where it's like, OK, if instead of
- 38:42learning all the underlying stuff, people could learn a
- 38:47small layer in between in the middle and by learning that they
- 38:51just save so much effort in learning and debugging and using
- 38:56whatever is that goes underneath, then that's the
- 38:59point when it makes sense. And it's also when there's no
- 39:03abstraction that is already doing that because in some cases
- 39:06people go and like build another tool or build another framework
- 39:10or something. But it's like this has been
- 39:12pretty much the same that this other thing is already doing.
- 39:14So it's not necessarily that that viable, but it's when it's
- 39:19when you see repeatedly that some level of abstraction is not
- 39:25managing to, to, to be met, you know, like having something that
- 39:29is super simple and intuitive to use that you just have to learn
- 39:33a very minimal thing to get a lot of value.
- 39:37And the yeah, that's the point when I say like, OK, it, it
- 39:39makes sense. That's the point with, with fast
- 39:42API, that's how it happened. Like I was actually going to
- 39:44start contributing to another framework and the authors say
- 39:47like, no, I cannot really keep working on this.
- 39:49I'm going to deprecate this. I'm going to focus on something
- 39:51else. This was Tom Christie, the
- 39:53author of Django REST Framework, the author of API Star, which
- 39:56was like sort of the spiritual predecessor of Fast API.
- 40:00And then he started Starlet, which is the building block for
- 40:02Fast API. I'm going to keep working on
- 40:05this other framework that was called API Star.
- 40:08Then I said like, OK, this is this is the last notch.
- 40:11I'm going to jump into it and try to build Fast API.
- 40:14Similar with the with the similar with SQL model.
- 40:17There were some more tools that were trying to build an ORM that
- 40:20was based on type annotations and pedantic, but none of them
- 40:25were managing to, you know, like heat the sweet spots that I
- 40:30wanted subjectively. But like, you know, like the
- 40:32things that I wanted it to do the way that I expected it to
- 40:35do. Taking, taking, you know, like
- 40:38having into account all the how type annotations work, how
- 40:42default values work, how to completion inline narrows how
- 40:45all these things that are just like very tightly coupled to the
- 40:48developer experience. And they were not really
- 40:52managing to get to that point. And it was like, OK, I have to
- 40:55build this new tool, the SQL model tool.
- 40:59And it was, I really don't want to do it because hardly
- 41:02databases and SQL is so difficult.
- 41:04But he was like, you know, like I just have to do it because I
- 41:07have these ideas that are there, they are going to be useful.
- 41:10I just have to go and you know, like buy the bullet and build
- 41:13it. The same with the cloud, you
- 41:17know, like learning all the Kubernetes stuff and learning
- 41:20all the cloud products from the big cloud providers and all that
- 41:23is just so much work. And it's just so there's so much
- 41:28impedance mismatch between different tools that you have to
- 41:32figure out some weird way to monkey patch things to make
- 41:36things work. And be always careful with how
- 41:41those things evolve so you can update the monkey patch like,
- 41:44you know, like that's how the cloud is built.
- 41:48It's not ours. It's everyone's cloud.
- 41:50That's how it's all built. Spoiler over there.
- 41:53Yeah, yeah. That's.
- 41:54How every cloud is built. It's just like a lot of a lot of
- 41:58things, just like, you know, it's just tape everywhere,
- 42:02putting everything together and then having to deal with that is
- 42:05just so much work and so much effort.
- 42:08And then when they, you know, like it was the point that like,
- 42:10yeah, I know like actually if you want to deploy something,
- 42:13you just should go and learn one of these giant products or
- 42:17Kubernetes or Kubernetes on top of them or some cold cloud
- 42:20provider. There are several call providers
- 42:22that are quite good. They are doing a job of
- 42:25abstracting things a layer a little bit above the, you know,
- 42:29like the raw stuff. And they are quite good, but
- 42:32they are still quite general or generic for trying to be like,
- 42:37you know, like generic for every framework and for every language
- 42:40for everything. So it's always like this little
- 42:42friction of like, how do you do this for fast API?
- 42:45How do you make this thing work? That was the thing that I felt
- 42:49like it. It makes sense to have something
- 42:51that just works. Yeah.
- 42:55It's. Part engineer, part taste.
- 43:01How I hear it, because when you're thinking through these
- 43:05problems, you're really stewing on them, but you're also looking
- 43:10at what's going to be the most efficient and then what is going
- 43:14to be the most tasteful way or that developer experience side
- 43:21of things really makes me realize that you're thinking
- 43:26through not only, hey, this is the best way of doing it.
- 43:32It is this is the most developer friendly way of doing it.
- 43:40And even if it may or may not be the best way, because they're
- 43:46probably are potentially better ways that you could do something
- 43:50throughout each step, but then that adds that extra complexity
- 43:54that you don't need in the mix. Yeah.
- 43:59Yeah, exactly, Exactly. And The funny thing is that it
- 44:02feels a lot like taste and like an art and not a science and
- 44:07like, feels like, oh, it's just like, you know, like very good
- 44:10taste or something. But it's actually a giant list
- 44:14of specific tips. But you know, just like knowing
- 44:17all that by heart just helps a lot to see like this doesn't
- 44:21make sense. But it's not, it doesn't make
- 44:23sense because it smells weird or like, you know, like I feel it
- 44:27doesn't have a good. No, yeah, it's it's it's
- 44:30normally a very specific thing. It's like if you define the
- 44:34imports in this way, people, you final users are going to have to
- 44:38import from very different places and they will know what
- 44:41they will need to import. So better to define them these
- 44:44other way. But saying all that long phrase
- 44:47is longer than saying like, it's probably better this way, you
- 44:51know, So, so it's it's, it's a lot of I think it's just a lot
- 44:55of that which is like, you know, it's a it's a funny thing.
- 44:58I feel it's quite funny that several of the automatic SDK
- 45:05providers, so that the people that generate the SDKS for the
- 45:09big LLM providers like Open AI and several others, well Open AI
- 45:14Entropic and like, I don't remember most of them, they are
- 45:17building the SDKS. The Python is the case and well,
- 45:19like the several languages as the case based on open API,
- 45:24which is the thing that fast API is based on, Many of these big
- 45:27providers are actually using fast API underneath and they get
- 45:29like a nice open API as a result.
- 45:33But then many of these the case they have like, OK, what is the
- 45:36right way to build this in Python?
- 45:37And I ended up having conversations with several of
- 45:40them. I think like the right way is
- 45:42like doing this. So for example, using, you know,
- 45:45like this is one of those things that is sounds like taste, which
- 45:48is actually a very specific set of things that work.
- 45:51If you define the parameters of your functions as typed Dicks,
- 45:56then instead of pedantic molds the parameters of the functions,
- 45:59the inputs parameters of the functions.
- 46:01If you are building an SDK as type dates, then the editor will
- 46:05be able to provide auto completion and in line errors
- 46:08for the parameters that the users are providing without the
- 46:11users having to import some additional model.
- 46:13Without them having to import anything, they just start
- 46:16cooling braces and they start getting out of completion.
- 46:18And then if the outputs of those functions are pedantic models,
- 46:24then users are going to have auto completion when they hit,
- 46:26when they try to get an attribute or things like that.
- 46:29Two for one deal. Yeah.
- 46:31So it's. Like, you know, like it's just
- 46:32like that specific combination of use this here, use that
- 46:35there, this works this way, this works the other way, like use
- 46:38this tool underneath and like that should get you going.
- 46:41That ends up helping a lot. And then in the end, most of
- 46:44these SDK providers are using exactly that recipe that they, I
- 46:48think I told them or something, at least a few of them, I told
- 46:50them like, hey, you can do it this way.
- 46:51I don't know if some of the others like came up with it on
- 46:55their own, but like, you know, it's just like just those those
- 46:58tips, those any ideas of just having explored a bunch of that
- 47:05and trying to get like that best developer experience after using
- 47:09it as a final user? I think that is the main point,
- 47:12just like using something as a final user and trying to improve
- 47:16that own experience constantly. But when you say.
- 47:19Explored. Do you mean that you've tried to
- 47:23put a certain rule in place and then you've played around with
- 47:27it and you've said maybe this isn't good or maybe it could be
- 47:32a little bit better if we also do this and so you're adding on
- 47:36top of it or you're adding something and then taking it
- 47:39back? Yes.
- 47:41So it's actually both me as a consumer of code and other
- 47:46libraries when I use them and I feel like I this this is not
- 47:50great. Like why don't I get out of
- 47:52completion here? Now by this point I know how
- 47:54auto completion works internally so I know what they are doing
- 47:58wrong in their code. And if I had infinite time, like
- 48:01I will go and like make pull requests to everything.
- 48:03But but like, you know, like in my case, I see something, it is
- 48:07like you're like, wait, wait. You're like a Batman for open
- 48:12source packages. You go and get the auto complete
- 48:16man. They submit the PRI.
- 48:20Could be. Auto complete Man that should be
- 48:22my Halloween day costume giving. The Gotham City of GitHub GitHub
- 48:30Gotham City that is classic cultural.
- 48:33Space, yeah. Keep going, though, yeah?
- 48:38So it's like 1 One thing is just like using different tools and
- 48:41figuring out like how it feels to use them and then trying to
- 48:44figure out what will feel better if I use them this way or the
- 48:47other way. That's one thing.
- 48:49And the other thing is when building a tool will building a
- 48:53library or a product or whatever.
- 48:55And this actually applies to anyone that is building
- 48:57anything. If you put yourself in the shoes
- 49:01of whoever is going to be the final user, is much easier to
- 49:06optimize that experience for the final user to optimize and to
- 49:11make sure that you are doing something that works well.
- 49:13But for that final user, if you are not the final user is much
- 49:17more difficult then you have to hire someone that is like, you
- 49:21know, like everything on your neck.
- 49:24Checking that you what you are building is, is actually useful
- 49:27because otherwise you end up building something that is not
- 49:29useful for, for the final user. And then no one uses it and it
- 49:32doesn't really solve an actual product.
- 49:35As an example, when I was building SQL model, this was fun
- 49:39because I didn't, I didn't start writing all the code and they're
- 49:44like, OK, now let's try documentation.
- 49:46I started with the documentation.
- 49:48So it was like sort of documentation driven development
- 49:50is. So I started writing
- 49:53documentation explaining how this should work and then trying
- 49:57to write the examples in a way that should be easy to
- 50:00understand and easy to to work with.
- 50:03And then figuring out what do I have to do in the code to make
- 50:07this work. And they like, you know, like
- 50:10going in in the opposite direction just from the what is
- 50:13the final result and how do I make this final result actually
- 50:16work? And in some cases, I remember
- 50:19there were like one or two points where I have a feature
- 50:22somewhere in SQL model that will let you do something and you
- 50:25will be able to do that same thing in three or four different
- 50:30ways. Like you could set this
- 50:31parameter here, or you could also set it here, or you could
- 50:34also set it in this other place or condition and in this and
- 50:37that. And it was like, you know, it
- 50:39was very easy to implement. But then I realized explaining
- 50:42this, it's just so complicated because this, if this happened
- 50:46and this if this other thing happens, then the other.
- 50:48But if you try this, so the priority of the parameter is
- 50:51this one, you know, like it was such a long piece of content
- 50:55that was going to be so difficult for people to
- 50:57understand and then it was going to be difficult to use.
- 50:59If it's something that is difficult to understand, it's
- 51:01going to be difficult to use, you know, like it just has to be
- 51:06simple and intuitive. And then that was the point.
- 51:08Like I figured like, OK, I'm going to forbid these other
- 51:12three options that are already there already implemented for
- 51:15free, but I'm going to forbid them because they just, they are
- 51:19just going to complicate things when I try to explain them.
- 51:23It's track. Yeah.
- 51:25So the it's like, I think it's a bit of that of trying to put the
- 51:30heart of the final user and that helps guiding so much whatever
- 51:37is the thing that you are building.
- 51:39Dogfooding, man, that is so good.
- 51:42And I really, again, go back to the foresight to be able to say
- 51:51we're going to start with the docs and work backwards.
- 51:54And then when you're creating the docs, you realize this is
- 51:59complex as hell. I am not going to allow people
- 52:03to do it these three ways, even though I know that when I create
- 52:07it, you're going to be able to do it these three or four
- 52:09different ways. We're just going to say this one
- 52:12way is the way that we choose. We're OK with being opinionated
- 52:16here because we feel like it is best.
- 52:18And so that's all you need to know.
- 52:21Yeah. Yeah, exactly, exactly.
- 52:24That's pretty much like that. And this is strange because
- 52:26like, you know, as a software developers and engineer, you're,
- 52:29you are used to, you know, like being able to build things and
- 52:32like, if you have more options and you can make them work, I
- 52:35have like, you know, like more features.
- 52:36It's like, this is great. I'm such an engineer.
- 52:40Then, you know, if if you're such an engineer that, that,
- 52:44that you can build a bridge that takes you to many different
- 52:47places. And it's like, well, a bridge
- 52:49should take you normally to one single place.
- 52:51So it's better just to make one single bridge.
- 52:54So yeah, that that actually helps.
- 52:56That actually works well. Let's talk a minute about the
- 53:02community and how you go about prioritizing PRS and merging
- 53:10different issues that come up. Because there's a lot of
- 53:14activity around Fast API, a lot of people are using it.
- 53:18As you said, there's a lot of different competing interests.
- 53:22So how do you look at that and how do you make sure that A,
- 53:26you're not doing anything that maybe is going to ruin that
- 53:30developer experience, but then B is not shutting people off
- 53:34because maybe their whole business relies on some feature
- 53:39being merged. Yeah.
- 53:41This is this is one of those things that I feel looks so
- 53:46different from the perspective of the person that is building
- 53:49the entire thing than from the people outside of it.
- 53:52It's, it's quite strange. So like, you know, like the, the
- 53:55first thing is the people that are working on the open source
- 53:59stuff. It's just a handful not for just
- 54:02for fast API for most of the projects actually fast API.
- 54:05I'm quite lucky and grateful that I, well, now I get to pay
- 54:11people to work on it, but I also get like contributions from a
- 54:13bunch of people in the community.
- 54:15And I also have a session for the fast API experts, which are
- 54:18the ones that come and help others with their questions in
- 54:21fast API. So, you know, like they prove
- 54:23that they know fast API by helping others.
- 54:25And then like I can highlight that in the documentation for
- 54:28the hey, these are the experts and you know, like then
- 54:32automatizing all that to make it work with the dogs and
- 54:35everything. But you know, like the inflow of
- 54:37communication in GitHub discussions is massive.
- 54:41Before I had questions in issues, but then people will
- 54:44come and 90% or something like that of the things that people
- 54:48will writing issues were actually questions or errors in
- 54:53their own code. So it was, you know, like it was
- 54:57actually not, not really a boogie fast API then.
- 55:02So it was very difficult to manage.
- 55:04Now with the with having several people, for example, the experts
- 55:08that can check what are the questions that are coming up,
- 55:11whenever they see something that is actually broken, they just
- 55:13ping me. And that helps so much because
- 55:16they help me filter out like all the noise and figure out what is
- 55:19actually what is actually important, what is actually
- 55:22working then for all the open source PRS.
- 55:26So the first thing is because I have translations, there are so
- 55:29many translations open that are just like waiting for another
- 55:33native speaker to come and regret.
- 55:35So those just have to stay there for quite a while.
- 55:39I'm thinking of changing that and switching it to using LLMS.
- 55:43I'm already doing that for Spanish.
- 55:45And if the results are really, really good, I want to do that
- 55:49for the other languages because the results are quite good, they
- 55:52are consistent. These one of the things that
- 55:54LLMS are actually very good at. There are many things that LLMS
- 55:58are great at translating and doing it properly, they are very
- 56:02good at that. So I want to extend this thing
- 56:06that I did for Spanish to the other languages so that we can
- 56:09have a consistent translations for each of the languages.
- 56:13Also, because there are some languages that have a couple of
- 56:15pages but nothing else translated.
- 56:17So it will be better to have like, you know, like a
- 56:19consistent set of languages that are supported and then
- 56:21translating those. Then you know, like half of the
- 56:24PRS are just translations. And then there's a lot of others
- 56:27that some, for example, don't necessarily have tests or is not
- 56:31a specific clear use case that they are solving.
- 56:34So it's not obvious what what they are doing.
- 56:37And there are others that are actually that can be solving a
- 56:40problem, but also in some cases conflict with some other
- 56:44features or some other things that I want to do that will
- 56:48solve that use case plus other three use cases.
- 56:50So it was like, I am not going to merge this right now because
- 56:53then I have to maintain it. But then like, you know, like,
- 56:56just like closing it and saying like, oh, I'm going to do this
- 56:59in another way. Another moment is so, so rude.
- 57:02So yeah, it's, it's, is this a difficult balance of like how to
- 57:06manage all that and how to make sure that you pick the right
- 57:09things. And many PRS for simple, they
- 57:12look can get so complicated. You know, like in many cases
- 57:18people come and say like, oh, why haven't you married?
- 57:20Or why haven't you reviewed this like one line change PR Like
- 57:25because to review it, I have to check the other 5000 lines that
- 57:29were not changed and like how this one affected them and how
- 57:33like, you know, like how everything can break.
- 57:36It's happened a couple of times. Well, a few times that I merged
- 57:41something thinking like, OK, well, it probably makes sense.
- 57:45Yeah, like the use case is, the use case is sensible, sort of.
- 57:50And the code sort of makes sense, although I'm not sure why
- 57:55will we need to change it, but it makes sense.
- 57:57The tests seem to be passing like, you know, like this is
- 58:01touching things that I'm, I'm not sure if there's anything
- 58:03else touching, but then I make the release and then like
- 58:05something explodes somewhere else because someone was doing
- 58:08something weird with fast API in most of the cases is because
- 58:11someone is doing something weird with the internals.
- 58:14But you know, like I, I still try to not affect not even those
- 58:18use cases. So yeah, it's like this, this
- 58:22strange balance. I still review each one of the
- 58:25PRS from the ones that are changing the internal code and
- 58:28like changing, you know, like complex things.
- 58:30I still review each one of those and like make sure that they are
- 58:33they are good. Now that I have a team, I have
- 58:35like a few people that I trust that can tell me like, hey, this
- 58:38looks quite good. And then I can just like, I give
- 58:40it, you know, like I still give it a fair object, but at least I
- 58:45know that this is not something that is, it doesn't make sense.
- 58:48You know, like, at least I have a good priority of like, what
- 58:51are the things that I should focus on?
- 58:53And then to decide what PRS, what issues or what projects to
- 58:58work on and to what, what to focus on is also this balance of
- 59:01what is the thing that will have the biggest impact for everyone
- 59:04right now. And in some cases is some cases
- 59:08is even like another third party open source project that fast
- 59:12API depends on or something. And it's like this needs to be
- 59:15fixed because we are using it in fast API or it has a big
- 59:20interaction with fast API. So that is the thing that
- 59:23requires the the the biggest priority.
- 59:25You know, it's just I will complete for everything.
- 59:28Yeah, you know, you go. Off.
- 59:30And you have to fix other people's open source projects so
- 59:33that yours works. That's you doing your civil
- 59:37duty, Yeah. Or or the dogs fixing the dogs
- 59:40here on the yeah. The funny part about that phrase
- 59:47that you were saying is, yeah, it's just one line of code.
- 59:49But then at the end of the day, you have to go and see how that
- 59:53interacts with the other X number of codes, thousands of
- 59:57code, lines of code. It made me think about that Mark
- 1:00:01Twain quote where he said I didn't have time to write a
- 1:00:07short letter, so I wrote you a long one.
- 1:00:09Yes, something. Like that?
- 1:00:11Yes, and and it's it's kind of that same thing where you it's
- 1:00:16almost suspect if it's just one line being changed because then
- 1:00:20you go like what's going on here?
- 1:00:23Why is this one line needing to go in?
- 1:00:26And then also when you're saying.
- 1:00:29People have to. Trust you when you are not
- 1:00:33fixing one issue because you have the foresight to say down
- 1:00:38the road, I'm going to fix this issue and two or three more.
- 1:00:42And so it's that 2 for one or three for one deal.
- 1:00:45They just have to be patient. It feels like you almost need to
- 1:00:49have a public Kanban board with things that you're focusing on
- 1:00:54issues that you're going to be hitting so that people can know.
- 1:00:57OK, he it's on the backlog or now it's going, yeah, he's, he's
- 1:01:02working on it. All right, cool.
- 1:01:03Yeah, but you know, like I, I tried also a bit of that having
- 1:01:08like, you know, like there's a public road map or like these
- 1:01:10are the things that are like the main thing that on my mind.
- 1:01:12But then also because fast API covers so many people, there's
- 1:01:18someone here and there that just comes to ask for something that
- 1:01:21is not necessarily related to the road map.
- 1:01:24There's just like adding comments there and like, it's
- 1:01:26just like more communication to manage.
- 1:01:28So in some cases the the trade off of making the whole thing
- 1:01:33public becomes having to handle so much more communication that
- 1:01:38it ends up becoming not not as efficient.
- 1:01:41You know, at some point I was just answering issues and
- 1:01:44discussions and things like that and I was just spending the
- 1:01:46whole time answering them and not fixing anything just because
- 1:01:49I was answering just writing messages and you were like, this
- 1:01:52is not working. This is not sustainable.
- 1:01:54I can imagine that. One of the biggest time sucks
- 1:01:58for you is when you go on GitHub and you just had thousands of
- 1:02:03notifications and it's like that, like you're saying.
- 1:02:06So yeah, if you're making a public road map and that just
- 1:02:11gives more surface area for people to comment or for people
- 1:02:14to engage with you on top of your social media where people
- 1:02:19are commenting and engaging with you on top of the actual project
- 1:02:23itself. Oof.
- 1:02:25I I didn't. Think that through, but.
- 1:02:28If I were you, I would be afraid to even look at my phone.
- 1:02:31Yeah, exactly. Should turn it off.
- 1:02:34Mostly I have to. I have to disable the.
- 1:02:37Notifications thing, the e-mail for for GitHub, like I have
- 1:02:41notifications in e-mail from GitHub and at some point when it
- 1:02:44was like you have 10,000 and read it's like, yeah, no, this
- 1:02:47is not working. You know, like.
- 1:02:52Yeah, I just have to. Go to GitHub.
- 1:02:54Use the GitHub notification system and also rely on the on
- 1:02:57the fast API experts like a few are part of the unlike, you
- 1:03:02know, like people on their team that are just like working and
- 1:03:04they just come and review. There's a lot of PRS that they
- 1:03:07can review and even merge on their own.
- 1:03:10So for example, if people have been like working on like
- 1:03:13checking their repositories or like doing a translation or
- 1:03:15something like that, probably have bonding to Sophie or
- 1:03:18Alejandra or maybe Pasik, you know, like people might think
- 1:03:20that are constantly doing things like that.
- 1:03:23I also get a lot of help from the fast API experts like
- 1:03:25Marcelo, which is part of the pedantic team.
- 1:03:29There's also, there's also Judy Ludovico.
- 1:03:33There are several people there are just like, but they are not
- 1:03:36necessarily they are not in the company, but are helping a lot.
- 1:03:39They are like some of the experts that also, yeah, that
- 1:03:42helps a lot and helps me also surface whenever something
- 1:03:45breaks, whenever there's something that I need to put
- 1:03:48attention to. They, they are the ones that end
- 1:03:51up just like bringing me the, the, the important news.
- 1:03:54They're doing their civic duty to make sure.
- 1:03:57That your shit runs. So their shit can run too.
- 1:04:00Yeah. So I can do my CV3 as well.
- 1:04:02Yeah, yeah. Exactly.
- 1:04:03It's just paying it forward all. Around the Internet that that's
- 1:04:07great. Now the last question I wanted
- 1:04:09to hit you with was you have had the luxury of being able to
- 1:04:15focus on the tech for the past X amount of years now starting a
- 1:04:22company. I can imagine you are already
- 1:04:26seeing that you're getting pulled in a million different
- 1:04:28directions, whether it's hiring or it's just paperwork stuff or
- 1:04:34it is going out in public speaking, etcetera, etcetera.
- 1:04:39All of that time is going to detract from the actual
- 1:04:43building. How are you thinking about that
- 1:04:46as you move forward? Because at some point, like you
- 1:04:49know the project and you know the cloud, I imagine the
- 1:04:54insurance and outs of it, your stamp and your vibes on this
- 1:04:59make it what it is today. Yeah.
- 1:05:03How do you think about continuing that even if you are
- 1:05:06not able to put your fingerprint on each piece of it?
- 1:05:10Yeah, that's a very good question and it's difficult.
- 1:05:11Because it's indeed a lot of work doing extra stuff.
- 1:05:17And I really love the code. That's something that I really
- 1:05:20like to do. But this is, this is like, you
- 1:05:23know, like I have to do this other stuff so that I can get
- 1:05:26that product and I can use it. So, you know, like I can have
- 1:05:29the team working on everything. I just have to suck it and do
- 1:05:34the rest of the stuff that I have to do.
- 1:05:37But also I, I get the fortune to rely on people that are super
- 1:05:40clever and helping, helping me a lot with a bunch of the things.
- 1:05:43And also like, get the spirit of like, how is the project going?
- 1:05:46And like, it's hard to find a people like that.
- 1:05:50And it's hard to like, you know, like get the right people in.
- 1:05:53But once you start like being able to just like rely more and
- 1:05:56more on some people, that's, that's amazing.
- 1:05:57And there's also like a great feeling, for example, the the
- 1:06:00CLI, the new CLI, the faster PICLI, since a couple of
- 1:06:06versions had like the new terminal UI that was created by
- 1:06:11Patrick. And it's like this new set of
- 1:06:14CLIUI components that you can use to build CLI and it's open
- 1:06:19source and everything. And it's sold them by him.
- 1:06:22And like the same with the CLI that we have for the cloud.
- 1:06:25It's like just a lot of work by him that I can just like quickly
- 1:06:29check and see like, yeah, this all makes sense.
- 1:06:30And he's super clear. So I can just like say like,
- 1:06:32yeah, this all looks good. The same with yeah, just like
- 1:06:37sign the approved this, this all look good.
- 1:06:40There's nothing good, you know, like from time to time.
- 1:06:42So like why this? Why that?
- 1:06:43OK, this that is like the standards are terrible.
- 1:06:46So we need to follow the standards like OK, yeah, well,
- 1:06:50then I get it. Let's do it.
- 1:06:51Perfect. The same with the UI.
- 1:06:53Like, you know, like a lot of the work has been done by
- 1:06:55Alejandra is one of the team members that I can now say like
- 1:06:59this is a bunch of tweaks and I see like it's a lot of React
- 1:07:02code and TypeScript and like tweaking the Tailwind classes
- 1:07:06and stuff and like here and there, like yes, makes sense,
- 1:07:10looks good. The screenshots look good.
- 1:07:11But like by this point I can say like, yeah, I chose the code.
- 1:07:14It's like, fine, I prove it without having to, you know,
- 1:07:17like get the pull request and check all the code each bit by
- 1:07:20digit by looking at it. The same with Sobi, for example,
- 1:07:24she's been helping a lot with the open source, with diaper and
- 1:07:27with fast API, mainly with diaper that has been like the
- 1:07:29main, the main focus. But then I can see whenever she
- 1:07:32goes and like gives like a comment with a review, it
- 1:07:35normally explains what was the problem, all the references, all
- 1:07:38the things that were tried she already fixed up, like the tests
- 1:07:41and the dogs and everything. And I can just like go and say
- 1:07:43like, makes sense approved. So that that really helps a lot.
- 1:07:47It's difficult to get, you know, like to to that point and like,
- 1:07:52you know, it has to be also gradual, like kind of just
- 1:07:54suddenly say, like everyone just merge away whatever you want.
- 1:07:58Because, you know, like the whole point of fast API and my
- 1:08:00open source project is that I am so picky with the quality that
- 1:08:04everything has to go through me for those things.
- 1:08:08But then being able to have like more and more reliance on the
- 1:08:11team, that's that's amazing. And that's an amazing feeling
- 1:08:14being able to see like, oh, we are building this whole thing
- 1:08:16together. That's us.
- 1:08:17Yeah, it feels like you are. Learning to let go a little bit
- 1:08:22of the reins and trusting the team more and duplicating
- 1:08:27yourself and I, I like that you say it is a great feeling
- 1:08:32because then you can go and focus on other stuff if you know
- 1:08:37that you have the team. There and you.
- 1:08:38Trust the team to hold the same quality standards as you.
- 1:08:44The last thing that I wanted to mention is I think people can
- 1:08:49sign up for Fast API Cloud right now, right?
- 1:08:52Yes, so people can go and join. The waiting list is fast.
- 1:08:55apicloud.com. We I hope we are going to start
- 1:09:00letting people in soon to try out the beta.
- 1:09:04Yeah, I think, I think that will be something great for people to
- 1:09:06go and try and also just like keep using the open source
- 1:09:09projects because now they have a little more power behind them.
- 1:09:14So yeah, like I will say you're in good hands, but like, you
- 1:09:18know, I'm pious. Classic man.