The Creator of FastAPI’s Next Chapter
speakers

Sebastián Ramírez (also known as Tiangolo) is the creator of FastAPI, Typer, SQLModel, Asyncer, and several other widely used open source tools.
He has collaborated with companies and teams around the world—from Latin America to the Middle East, Europe, and the United States—building a range of products and custom solutions focused on APIs, data processing, distributed systems, and machine learning. Today, he works full time on FastAPI and its growing ecosystem.

At the moment Demetrios is immersing himself in Machine Learning by interviewing experts from around the world in the weekly MLOps.community meetups. Demetrios is constantly learning and engaging in new activities to get uncomfortable and learn from his mistakes. He tries to bring creativity into every aspect of his life, whether that be analyzing the best paths forward, overcoming obstacles, or building lego houses with his daughter.
SUMMARY
The creator of FastAPI is back with a new chapter—FastAPI Cloud. From building one of the most loved dev tools to launching a company, Sebastián Ramírez shares how open source, developer experience, and a dash of humor are shaping the future of APIs.
TRANSCRIPT
Sebastián Ramírez [00:00:00]: I am Sebastian Ramirez, or Tiangolo. I am the creator of fastapi and now the founder of fastapi Labs, this new company. I drink my coffee as a cappuccino, and I drink a lot of it.
Demetrios [00:00:15]: Welcome back to the mlops community podcast. I'm your host, Demetrios. And today we've got the Mustache man himself, Mr. Tiangolo, aka the creator of Fast API, which is, I am sure, a few of you use and love. We talked all about developer experience when building software. We also talked about how he thinks through abstractions. Let's just get right into this conversation because I had a blast with my amigo, Mr. Sebastian.
Demetrios [00:00:54]: You know what I want to tell the listeners? I want to start with the fact that we did a hackathon, and the winners of that hackathon were from Colombia.
Sebastián Ramírez [00:01:08]: Right, right. I forgot it. That was so fun.
Demetrios [00:01:12]: We were the judges. And the funniest part was, you're from Colombia. The winners were from Colombia. Afterwards, we were making all kinds of jokes like, yeah, they paid off the judges. Yeah, yeah, what is this?
Sebastián Ramírez [00:01:28]: So, because the thing that they came up with was quite cool, but I felt like, I am Colombia. I cannot vote on this. And I just like, you know, like, hands off, like the other two judges. You decide. I cannot.
Demetrios [00:01:43]: You had too much honor. But I also remember that when we were just hanging out and everybody was hacking somebody, you were talking to somebody, and for some reason, Pydantic came up and they didn't know what Pydantic was. And you looked at them like, you don't know what Pydantic is. Oh, let me tell you all about it. So why do you love Pydantic so much?
Sebastián Ramírez [00:02:07]: Pydantic. I think Pydantic is so cool. The thing is, Pyvantic made it super simple. Simple to validate data and to get auto completion and linear errors for the data that you are handling in code. The funny thing is, before Pydantic was as widely known as it is right now, it was like, you know, like a library for doing data validation. But it was not as obvious. I would think that you need to do data validation, that you need to validate the data, you need to structure it, properly, serialize it, convert it, document it. It's not so something that is obvious.
Sebastián Ramírez [00:02:44]: And there's a lot of code that goes, you know, like, just wasted on doing custom validations just because, you know, like, if you don't know that there's that option, you end up just, like, writing a lot of code just to check is this actually an integer or not, or maybe this one is a JSON object or like, I don't know. So I thought that Pythantic was amazing doing that. It was just not as obvious that you will get so much benefit from it. For fastapi, it was like the key component for doing all the data validation, serialization, parsing, documentation, all that stuff. And to make it super simple and super intuitive. And I guess that's also why it sort of helped a bit show, hey, Pythantic is here, you can use it for these types of things. And then I think people slowly got the hang of it and started using it for more things. But I think it actually took a bit for people to start exploring Pydantic in many other ways.
Sebastián Ramírez [00:03:42]: I remember I was like that at that moment I was pitching Pydantic for everything because I was doing all the data processing with Pydantic. I have a bunch of custom GitHub actions that are pretty much just a Pydantic model that extracts the data from the environment variables and just give me the right data and then the code is super simple afterwards and it actually doesn't even involve fastapi or anything. It's just like pure Pythontics. So like, yeah, I think it's a great tool.
Demetrios [00:04:09]: You were super early on that trend and so it feels like you saw around the corner a bit and you incorporated into fastapi, right?
Sebastián Ramírez [00:04:19]: Yeah, yeah. So the thing is, I was looking to build something that was similar to the other tools that I was using. But by that point I realized that I. I wanted to have the best developer experience possible and that will need to take advantage of type annotations. And type annotations were just super new, they were for a year or something. So there was no tool that was used in type annotations, at least not properly. And Pydantic was I think the only one that was using them at the time. Apart from Data Classes, that was in the standard library.
Sebastián Ramírez [00:04:55]: But Data Classes doesn't do any data validations, realization transformation. But it's sort of the same style and I was looking for a tool that will do things like that I was using by then. There was a previous tool called Marshmallow and Marshmallow was great, it's just that it was designed before we had type annotations, so that didn't have a way to exploit them. I was trying to look for something like that that will be based on type annotations. So I already had my mind set on what I needed. And then I found Titanic. I was like, okay, this is the right thing, but the Pydantic docs were mainly focused about managing settings and handling settings for applications. I was like, okay, but is this.
Sebastián Ramírez [00:05:39]: So I was like, you know, like, is this actually what I need or not? But then, like, I kept digging deeper and then I found, like, yeah, this is exactly what I need. It's just that it's probably not obvious that it could be perfect for all these other use cases. So, yeah, just, like, started just exploiting it and nagging someone with, hey, here's another print.
Demetrios [00:06:01]: Yeah, Samuel. That's awesome. He's been so good and they're great shepherds for that whole community. It's cool to see Pydantic and like you said, how it had this lagging effect, but now it feels like it is very much at the forefront and people understand the value in it. Thanks to, I think, in part, a lot of what you did with fastapi.
Sebastián Ramírez [00:06:25]: Nice. You know, like, that's an honor for me to think that I helped people to get to know Pydantic. And now Pydantic is also using, like, everywhere in, you know, like, all the major LLM providers or SDKs or tools. They are all based, built on top of Pydantic. And that's amazing because I think it's like, yeah, it's an amazing building block for everything that we've built on top of.
Demetrios [00:06:47]: So there's two things that I wanted to talk about from our last conversation, which was, I think, like, three years ago till now that I swore to myself, if we end up talking again, I have to ask you about these things. The first one is I got a little bit of slack back in the day because I didn't ask you about your stint in ML. Folks were like, yeah, but Sebastian's done ML stuff. And you guys didn't talk at all about that in the podcast. So can you break down the ML stuff that you did and give us a bit of. I think you're like an undercover ML AI guy where you're masquerading with the fastapi. But was. It was Fast API built for ML use case.
Sebastián Ramírez [00:07:36]: Yeah, exactly. You got me. So I got into Python to do AI and ML. That's why I got into Python. It was a requisite in a. In a. In an AI course from Alice from Berkeley. Like, I don't know, 10, 12 years ago.
Demetrios [00:07:55]: All of them.
Sebastián Ramírez [00:07:56]: Yeah, like, yeah, that's how I got into Python. Then I started working And I was doing stuff with computer vision and then it was computer vision without deep learning, without neural networks. It was just like, you know, like, oh, very complex algorithms and like sift and like then matching stuff and like Kalman filters and like a bunch of stuff that was, was super sophisticated, complicated and difficult to get great results with it. And then now you can just put deep neural networks on top and get a lot of value without having to fiddle so much. It's amazing. But yeah, I got into that and I took a lot of online courses, but I had a big inclination towards machine learning and AI.
Demetrios [00:08:45]: And then FAST API came from that.
Sebastián Ramírez [00:08:47]: And then, yeah, so like I started working at a company, we were doing like machine learning stuff and it was things related to that, but we always had to build applications and in all the cases we needed to build an API on top of things. So I kept struggling and kept like stumbling in like the issues of like building an API with the tools that I had at hand. And I figured that this was one of the things, one of the patterns that was just repeating over and over and one of the things that had to be solved over and over. And I didn't found a great solution and something that will work well and I found something that will sort of work and I figured out how to make it work but it was so complicated and like, you know, like it was difficult. And then the team that I was working with, they were all struggling and it was like, yeah, this is just copy paste, whatever Sebastian did. And like it works. Yeah, it's not the best developer experience. So, you know, like continuing in that path.
Sebastián Ramírez [00:09:49]: I was using that setup for quite a while but like, you know, like I kept just like investigating and researching different frameworks and things until I ended up in fast API. And then I just, I got stuck in APIs. But like I got into Python because I was going to do AI and ML.
Demetrios [00:10:06]: You missed the train on that one. You were super early and then you went down the API rabbit hole and ended up powering half the Internet.
Sebastián Ramírez [00:10:17]: That's so crazy. It's something that makes me very proud and humble and everything at the same time. To see so many AI applications and many of the top voices and top opinion leaders in AI liking and using FastAPI. For me, that's, you know, that's mind blowing.
Demetrios [00:10:44]: Well, I remember you telling us that one of the bigger ones that you had heard was using it was like NASA and they were powering spaceships or something along those lines. And I, that blew my mind just like There are some really cool use cases and of course there are, because you use APIs for everything. So it's not like it's not contained in that way. You can use APIs wherever. And like you said, your commitment to the developer experience has been, I think, what makes fastapi shine. And so the second thing that I wanted to ask you about was what I also got flacked for in the last time that we had a conversation. And that was people saying, why didn't you ask him why there's so many damn emojis in the docs? And this is, this is pre chatgpt. You were very early on that trend also.
Sebastián Ramírez [00:11:46]: Yeah, that's, yeah, that's funny. Like, you know, at some point I don't know how much you go into Reddit, I now try to avoid it because in many cases it's a dark place.
Demetrios [00:11:57]: It's a very dark place.
Sebastián Ramírez [00:11:59]: Yeah, but at some point I remember there was some conversation in one of these Reddit or like, I don't know, fast API or Python or something and someone was saying like, oh no, couldn't trust fast API. Like, you know, like, oh no, can I trust, like, it's a single guy. Like, how can you trust that? Like, you know, like people don't realize that most of the open source projects they use are built by a single guy or a couple of people. Even if they are big corporations. This is still mostly like one or two people for most of the open source projects. But anyway, they were saying like, no, no, how cool can you trust like a single guy? And blah. And one of them said like, well, but wait, why, why wouldn't you trust this guy? Or like, why, why do you say he's a psychopath or something? And the guy said like, he's clearly, he, he clearly does very, what was it? He clearly does very hard drugs. Like, what, how, how do you know? And it's because of the emojis, so.
Sebastián Ramírez [00:12:54]: The emojis, yeah, yeah, that's what that tells that like, I do very hard drugs. You're like, well, I do, I do lots of coffee. Maybe that.
Demetrios [00:13:06]: Oh man, that is the best Reddit thread. We'll have to try and find that one to showcase to people because yeah, that, that's the Internet for you. That's what you can expect when you gain a certain amount of notoriety. You're going to get that type of random speculation for this one.
Sebastián Ramírez [00:13:27]: The point is, I guess, well, after a while, at first it's like, oh, you feel weird and maybe attacked or did I do something wrong or it's something bad or something. But then after a while you realize that the bigger the scope of the impact that you can have, the higher chance that you're going to have some random person just nagging about random stuff that doesn't really make that much sense. So I guess, yeah, trying to take it as a compliment, I guess. You know, like when someone criticizes you so badly, like, how could we get to this point? You know, like, I'm a random person in the other side of the world on the Internet. How could this person hate me so.
Demetrios [00:14:12]: So much for the emojis that you use in the dog.
Sebastián Ramírez [00:14:16]: So, yeah, I don't know. I have also had like a few reports, I think, like it's more than 1, 2, 3 of saying, like, hey, the fastapi dogs have been hacked because it's all full of emojis. It's just that they put the URL wrong because there's a version. So fastapi is translated to a few languages and one of those languages is emoji. It was just an April Fool's joke and it just stuck and it's still there. And you can find the whole documentation written in emojis.
Demetrios [00:14:46]: Wow.
Sebastián Ramírez [00:14:47]: And it was actually done by other people. It was not done by me, it was done by a few other people. And I think that's the PR with the most approvals I have had in FAST API. So when people get to Easter eggs and April Fool's jokes, they really go hardcore on that. So that's still there. But then occasionally people bump into a URL with the emoji prefix and they just see everything in emoji and like, oh, no, it was hacked. And then they tag me on Twitter like, yeah, no, you're in the wrong language.
Demetrios [00:15:21]: Incredible. Dude, that is so funny to think about. Well, there's the other piece. I just can't stop thinking about the emojis part and how much controversy emojis cause for basically nothing. I also get that way when I play guitar in our virtual conferences or in our. I used to do guitar intros for the virtual events and we threw em up on YouTube. And I'll tell you what, some people on YouTube, they've got some creative ways of talking shit. And I was the same way as you, where I would just think, damn, I am honored in a way because they took the time out of their day to talk shit.
Demetrios [00:16:10]: And I guess I could feel a little bit ashamed here. But nah, I'm going to take it as a compliment as Opposed to a threat or just dissing me. So, so anyway, the, the thing that I wanted to talk to you about too. You have started a new company. You also got some funding from Sequoia. I heard, or I saw, and I know that for the last year or so you were doing something really cool that Sequoia was sponsoring, which was like, they were, it was almost like this entrepreneur, entrepreneur in residence, but it wasn't. So maybe you can break down what you were doing and then why you finally landed on fastapi Cloud or the pro version of Fast API. Because I know that back in the day when we had a meetup and then we went out after the meetup in Berlin, people were like, oh, so you're going to start a company, you're going to do something around Fast API? And you were like, I don't think so.
Demetrios [00:17:17]: I don't know, maybe we'll see, I'm open. But that was also like four years ago, so obviously a lot's changed. Give me the breakdown and the lead up to this.
Sebastián Ramírez [00:17:27]: You know, like, I remember in that conversation after the meetup one of the guys came and said like, okay, so are you going to work full time on that or not? Because at that point I still wasn't working full time on Fast API.
Demetrios [00:17:40]: Yeah, you had a job.
Sebastián Ramírez [00:17:42]: I think I had a, like I had a part time job and I asked them to do it part time because I wanted to spend more time on open source. And he said, I remember this guy said like, hey, are you working full time Fast API? Like, no, but like, yeah, you know, like I don't have a product or something. Why don't you start the company? No. Yeah, and I remember he said like, you should, you should start a company or do something or build something for open source because we all need it. Like, you know, like we all benefit from that and it will be a shame if we cannot get like more of that. And you know, like it was something around those lines and it was like, oh, that's shit. That's so, you know, makes you feel, well, on one hand super appreciated, on the other hand, like sort of almost a responsibility of like, you know, like this is something that is being so useful to people and I get the chance and the power to help many more people by just improving it. It's like something that you sort of got to do, right? So yeah, it was, I remember, I remember that, that point and that moment.
Demetrios [00:18:49]: I think I remember who you're talking about and that guy because I, I remember distinctly being at the bar when we were talking and he was telling me like, dude, yeah, like, maybe you could start a course or maybe you could do something with this community, like certificates. And I looked at you and I was like, yeah, and maybe you could, like, start a course too, or like a newsletter. And he looked and he was like, this is Sebastian. He started fastapi. He's not starting a course, he's got a company to go start. And I was like, okay, dude, thanks for like, that backhanded compliment. I was, I was laughing so hard, I can't remember who. What that guy's name was, but I'm gonna go find him and.
Demetrios [00:19:32]: And we'll have some laughs together. But anyway, so then you had that pressure put on you.
Sebastián Ramírez [00:19:37]: Yeah. But then after that it was. I don't know if it was like the next year or one year after, I don't remember. It was probably one. After that. It was in 2023, Sequoia started the Open Source Fellowship. So it was like this sort of. It was a steep end to cover my expenses, so I would just like work full time on open source.
Sebastián Ramírez [00:19:59]: I think during that time is that we had the, the. The hackathon that I was helping George and like that stuff. But that was because that was after the previous event and you weren't getting paid.
Demetrios [00:20:09]: Right. The. I remember you telling me that you had the option to donate on the GitHub page, but the sponsors of Fastapi, it wasn't like enough for you to live off of.
Sebastián Ramírez [00:20:23]: Yeah, yeah. And you know, like, this is, this is quite fun is that, like, people come and. Sometimes people come and sponsor and give like, you know, like a couple of bucks, five bucks a month time, something like that. And it's like super, you know, like, I appreciate it a lot and it like, feels very encouraging. But with that, it's very difficult to make a, you know, like a sustainable income because you get like, you know, like you get 100 and 100 people putting 5 bucks a month is. 500 bucks a month is not enough to live off. Then the ones that put the most are the ones that get something in exchange, like a badge in the dogs or like consultancy time or things like that. But then in the end, it's sort of a transaction that you're giving something extra for them to give you something back.
Sebastián Ramírez [00:21:15]: And sometimes, you know, like, it's also difficult for companies to justify giving money to, I don't know, to sponsor open source stuff without having something in exchange to show finance and to show the investors and like all the stuff it's. Yeah, I guess it's like it's difficult to balance. There are some things like for example the Open Source pledge. Now I think that's, that's amazing from those started from the people from Sentry and also people from Astral and Pedantic join and like a few other companies join there that they are committing to give, I don't remember a certain amount of open source per employee. They have some certain amount of open source a year or something like that. But the thing is that the Open source sponsorships are normally not super, super meaningful necessarily at least not for the majority of projects. So it's like it's something but in the end it's also sort of a service or a product or transaction that you have to give away something. It's like a badging dogs or something like that.
Sebastián Ramírez [00:22:20]: But yeah, with the Open Source Fellowship they will cover like, you know, like cover my expenses and then I will be able to just like go full time on Open source. They will ask every once in a while, hey, why do you think about this company? But that was like, I don't know, like four times in a year or something like that. So it's very, it was very little. It was actually just mainly focus on your open source and it was also not like, you know, like here's a project manager, you have to work on these issues or you have to do this or that. It was just like you do your thing, we just trust you. Go and build your stuff, you know what to do, just go and do it. So it was, it was, it was super useful because I was able to work and like tackle very difficult things that required a lot of continuous focus time and that the results and the value will be seen only after it was completely done. So for example migrating or like supporting in fastAPI supporting pydantic version 2.
Sebastián Ramírez [00:23:17]: FastAPI currently supports both version 1 and version 2 depending on whichever is the one that you installed. FastAPI supports that one. So people can do the migration on that. But then getting that, doing that, getting to that point required a lot of work and it's something that will have been very difficult to do if you just like put one or two hours in the night and then like a bit during the weekend it's very difficult to keep the pace and keep the context. So that was amazing.
Demetrios [00:23:44]: You'd still be working on this.
Sebastián Ramírez [00:23:46]: Yeah, that was the Open Source fellowship. That was 2023. By the end of 2023 I was seeing there were like you know, like companies trying to Build Cloud for FastAPI, Cloud for Python, trying to get like that feature, trying to get that going. I was like why would, why would someone else build it and why wouldn't I build it? Because on one hand I could make sure that it has the best developer experience for fastapi. Because I am the first user of fastapi. I built fastapi for myself to use it myself. And then building a cloud and building it for myself, it's just self satisfaction that everyone gets to enjoy. But I'm building it for myself as I want it to exist.
Sebastián Ramírez [00:24:27]: And then it's also like, you know, like the community is already there and I can make it super simple to integrate it with FastAPI to make it easy to integrate with FastAPI and I can also ensure that, you know, like FastAPI keeps being, which is something that is super important to me that fastapi keeps being open source, fully open source with all the features like you can deploy wherever you want, however you want. I'm just going to make sure that you have an amazing developer experience with FastAPI Cloud. So you want to drive as the PI cloud and stay there but like, you know, like it's still, you can, you can use it however you want to use. Made sense. And it was also like, you know, like there's a chance also to, if there's some fruits that could be taken out of like all the work I put over the years on the open source, I would like to take a piece of that at least. So like yeah, that made sense as well. And figuring out a way, a sustainable way to have funding for the open source projects, that was something that I have been trying to figure out how to do for years. And the open source fellowship was great but it's not something that I can feel like oh, I'm going to just stay here forever in the open source fellowship they probably wouldn't want to just pay me forever just to stay there.
Sebastián Ramírez [00:25:42]: They were willing to extend it but it was like I should probably make something that makes sure that all this stuff keeps working and so that I can also work on a, and I get people to work on the Open Source projects. FastAPI, type A, SQL model, async, like all, all the, all the stuff that I built that is already there. So it was like, you know, like just the balance of everything together.
Demetrios [00:26:07]: You can't rely on the goodwill indefinitely. You have to at some point figure out there what is a more sustainable way. And this feels like it was a great bridge from not you were, you were moonlighting on this to then it became your full time thing and now you have this sustainable way of keeping it your full time thing.
Sebastián Ramírez [00:26:37]: Yep.
Demetrios [00:26:37]: And so that makes a ton of sense. I want to go into the difference or what you get with fastapi Cloud and how you think about which features or what parts go towards the open source versus what parts now go towards the company and also everything around that decision making.
Sebastián Ramírez [00:27:02]: Yeah, this is actually, this is something that I gave a lot of thought to. Building a cloud was not like, you know, like I was not trying to build a cloud that felt like daunting and it was daunting. It's been like a lot of work that we have been doing and it was like, can't I make a simple product or something. But every time I came up with something, it will just make sense to make it open source typers model asynchronous. It was like, yeah, well this has to be open source. Building a cloud, it was daunting, was a lot of work and I required a team and I required resources. But it had this very nice detail, this characteristic that the overlap and the conflict of interest between the open source and the cloud are minimal. You had the open source is this way and then the cloud goes this other way and it's just like they just cross each other.
Sebastián Ramírez [00:28:00]: But the open source, it doesn't really affect that much. In fact, it actually aligns quite well. Ifast API is even better, you get more features, you can do more stuff. With fastapi, there's a higher chance that you will want to just use FastAPI in general. And if you use FastAPI in general, there's a higher chance that you at some point will want to try fastapi Cloud and try out the service. So, you know, like it just made sense to do something that had the least friction possible with all the open source because it also simplifies all that conflict and like that thought process of like what goes in the PRO version and what is the core and what is the. Now fastapi is all Pro, you get the Pro for free. And if you want to deploy in FastAPI Cloud, then you could just deploy to FastAPI Cloud.
Sebastián Ramírez [00:28:48]: But the open source thing is just like you get all the features that are there and all the new features that we will build, like all the new stuff that we will make sure the FAST API is just as good as it can be and we keep improving on that, then you will be able to Just reap those benefits no matter how you deploy it. And then on the other side, we can make sure that deploying on FastAPI Cloud is just the best developer experience ever. It has the most robust and resilient way to deploy things that you get something that is just instant there. You don't have to think or figure out or tweak a bunch of configs and debug errors in other languages. All that process is. It's a lot.
Demetrios [00:29:31]: You've been through it.
Sebastián Ramírez [00:29:32]: Yeah, yeah, yeah. Which is also the other reason why I realized, and I decided that it was a good idea to build a cloud product. Before that I was very much on the side of just learn to build everything yourself and just like, you know, like install the Linux machines yourselves and just like build and set up the cluster yourself and just like deploy your things there. And actually I had one of the main, the most prominent websites for explaining how to use an alternative to Docker that was created by, Sorry, an alternative to Kubernetes that was created by Docker. It was called Docker Swarm. Docker Swarm mode. Yeah. And it was a great product, it was quite lean, but in the end it didn't work out for them and they sold it to another company that put that under their Kubernetes umbrella.
Sebastián Ramírez [00:30:22]: So like, you know Kubernetes one one way or another. But then Kubernetes is just massive.
Demetrios [00:30:29]: It's a beast.
Sebastián Ramírez [00:30:30]: Just getting to learn Kubernetes, getting to use it, getting to manage it and you just do it and then you're just scratching the surface. It's just a lot, a lot of work. So, you know, like seeing that and seeing that, I, before that I could tell people like, hey, just go and install like this other thing and then you, you're good to go. Like, you know, like you have the first version that is working in like in a week, in a couple of days. But then if I tell them, well, you have your Fasta pay app now go learn Kubernetes for 6 months or try one product or the other or maybe this one will work. That was not the great story. So that also convinced me it probably makes sense to have something that is dedicated to this type of application and to make it super simple for people to deploy fast API application and be being able to just focus on the code and the product and not on all the nuances of deployments. Yeah.
Sebastián Ramírez [00:31:24]: So everything fit together and matched to that point to say like, yeah, well this is probably the best way to go. This is the way that I can have the biggest impact in people's code and the things that they can achieve and the things that they can do and build to help others on the open source and also on the product and like everything together.
Demetrios [00:31:45]: So, yeah, you remind me of the founder of that company called. I think it's base 10 or basecamp. No, Basecamp is what it is. And they. I have heard a few podcasts with him on it and he talks about how when he sees or uses poorly designed or just not the best thought out software, it drives him crazy. And so crazy that he has started a few different companies to combat poorly designed software. And I think one of them was even a parking lot software that his HOA or his condominium complex used. And he hated it so much he just went and created a new one.
Demetrios [00:32:35]: If I'm getting so different. And it reminds me of you kind of, you go through and you say, wow, this developer experience is painful. And then I'm sure there is a long period of time where you sit with it being painful and it like continues to be painful, but it eats away at your soul in a way that for some of us we just put up with it. But for you, you're like, I'm going to have to go and create a product around this.
Sebastián Ramírez [00:33:08]: Yeah, maybe, maybe, maybe it's a bit like that. Like, yeah, I don't know. And like, you know, like there are many tools that are just great, but they are also super complex or like dealing with a lot of nuances and it's just like some layer of abstraction and then sometimes you just having to deal with that is like, oh, it's so complex. Like, you know, like if you had to go and buy the motor and the tires and the do to finally assemble your own car is like, that's, that's just too much. You just go and buy a car.
Demetrios [00:33:40]: Yeah.
Sebastián Ramírez [00:33:41]: So, yeah. And I think in many cases it doesn't really make sense to assemble your own cars. When your business is not assembling cars, your business is doing something to ride them. Or maybe not even riding them. Maybe you just need them to be able to get something across, but you need a car to be able to do that. And like, yeah, like I feel for many, many use cases being able to just like get the car and like not having to deal with that makes, makes total sense.
Demetrios [00:34:07]: Yeah, you don't even need to create an Uber or you're not even an Uber driver using your car every day. It's just that you're getting in a car and it's taking you from point A to point B. I like that metaphor because you, at the end of the day, everybody needs to use a car or use a API in their software that they're building. And so how can you make that the least friction or the easiest for getting that outcome that someone is looking for?
Sebastián Ramírez [00:34:45]: Yeah, exactly. And you know, like, that was the spirit of fastapi. How can you make it so that you just write the code in the way that will be the most intuitive to you and then it does the right thing and does all this stuff that you need it to do underneath by default, data, validation, documentation, everything is just done by default and it just gets out of the way so you can focus on your code. You know, like when you see a fast API application, the amount of fast API code is minimal. It mostly is just like the actual code of the business logic. That is the idea to try to make it super simple to use the tool and, you know, like to do not get in the way of building the thing that you need to build.
Demetrios [00:35:30]: Since we talked last two, I have been thinking a lot because I think in our first conversation we hit upon the point of how you look at what abstraction layer to play on and where that decision is made or how you think about making that decision. It's only become more relevant since the new LLM boom because of all these new tools that are coming out and trying to abstract away different pieces of the LLM API calls. Or maybe it's the orchestration, or maybe it is something around the system. When you're building with AI, have you thought not necessarily about the abstraction for the AI systems, but what is your way of going about these abstractions and thinking through what would be the best abstraction here? Do you sometimes create an abstraction and then roll it back and say, ah, Actually no, no, no. Is it something that you're working with and it, it slowly is boiling in your mind and you then all of a sudden have a eureka moment. What does that look like?
Sebastián Ramírez [00:36:46]: This is actually a very interesting question because, like, you know, I do think about that a lot, but I don't get asked about that often. I think it's more of like, you know, like it's boiling in the background and I'm trying to figure out what is the right way and just like struggling with it. And then at some point I realized and figured like, yeah, it makes sense and it's fun that I think about that a lot for the stuff that I build. And the same, you know, like with FastAPI Typer, SQL Model, AsyncRE, and also the FastAPI Cloud product for all of them. I avoided building them for a long time. For fastapi, I was trying not to build something. I was looking for other tools on like, what was already there that could do what I wanted for the company. I was, you know, like I have been told, like, oh, you should start a company for so many years.
Sebastián Ramírez [00:37:39]: Yeah, like, there were like, I had, like, yeah, a few people that were interested in me building a company and like, it was. Yeah, no, I don't, I don't think so. I don't have like a right product. It's not, I don't have something that will be the right abstraction to build. But then, and this is, this is the key point, this is how I think about it. When you, when the new abstraction that you could build, learning and using that new abstraction for your users, for your final users, when learning that, it's much less effort than they will have to put to learn the underlying thing. So, you know, like, for them to use your, to use your tool, for them to use fastapi, the effort they have to put some effort into reading the docs, into learning how to write the code for fastapi, into learning how to do that. But if they didn't put that effort, they will have to put an order of magnitude more effort into learning how to do everything by hand, or more like orders of magnitude.
Sebastián Ramírez [00:38:40]: So when you hit that point where it's like, okay, if instead of learning all the underlying stuff, people could learn a small layer in the middle and by learning that, they just save so much effort in learning and debugging and using whatever is that goes underneath, then that's the point when it makes sense. And it's also when there's no abstraction that is already doing that, because in some cases people go and build another tool or build another framework or something, but it's like this is doing pretty much the same that this other thing is already doing. So it's not necessarily that viable. But when you see repeatedly that some level of abstraction is not managing to be met, you know, like having something that is super simple and intuitive to use, that you just have to learn a very minimal thing to get a lot of value. And yeah, that's the point. When I say, like, okay, it makes sense. That's the point with FAST API, that's how it happened. Like, I was actually going to start contributing to another framework and the author said, like, no, I cannot really keep working on this.
Sebastián Ramírez [00:39:49]: I'm going to deprecate this, I'm going to focus on something else. This was Tom Christie, the author of Django REST framework, the author of API Star, which was like sort of the spiritual predecessor of FAST API. And then he started Starlet, which is the building block for fastapi. And then he said, I cannot keep working on this other framework that was called API. Then I said like, okay, this is the last notch. I'm going to jump into it and try to build FAST API. Similar with SQL Model. There were some modeler tools that were trying to build an ORM that was based on type annotations and Pydantic, but none of them were managing to hit the sweet spots that I wanted subjectively.
Sebastián Ramírez [00:40:32]: But the things that I wanted it to do the way that I expected it to do, taking in having into account how type annotations work, how default values work, how to complete inline errors, all these things that are just very tightly coupled to the developer experience and they were not really managing to get to that point. And it was like, okay, I have to build this new tool, this SQL model tool. And he was, I really don't want to do it because handling databases and SQL is so difficult. But he was like, you know, like, I just have to do it because I have these ideas that are there, they are going to be useful. I just have to go and, you know, like, buy the bullet and build it. The same with the cloud, you know, like learning all the kubernetes stuff and learning all the cloud products from the big cloud providers and all that is just so much work. And it's just so. There's so much impedance mismatch between different tools that you have to figure out some weird way to monkey patch things to make things work and be always careful with how those things evolve so you can update the monkey patch, you know, like, that's how the cloud is built.
Sebastián Ramírez [00:41:48]: It's not ours, it's everyone's cloud. That's how it's all built.
Demetrios [00:41:53]: Spoiler alert.
Sebastián Ramírez [00:41:54]: Yeah, yeah, that's how every cloud is built. It's just like a lot of things just like, you know, it's just tape everywhere. Putting everything together and then having to deal with that is just so much work and so much effort. And then when it was the point that like, yeah, no, like actually if you want to deploy something, you just should go and learn one of these giant products or Kubernetes or Kubernetes on top of them or some cloud provider. There are several cloud providers that are quite good that are doing a job at abstracting things, layer a little bit above the, you know, like the raw stuff. And they are quite good, but they are still quite general or generic for trying to be like, you know, like generic for every framework and for every language, for everything. So it's always like this little friction of like, how do you do this for fast API? How do you make this thing work? That was the thing that I felt like it makes sense to have something that just works.
Demetrios [00:42:53]: Yeah. For fast API.
Sebastián Ramírez [00:42:54]: Yeah.
Demetrios [00:42:56]: It's part engineer, part taste how I hear it. Because when you're thinking through these problems, you're really stewing on them, but you're also looking at what's going to be the most efficient and then what is going to be the most tasteful way or that developer experience side of things really makes me realize that you're thinking through not only hey, this is the best way of doing it, it is, this is the most developer friendly way of doing it. And even if it may or may not be the best way because there probably are potentially better ways that you could do something throughout each step but then that adds that extra complexity that you don't need in the mix.
Sebastián Ramírez [00:43:59]: Yeah, yeah, exactly, exactly. And the funny thing is that it feels a lot like taste and like an art and not a science. And like feels like, oh, it's just like, you know, like very good taste or something but it's actually a giant list of specific tips. But you know, just like knowing all that by heart just helps a lot to see. Like this doesn't make sense, but it's not, it doesn't make sense because it, it smells weird or like, you know, like I feel it doesn't have a good value. No, yeah, it's normally a very specific thing. It's like if you define the imports in this way, people, you final users are going to have to import from very different places and they will know what they will need to import. So better to define them this other way.
Sebastián Ramírez [00:44:46]: But saying all that long phrase is longer than saying like it's probably better this way, you know, so it's a lot of, I think it's just a lot of that which is like, you know, it's a funny thing, I feel it's quite funny that several of the automatic SDK providers, so the people that generate the SDKs for the big LLM providers like OpenAI and several others. Well, OpenAI, Anthropic and like I don't remember most of them, they are building the SDKs, the Python SDKs and well, like the several languages, SDKs based on open API, which is the thing that FastAPI is based on, many of these big providers are actually using fastapi underneath and they get like a nice open API as a result. But then many of these SDKs they had like, okay, what is the right way to build this in Python? And I ended up having conversations with several of them. I think like the right way is like doing this. So for example, using, you know, like this is one of those things that sounds like taste, but it's actually a very specific set of things that work. If you define the parameters of your functions as typed dicts, then instead of pydantic models, the parameters of the functions, the input parameters of the functions, if you are building an SDK as type dicts, then the editor will be able to provide auto completion and inline errors for the parameters that the users are providing without the users having to import some additional model, without them having to import anything. They just start cooling braces and they start getting autocompletion. And then if the outputs of those functions are pydantic models, then users are going to have autocompletion when they hit, when they try to get an attribute or things like that.
Demetrios [00:46:30]: Two for one deal.
Sebastián Ramírez [00:46:32]: Yeah, so it's like, you know, like it's just like that specific combination of use this here, use that there, this works this way, this works the other way, like use this tool underneath and like that should get you going. That ends up helping a lot. And then in the end, most of these SDK providers are using exactly that recipe that I think I told them at some point, at least a few of them I told them like, hey, you can do it this way. I don't know if some of the others like came up with it on their own, but like, you know, it's just like just those tips, those tiny ideas of just having explored a bunch of that and trying to get like that best developer experience after using it as a final user. I think that is the main point. Just like using something as a final user and trying to improve that own experience constantly.
Demetrios [00:47:19]: But when you say explored, do you mean that you've tried to put a certain rule in place and then you've played around with it and you've said, ah, maybe this isn't good, or maybe it could be a little bit better if we also do this and so you're adding on top of it or you're adding something and then taking it back.
Sebastián Ramírez [00:47:41]: Yes, so it's actually both. Me as a consumer of code and other libraries when I use them. And I feel like this is not great. Why don't I get autocompletion here? Now by this point, I know how autocompletion works internally, so I know what they are doing wrong in their code. And if I had infinite time, I will go and make pull requests to everything. But like, you know, like in many cases I see something and it's like.
Demetrios [00:48:09]: You'Re like, wait, wait, wait. You're like a Batman for open source packages. You go and get the autocomplete man, they submit the pr.
Sebastián Ramírez [00:48:20]: I could be autocomplete man. That should be my Halloween costume. Actually, that's a good question.
Demetrios [00:48:27]: Saving the Gotham City of GitHub. GitHub, Gotham City. That is classic control space. Yeah, yeah, keep going though. Yeah.
Sebastián Ramírez [00:48:38]: So it's like one. One thing is just like using different tools and figuring out like how it feels to use them and then trying to figure out what will feel better if I use them this way or the other way. That's one thing. And the other thing is when building a tool, when building a library or a product or whatever, and this actually applies to anyone that is building anything, if you put yourself in the shoes of whoever is going to be the final user, is much easier to optimize that experience for the final user to optimize and to make sure that you are doing something that works well for that final user. If you are not the final user is much more difficult. Then you have to hire someone that is like, you know, like breathing on your neck, checking that what you are building is actually useful because otherwise you end up building something that is not useful for the final user and then no one uses it and it doesn't really solve an actual problem. As an example, when I was building SQL Model, this was fun because I didn't start writing all the code and then like, okay, now let's try documentation. I started with the documentation, so it was like sort of documentation driven development.
Sebastián Ramírez [00:49:52]: So I started writing the documentation, explaining how this should work and then trying to write the examples in a way that should be easy to understand and easy to work with. And then figuring out what do I have to do in the code to make this work and then like, you know, like going in the opposite direction just from the what is the final result and how do I make this final result actually work. And in some cases, I remember there were like one or two points where I have a feature somewhere in SQL Model that will let you do something and you will be able to do that same thing in three or four different ways. Like, you could set this parameter here, or you could also set it here, or you could also set it in this other place or conditional in this and that. And it was like, you know, like it was very easy to implement. But then I realized, explaining this, it's just so complicated because if this happens, then this. If this other thing happens, then the other. But if you try this.
Sebastián Ramírez [00:50:50]: So the priority of the parameter is this one, you know, like, it was such a long piece of content that was gonna be so difficult for people to understand and then it was gonna be difficult to use. If it's something that is difficult to understand, it's gonna be difficult to use. You know, like, it just has to be simple and intuitive. And then that was the point. Like I figured, like, okay, I'm going to forbid these other three options that are already there, already implemented for free, but I'm going to forbid them because they just, they are just going to complicate things. When I try to explain them, it detracts. Yeah, so the, it's like, I think it's a bit of that of trying to put the hat of the final user and that helps guiding so much. Whatever is the thing that you are building.
Demetrios [00:51:40]: Dog fooding, man, that is so good. And I really, again, go back to the foresight to be able to say, we're going to start with the docs and work backwards. And then when you're creating the docs, you realize, this is complex as hell. I am not going to allow people to do it these three ways, even though I know that when I create it, you're going to be able to do it these three or four different ways. We're just going to say this one way is the way that we choose. We're okay with being opinionated here because we feel like it is best. And so that's all you need to know.
Sebastián Ramírez [00:52:22]: Yeah, yeah, exactly. Exactly. It was pretty much like that. And this is strange because like, you know, as a software developer, as an engineer, you're. You are used to being able to build things and if you have more options and you can make them work, oh, I have more features. It's like, this is great. I'm such an engineer. Then if you're such an engineer that you can build a bridge that takes you to many different places and it's like, well, a bridge should take you normally to one single place.
Sebastián Ramírez [00:52:52]: So it's better just to make one single bridge. Yeah, that actually helps. That actually works.
Demetrios [00:53:00]: Well, let's Talk a minute about the community and how you go about prioritizing PRs and merging different issues that come up. Because there's a lot of activity around fastapi, a lot of people are using it. As you said, there's a lot of different competing interests. So how do you look at that and how do you make sure that A, you're not doing anything that maybe is going to ruin that developer experience, but then B, is not shutting people off because maybe their whole business relies on some feature being merged?
Sebastián Ramírez [00:53:41]: Yeah, this is, this is one of those things that I feel looks so different from the perspective of the person that is building the entire thing than from the people outside of it. It's quite strange. So like, you know, like the first thing is the people that are working on the open source stuff is just a handful. Not for, just for Fast API, for most of the projects actually in Fast API. I'm quite lucky and grateful that I, well now I get to pay people to work on it, but I also get like contributions from a bunch of people in the community and I also have a session for the Fast API experts which are the ones that come and help others with their questions in fastapi. So you know, like they prove that they know fastapi by helping others and then like I can highlight that in the documentation. So they, hey, these are the experts. And you know, like then automatizing all that to make it work with the docs and everything.
Sebastián Ramírez [00:54:36]: But you know, like the inflow of communication in GitHub discussions is massive. Before I had questions in issues, but then people will come and 90% or something like that of the things that people will write in issues were actually questions or errors in their own code. So it was, you know, like it was actually not really a bug in fastapi then. So it was very difficult to manage. Now with having several people, for example, the experts that can check what are the questions that are coming up. Whenever they see something that is actually broken, they just ping me. And that helps so much because they help me filter out like all the noise and figure out what is actually important. What is actually working then for all the open source PRs.
Sebastián Ramírez [00:55:27]: So the first thing is because I have translations, there are so many translations open that are just like waiting for another native speaker to come and re git. So those just have to stay there for quite a while and thinking of changing that and switching it to using LLMs. I'm already doing that for Spanish and the results are really, really good. I want to do that for the other languages because the results are quite good. They are consistent. This is one of the things that LLMs are actually very good at. There are many things that their LLMs are great at translating and doing it properly. They are very good at that.
Sebastián Ramírez [00:56:04]: So I want to extend this thing that I did for, for Spanish to the other languages so that we can have a consistent translations for each of the languages. Also because there are some languages that have a couple of pages but nothing else translated. So it will be better to have like, you know, like a consistent set of languages that are supported and then translating those. Then you know, like half of the PRs are just translations and then there's a lot of others that some, for example, don't necessarily have tests or is not a specific clear use case that they are solving. So it's not obvious what they are doing. And there are others that are actually that can be solving a problem but also in some cases conflict with some other features or some other things that I want to do that will solve that use case plus other three use cases. So it's like I am not going to merge this right now because then I have to maintain it. Yeah, but then like, you know, like just like closing it and saying like, oh, I'm going to do this in another way, another moment is also rude.
Sebastián Ramírez [00:57:03]: So yeah, it's this difficult balance of how to manage all that and how to make sure that you pick the right things. And many PRs for simple they look can get so complicated. In many cases people come and say like, oh, why haven't you merged? Or why haven't you reviewed this like one line change pr? Because to review it I have to check the other 5,000 lines that were not changed and how this one affected them and how everything can break. It's happened a couple of times. Well, a few times that I merged something thinking like, okay, well it probably makes sense. Yeah, the use case is sensible sort of and the code sort of makes sense. Or although I'm not sure why would we need to change it. But it makes sense.
Sebastián Ramírez [00:57:58]: The tests seem to be passing like, you know, like this is touching things that I'm not sure if there's anything else touching. But then I make the release and then like something explodes somewhere else because someone was doing something weird with FAST API. In most of the cases it's because someone is doing something weird with the internals. But you know, like I still try to not affect not even those use cases. So yeah, it's like this strange balance. I still review each one of the PRs, the ones that are changing the internal code and changing complex things, I still review each one of those and make sure that they are good. Now that I have a team, I have a few people that I trust that can tell me like, hey, this looks quite good. And then I can just give it, I still give it a fair of check, but at least I know that this is not something that doesn't make sense.
Sebastián Ramírez [00:58:49]: You know, like, at least I have a good priority of like what are the things that I should focus on? And then to decide what PRs, what issues or what projects to work on and to what to focus on is also this balance of what is the thing that will have the biggest impact for everyone right now. And in some cases, some cases is even like another third party open source project that fast API depends on or something. And it's like this needs to be fixed because we are using it in fast API or it has a big interaction with fast API. So that is the thing that requires the biggest priority. I reconfigured for everything. Yeah.
Demetrios [00:59:30]: No, you go off and you have to fix other people's open source projects so that yours works. That's you doing your civil duty.
Sebastián Ramírez [00:59:39]: Yeah. Or the docs. Fixing the docs here and there.
Demetrios [00:59:42]: Yeah. The funny part about that phrase that you were saying is, yeah, it's just one line of code, but then at the end of the day you have to go and see how that interacts with the other X number of codes, thousands of code lines of code. It made me think about that Mark Twain quote where he said, I didn't have time to write a short letter, so I wrote you a long one.
Sebastián Ramírez [01:00:10]: Yes, something like that. Yes.
Demetrios [01:00:14]: And, and it's, it's kind of that same thing where you, it's almost suspect if it's just one line being changed because then you go like, what's going on here? Why is this one line needing to go in? And then also when you're saying people have to trust you when you are not fixing one issue because you have the foresight to say down the road, I'm gonna fix this issue and two or three more. And so it's that two for one or three for one deal. They just have to be patient. It feels like you almost need to have a public Kanban board with things that you're focusing on issues that you're gonna be hitting so that people can know, okay, he, it's on the backlog or now it's going, yeah, he's, he's working on it. All right, cool.
Sebastián Ramírez [01:01:04]: Yeah, but you know, like, I, I tried also a bit of that having like, you know, like there's a public roadmap or like these are the things that are like the main things that are on my mind. But then also because fast API covers so many people, there's someone here and there that just comes to ask for something that is not necessarily related to the roadmap, but it's just like adding comments there and like, it's just like more communication to manage. So in some cases the trade off of making the whole thing public becomes having to handle so much more communication that ends up becoming not as efficient. You know, at some point I was just answering issues and discussions and things like that, and I was just spending the whole time answering them and not fixing anything just because I was answering, just writing messages and like, this is not working. This is not sustainable.
Demetrios [01:01:55]: Yeah, dude, I can imagine that one of the biggest time sucks for you is when you go on GitHub and you just had thousands of notifications and it's like that, like you're saying, so yeah, if you're making a public roadmap and that just gives more surface area for people to comment or for people to engage with you on top of your social media, where people are commenting and engaging with you on top of the actual project itself. Oof. I didn't think that through, but if I were you, I would be afraid to even look at my phone.
Sebastián Ramírez [01:02:33]: Yeah, exactly. Should turn it off. Most of the time I have to disable the notifications thing, the email for GitHub. Like I have notifications in email from GitHub and at some point when it was like, you have 10,000 on read, it's like, yeah, no, this is not working, you know, like, yeah, I just have to go to GitHub, use the GitHub notification system and also rely on the fast API experts. Like a few are part of the. Unlike, you know, like people on the team that are just like working and they just come and review, there's a lot of PRs that they can review and even merge on their own. So for example, if people have been like working on like checking the repositories or like doing a translation or something like that, but you have bumped into Sophie or Alejandra or maybe Pasig, you know, like people on my team that are constantly doing things like that. I also get a lot of help from the fast API experts like Marcelo, which is part of the Pydantic team.
Sebastián Ramírez [01:03:32]: There's also Yuri Ludovico There are several people that are just like. That are not necessarily. That are not in the company, but are helping a lot. They are like some of the experts that are also. Yeah, that helps a lot. And helps me also surface. Whenever something breaks, whenever there's something that I need to put attention to, they are the ones that end up just like, bringing me the important news.
Demetrios [01:03:57]: They're doing their civic duty to make sure that your shit runs so their shit can run too.
Sebastián Ramírez [01:04:03]: Yeah, so I can do my civic duty as well.
Demetrios [01:04:05]: Yeah, yeah, exactly. It's just paying it forward all around the Internet. That's great. Now, the last question I wanted to hit you with was you have had the luxury of being able to focus on the tech for the past X amount of years now, starting a company.
Sebastián Ramírez [01:04:25]: Yeah.
Demetrios [01:04:26]: I can imagine you are already seeing that you're getting pulled in a million different directions. Whether it's hiring or it's just paperwork stuff, or it is going out in public speaking, et cetera, et cetera, all of that time is going to detract from the actual building. How are you thinking about that as you move forward? Because at some point, like, you know the project and you know the cloud, I imagine the ins and outs of it, your stamp and your vibes on this make it what it is today.
Sebastián Ramírez [01:05:05]: Yeah.
Demetrios [01:05:05]: How do you think about continuing that even if you are not able to put your fingerprint on each piece of it?
Sebastián Ramírez [01:05:12]: Yeah, that's a very good question. And it's difficult because it's indeed a lot of work doing extra stuff. And I really love to code. That's something that I really like to do. But this is like, you know, like, I have to do this other stuff so that I can get that product and I can use it. So, you know, like, I can have the team working on everything. I just have to suck it and do the rest of the stuff that I have to do. But also I get the fortune to rely on people that are super clever and helping helping me a lot with a bunch of the things and also get the spirit of how is the project going? And it's hard to find people like that.
Sebastián Ramírez [01:05:52]: It's hard to get the right people in. But once you start being able to just rely more and more on some people, that's amazing. And that's also a great feeling. For example, the new CLI, the FastAPI CLI, since a couple of versions have like the new terminal UI that was created by Patrick, and it's like this new set of CLI UI components that you can use to build clis, and he's open source and everything, and it's all done by him. And, like, the same with the CLI that we have for the cloud is like, just a lot of work by him that I can just like, quickly check and see. Like, yeah, this all makes sense. And he's super clever, so I can just like, say, like, yeah, this all looks good. The same with, yeah, just like, sign approved.
Sebastián Ramírez [01:06:41]: This all look good. There's nothing good, you know, like from time to time say, like, why this, why that? Okay, this, that. Like, the standards are terrible, so we need to follow the standards. Like, okay, yeah, then I get it, let's do it. Perfect. The same with the ui. Like, you know, like, a lot of the work has been done by Alejandro is one of the team members that I can now say, like, this is a bunch of tweaks and I see, like, it's a lot of react code and typescript and like, tweaking the tailwind classes and stuff and like, here and there. Like, yes, makes sense.
Sebastián Ramírez [01:07:12]: Looks good, the screenshots look good. But like, by this point I can say, like, yeah, I trust the code. It's like, fine, approve it without having to, you know, like, get the pull request and check all the code each bit by bit just by looking at it. The same with Sovi, for example. She's been helping a lot with the open source with typer and with FAST API, mainly with typer, that has been like the main focus. But then I can see whenever she goes and gives a comment with a review, it normally explains what was the problem, all the references, all the things that were tried. She already faced up the tests and the docs and everything, and I can just go and say, makes sense, approved. So that really helps a lot.
Sebastián Ramírez [01:07:50]: It's difficult to get to that point and it has to be also gradual. I cannot just suddenly say, everyone, just merge away whatever you want. Because the whole point of fastapi and my open source project is that I am so picky with the quality that everything has to go through me for those things. But then being able to have more and more reliance on the team, that's. That's amazing. And that's an amazing feeling. Being able to see, like, oh, we are building this whole thing together. That's awesome.
Demetrios [01:08:20]: Yeah, it feels like you are learning to let go a little bit of the reins and trusting the team more and duplicating yourself. And I like that you say it is a great feeling because then you can go and focus on other stuff if you know that you have the team there and you trust the team to hold the same quality standards as you. The last thing that I wanted to mention is I think people can sign up for fastapi Cloud right now, right?
Sebastián Ramírez [01:08:54]: Yes. So people can go and join the waiting list. Fastapicloud.com I hope we are going to start letting people in soon to try out the beta. Yeah, I think that will be something great for people to go and try. And also just like keep using the open source projects because now they have a lot more power behind them. So yeah, like I will say you're in good hands, but like, you know, I'm biased.
Demetrios [01:09:23]: Classic man.
Sebastián Ramírez [01:09:31]: It.