- BrainTools - https://www.braintools.ru -
Себастьян Рамирес. Легенда мира Python-разработки, человек с моржовыми усами, единоличный создатель фреймворка FastAPI и герцог open-source разработки. Он работал на ферме, отчислился из католической школы, заболел раком, женился, изучил Data Science, стал Backend-разработчиком, выступал на конференциях, откликнулся на вакансию, где использовался разработанный им фреймворк, вел твиттер… И где-то между этими важными делами успел стать одним из самых интересных Open Source-разработчиков во всём мире, а также человеком, который на bus-факторе может прокатить половину Интернета (извините). Да, да, речь про того самого Tiangolo. И если вы знали его только как разработчика FastAPI, то сейчас точно удивитесь.
Меня зовут Макс, я TeamLead Backend в компании ИдаПроджект [1], автор YouTube-канала PyLounge [2]. Не буду затягивать со вступлением, поехали!
→ Великое начинается с малого [3]
→ Once Upon a Time in Colombia [4]
→ Диагноз, который изменил всё [5]
→ Быстрый как формула [6]
→ Open Source — когда один пишет код, а миллионы делают его лучше [7]
→ Заключение [8]
→ Источники [9]
5 декабря 2018 года. Где-то в Колумбии за обычным компьютером сидит никому не известный разработчик — Себастьян Рамирес. Его пальцы быстро стучат по клавиатуре, и он делает первый коммит в своем новом проекте. Название простое, но дерзкое — FastAPI.
В одном из файлов он оставляет скромную, но многообещающую строку: «Fast API framework, fast high performance, fast to learn, fast to code».
Его идея гениальна в своей простоте: «FastAPI — это современный, быстрый веб-фреймворк для создания API с Python 3.7+, основанный на стандартных аннотациях типов. Быстрый (как Starlette + Pydantic), с автодокументацией OpenAPI, валидацией данных и async/await».
Он верит в свой проект. Он знает, что мир Python-разработки устал от громоздких решений, от бесконечной настройки, от сложных документаций. FastAPI должен быть другим — быстрым, элегантным, интуитивным.
Идея создать быстрый, легкий, удобный асинхронный фреймворк драйвит Рамиреса. Себастьян заряжен идей и готов двигаться только вперёд. И мир отвечает ему взаимностью.
В начале 2019 года о FastAPI говорят на Reddit (в r/Python [12]) и Hacker News. Выходит первая статья на Real Python: FastAPI: The New Python Framework for Web APIs [13]. В том же году репозиторий с FastAPI набирает 5000 звёзд и попадает в топ-10 лучших python-модулей.
FastAPI больше не просто эксперимент. Для многих это — революция.


Так на глазах у всего Python комьюнити зародился фреймворк, который потом стали использовать в Microsoft, Uber, Netflix и ещё куче IT-гигантов. FastAPI практически полностью вытеснил Flask, Sanic и отвоевал большую часть популярности у Django. Себастьян Рамирес стал одним из самых узнаваемых Open Source разработчиков и великодушным пожизненным диктатором FastAPI.
Но — как это часто бывает — рассвету предшествует тёмная ночь.
Согласно статье Keeping an Open-Source Mind [14] Себастьян Рамирес родился в 1989 году в Колумбии.
С ранних лет он ненавидел монотонность. В пять лет, собирая пазл с одноклассниками, Себастьян раздражался из-за их метода «тыка» — они хаотично перебирали детали, пока не находили нужную. Тогда он предложил «распределить кусочки между всеми и проверять их системно». Даже мытьё посуды или кормление собак превращалось в задачу по оптимизации.
«Для меня это почти фобия. Если я делаю что-то простое и повторяющееся, я сразу хочу это ускорить или автоматизировать».
Рамирес однажды застал маму за сортировкой горы бумаг по алфавиту. Он предложил ей «аналоговую» версию алгоритма сортировки слиянием: разбил стопки на мелкие, отсортировал их, а затем соединил. Через 30 минут всё было готово.
«Мама была удивлена, но согласилась попробовать, — вспоминал он. — Тогда я понял, что знания — это сила, способная изменить мир даже в самых неожиданных ситуациях».
В семь лет Себастьян Рамирес бросил католическую школу. Не из-за лени или отсутствия интереса [15] к учёбе — как раз наоборот. По словам учителей он задавал слишком много вопросов. В большинстве католических школ Медельина (Колумбия) религия занимала важное место в программе. Для пытливого ума Рамиреса вера стала почвой для бесконечных вопросов — но, к сожалению, преподаватели этого не оценили.
Однажды директор школы вызвал родителей Себастьяна и заявил, что их сын «сложный» ребёнок. Однако дома вместо наказания мальчика ждала похвала. «Ты молодец, — сказали ему. — Продолжай искать ответы».
Вскоре после ухода из католической школы семья Рамиреса переехала на небольшую ферму в Санта-Элене — деревушке в часе езды от Медельина. Родители решили, что домашнее обучение [16] подойдёт Себастьяну и его младшей сестре Эстефании куда лучше.
Ферма, окружённая горами и лесами, стала идеальной средой для воспитания. Семья выращивала овощи, держала пять веймаранеров (порода охотничьих собак), нескольких кошек и двух коз, одна из которых была «подотчётна» самому Себастьяну — каждый вечер ему приходилось её ловить. Образование здесь было не теоретическим, а практическим: дети сажали деревья, мастерили будки для собак, ставили заборы и меняли лампочки.
«Это воспитало во мне любопытство к тому, как устроен мир», — вспоминает Рамирес.
В 1997 году он начал помогать родителям с продажами в их консалтинговой компании Grupo Una Familia, которая проводила тренинги для руководителей. К подростковому возрасту бизнес эволюционировал: теперь семья организовывала корпоративные тимбилдинги с музыкой, шутками и историями о ценностях компаний. Себастьян погрузился в звукорежиссуру и дизайн, часами зависая в студии у инженера Ченго и засыпая его вопросами.
«Он звал меня Губкой Бобом, потому что я впитывал знания, как губка», — вспоминает Рамирес.
В 15 лет Себастьян решил, что семейному бизнесу нужен не просто сайт, а «целая система управления клиентами» — с загрузкой фото и другими функциями. Родители всё ещё работали с бумажными записями и телефоном, так что он взялся за дело сам.
Себастьян начал с бесплатных онлайн-уроков, но быстро разочаровался в слепом копировании кода. Ему хотелось понимать, как всё устроено. Так он открыл для себя HTML, CSS, JavaScript и XML (попутно выучив английский). Возможности казались безграничными.
Чтобы учиться в горах, он нашёл у отца старый PalmPilot, загрузил в него документацию и создал подобие прото-Kindle — теперь стандарты всегда были у него под рукой.
«Я начал программировать, когда мне было пятнадцать. Я пытался создать веб-сайт для бизнеса своих родителей. Первым моим настоящим “кодом” стал JavaScript внутри HTML — модальное диалоговое окно (alert) с фразой “Hello World”. Я до сих пор помню, как обрадовался, увидев это маленькое окно с сообщением, и испытал чувство всемогущества от мысли, что это запрограммировал я … Я много лет боялся изучать какой-либо другой язык, думая, что сначала должен “хотя бы” освоить JavaScript. Но потом на одном из многих онлайн-курсов, которые я проходил, возникла необходимость использовать Python для управления искусственным интеллектом [17] в Pac-Man и для некоторых других задач. Курс состоял из одного длинного туториала по основам Python, и этого было достаточно. Мне очень хотелось попробовать», — вспоминает Себастьян в своём интервью Рики Уайту. [18]
В итоге сайт для родителей он создал — сложный, многофункциональный, идеальный с технической точки зрения [19]. Но был нюанс: родители им не пользовались. Интерфейс оказался неудобным, а система — чужеродной для их workflow.
Тогда Себастьян осознал ключевую вещь: «Инновации и disruption — не самоцель. Они всего лишь побочный эффект решения реальных проблем».
Этот урок позже лёг в основу FastAPI — инструмента, который действительно нужен людям.
В 2009 году 20-летний Рамирес начал чувствовать странную боль [20] в правой части груди. Обследование показало шокирующую картину — рак. Опухоль размером с папайю сдавливала лёгкое и оказывала давление на сердце. Экстренная госпитализация, агрессивная химиотерапия [21]. Свой 21-й день рождения Себастьян встретил в больнице, попросив медсестру спеть ему «Happy Birthday» во время очередного введения препаратов.
Болезнь перевернула его ценности. До этого он продолжал работать в семейном бизнесе, но месяцы борьбы за жизнь, невозможность нормально есть и пить заставили его задуматься.
«Я хочу решать по-настоящему важные проблемы. Те, что меняют мир».
После завершения лечения сестра показала ему Coursera — платформу онлайн-обучения. Для Рамиреса, всё ещё слабого, но жаждущего знаний, это стало откровением: «Я, парень из Колумбии, могу учиться у лучших университетов мира!»
Он с головой погрузился в курсы по алгоритмам, машинному обучению, криптографии и ИИ, одновременно взяв восемь дисциплин. «Это был мой собственный, слегка безумный университет», — смеётся он сейчас.
В 23 года, несмотря на обретённые знания, он всё ещё чувствовал себя «просто случайным парнем из Колумбии без диплома». Когда зять предложил ему присоединиться к своей компании по машинному обучению, Рамирес заколебался. Но в итоге согласился — и неожиданно обнаружил, что его навыки востребованы.
Умение решать проблемы и глубина знаний быстро сделали его незаменимым. Вскоре он возглавил отдел разработки — и именно здесь зародилась идея FastAPI.
Наблюдая, как коллеги «изобретали велосипед» в каждом новом проекте, Рамирес вернулся к своей детской привычке: «Как это можно улучшить?»
Представьте, что вы стоите в длинной очереди в банке или местном МФЦ — в месте, где царит дух бюрократии. Пока ждёте, заполняете форму, но на середине осознаёте ошибку [22] и приходится начинать сначала. Когда подходит ваша очередь, сотрудник за столом сонно и невнимательно проверяет ваш бланк — вручную, разумеется.
Себастьян Рамирес говорит, что именно так раньше выглядела разработка программного обеспечения: неэффективно, утомительно и с кучей ошибок. Он создал FastAPI, чтобы упростить этот процесс.
«С FastAPI вы бы не стояли в очереди, — объясняет он. — Вы бы сидели с номерком, очередь двигалась бы быстро, а сотрудник помогал бы вам внимательно и чутко. Да и форма, которую нужно заполнить, была бы куда понятнее».
Так Рамирес объясняет суть FastAPI тем, кто далёк от программирования. По сути, это быстрый и простой фреймворк для создания API на Python — самом популярном языке в сфере Data Science, машинного обучения и искусственного интеллекта.
Несколько лет исследований (сначала в Колумбии, затем в Дубае, куда он переехал в 2017 году) показали: существующие инструменты не идеальны.
«Пришлось создавать свой».
Но тут его снова накрыли сомнения: «Кто я такой? Просто чудак из глуши». Однако мысль «А почему бы не попробовать?» перевесила.
Днём он работал в компании зятя, а ночами и по выходным погружался в код. «Я сходил с ума от усталости: глаз дёргался, палец немел… Но это был кайф!»
В декабря 2018 года, как рождественский подарок разработчикам мира, он выложил первую версию FastAPI на GitHub.
«Когда ты создаёшь что-то, чем пользуются другие, и это действительно помогает им — это ни с чем не сравнимое ощущение, — улыбается он. — Это просто прекрасно».
До его появления большинство Python-фреймворков создавались ещё на заре языка, до появления ключевых возможностей вроде async/await и аннотаций типов. FastAPI использовал эти и другие инновации, чтобы сделать разработку удобнее.
В отличие от неудачной попытки с сайтом для родителей, Рамирес теперь создавал инструмент для себя — чтобы решить проблемы, с которыми сталкивался при разработке облачных сервисов. Он сделал ставку на автодополнение кода и мгновенные подсказки об ошибках, сократив объём рутинного кодинга и помогая находить баги до запуска программы.
Обычно технические руководства к инструментам вроде FastAPI написаны сухо, сложно и скупо, оставляя разработчиков разбираться во всём самим. Но Рамирес, вспоминая, как сам учился по открытым материалам, сделал подробнейшую документацию — с объяснением не только самого фреймворка, но и базовых концепций.
«Я хотел, чтобы всё было объяснено так, как мне самому хотелось бы в начале пути», — говорит он, цитируя Гвидо ван Россума, создателя Python: «Код — это в первую очередь способ общения между разработчиками».
Рамирес даже нанял дизайнера, чтобы визуализировать сложные моменты. Он хотел, чтобы FastAPI был понятен любому, даже человеку из глубинки без доступа к техническому образованию.
Но изначально у Рамиреса была более простая цель: «Я сделал это для себя, — признаётся он. — FastAPI стал ответом на вопросы, которые я задавал себе всю жизнь».
Почему всё устроено именно так? Как сделать это проще? Как ускорить процесс? Как добиться большего?
И главное: Как улучшить мир — для себя и для других?
Концепция open-source поначалу казалась ему слишком хорошей, чтобы быть правдой: «Я не знал тогда, что 90% мировых систем работают на открытом коде». Но чем больше он погружался, тем больше восхищался её философией — люди помогают людям. Это было созвучно его жизни: он всегда старался делать процессы эффективнее — для родителей, соседей, друзей.
В интервью Рики Уайту Себатьян вспоминает: «На самом деле я годами откладывал создание нового фреймворка. У меня также была возможность поработать с другими технологиями — с JavaScript и TypeScript на фронте, несколькими фреймворками для гибридных приложений, с Electron для десктопа и так далее. Тем не менее, большинство моих проектов (или даже все) были связаны с данными (data science, ML и так далее). В какой-то момент у меня в голове сформировалось сочетание фич, которые мне нравились. Я взял их из разных фреймворков, инструментов и даже из других языков и экосистем.
Затем я убедился, что у меня были подходящие строительные блоки для создания FastAPI: Starlette [23] (для всех веб-частей) и pydantic [24] (для работы с данными) — оба имеют отличную производительность и функциональность. И наконец я приступил к реализации своего проекта с учётом стандартов, собранной обратной связи от разработчиков, а также некоторых дополнений (например, системы внедрения зависимостей)».
В 2021 Себастьян устроился в Explosion AI [25], компанию, создавшую популярную платформу обработки естественного языка (NLP-библиотеку spaCy [26]). Позже он решил покинуть компанию, так как планировал посвятить большую часть своего рабочего времени FastAPI, Typer и другим open source проектам, а ещё консультировать другие команды и компании.

«Мы слышали о FastAPI повсюду — от крупных компаний вроде Rippling до хакатонов выходного дня», — говорит Лорен Ридер, партнёр Sequoia Capital. Когда она и её коллега задумались о создании Sequoia Open Source Fellowship, главным кандидатом был именно Рамирес. В январе 2023 года он стал первым участником программы.
Немного матчасти: Sequoia Open Source Fellowship — это программа поддержки разработчиков открытого ПО (open source), организованная венчурной компанией Sequoia Capital. Её цель — финансирование и поддержка талантливых разработчиков, которые вносят значимый вклад в open-source проекты. Участники получают стипендию (грант), позволяющую им сосредоточиться на разработке ПО без необходимости искать коммерческую работу.

Усилия Рамиреса окупились. Сегодня FastAPI используют в самых разных сферах: от моделирования галактик и разработки лекарств до управления кризисными ситуациями в Красном Кресте и анализа данных COVID-19. Его применяют как гиганты вроде Microsoft, Google и Netflix, так и стартапы. Даже Институт космического телескопа, отвечающий за работу телескопа «Джеймс Уэбб», использует FastAPI для быстрого доступа к научным данным.
В 2023 году FastAPI скачивали 800 000 раз в день. И популярность продолжает расти.
Сейчас Себастьян живёт в Берлине, в Германии и полностью посвятил себя opensource-разработке. Он уже поработал над интеграцией с Pydantic v2, улучшением функциональности других его проектов (Typer, SQLModel и Asyncer), а также над более детальной документацией. Самое главное — он все еще испытывает такое же трепетное чувство, что и в начале истории, глядя на то, как FastAPI помогает тысячам разработчиков.

Кстати, ваш покорный слуга даже как-то общался с Себастьяном. В 2022 году мой пуул-реквест был замержен в master вектку FastAPI :)

После того как колумбиец Себастьян Рамирес самостоятельно научился программировать (и говорить по-английски) с помощью Интернета, он создал open-source инструменты, чтобы сделать программирование более доступным для всех, где бы они ни находились.
Жажда познания в итоге привела Рамиреса к созданию инструмента, который, как он надеялся, упростит и ускорит разработку программного обеспечения. Его детище, FastAPI — фреймворк, позволяющий быстро строить приложения и легко их поддерживать. Круче всего, что это open-source, то есть любой может использовать и дорабатывать его бесплатно.
«Когда создаёшь что-то, что действительно помогает другим — это ни с чем не сравнимое чувство, — улыбается 34-летний Рамирес. — Просто лучшая награда».

https://twitter.com/tiangolo [10]
https://github.com/fastapi/fastapi [11]
https://www.sequoiacap.com/article/sebastian-ramirez-spotlight/ [14]
https://evrone.ru/blog/interviews/sebastian-ramirez-interview [27]
Автор: PyLounge
Источник [29]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/14584
URLs in this post:
[1] ИдаПроджект: https://idaproject.com/
[2] YouTube-канала PyLounge: https://www.youtube.com/@pylounge
[3] Великое начинается с малого: #velikoe
[4] Once Upon a Time in Colombia: #onceupon
[5] Диагноз, который изменил всё: #diagnoz
[6] Быстрый как формула: #fastformula
[7] Open Source — когда один пишет код, а миллионы делают его лучше: #opensource
[8] Заключение: #itog
[9] Источники: #istochniki
[10] https://twitter.com/tiangolo: https://twitter.com/tiangolo
[11] https://github.com/fastapi/fastapi: https://github.com/fastapi/fastapi
[12] r/Python: https://www.reddit.com/r/Python/
[13] FastAPI: The New Python Framework for Web APIs: https://realpython.com/fastapi-python-web-apis/
[14] статье Keeping an Open-Source Mind: https://www.sequoiacap.com/article/sebastian-ramirez-spotlight/
[15] интереса: http://www.braintools.ru/article/4220
[16] обучение: http://www.braintools.ru/article/5125
[17] интеллектом: http://www.braintools.ru/article/7605
[18] вспоминает Себастьян в своём интервью Рики Уайту.: https://habr.com/ru/companies/macloud/articles/562948/
[19] зрения: http://www.braintools.ru/article/6238
[20] боль: http://www.braintools.ru/article/9901
[21] химиотерапия: http://www.braintools.ru/brain-disease/brain-growth/treatment-of-brain-tumors/chemotherapy
[22] ошибку: http://www.braintools.ru/article/4192
[23] Starlette: https://www.starlette.io/
[24] pydantic: https://pydantic-docs.helpmanual.io/
[25] Explosion AI: https://explosion.ai/
[26] spaCy: https://spacy.io/
[27] https://evrone.ru/blog/interviews/sebastian-ramirez-interview: https://evrone.ru/blog/interviews/sebastian-ramirez-interview
[28] https://github.com/tiangolo: https://github.com/tiangolo
[29] Источник: https://habr.com/ru/companies/idaproject/articles/903112/?utm_source=habrahabr&utm_medium=rss&utm_campaign=903112
Нажмите здесь для печати.