Разыскивается живым или мёртвым: легендарная история Себастьяна Рамиреса
Себастьян Рамирес. Легенда мира Python-разработки, человек с моржовыми усами, единоличный создатель фреймворка FastAPI и герцог open-source разработки. Он работал на ферме, отчислился из католической школы, заболел раком, женился, изучил Data Science, стал Backend-разработчиком, выступал на конференциях, откликнулся на вакансию, где использовался разработанный им фреймворк, вел твиттер... И где-то между этими важными делами успел стать одним из самых интересных Open Source-разработчиков во всём мире, а также человеком, который на bus-факторе может прокатить половину Интернета (извините). Да, да, речь про того самого Tiangolo. И если вы знали его только как разработчика FastAPI, то сейчас точно удивитесь.
Меня зовут Макс, я TeamLead Backend в компании ИдаПроджект, автор YouTube-канала PyLounge. Не буду затягивать со вступлением, поехали!
Оглавление
→ Once Upon a Time in Colombia
→ Диагноз, который изменил всё
→ Open Source — когда один пишет код, а миллионы делают его лучше
Великое начинается с малого
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) и Hacker News. Выходит первая статья на Real Python: FastAPI: The New Python Framework for Web APIs. В том же году репозиторий с FastAPI набирает 5000 звёзд и попадает в топ-10 лучших python-модулей.
FastAPI больше не просто эксперимент. Для многих это — революция.
Так на глазах у всего Python комьюнити зародился фреймворк, который потом стали использовать в Microsoft, Uber, Netflix и ещё куче IT-гигантов. FastAPI практически полностью вытеснил Flask, Sanic и отвоевал большую часть популярности у Django. Себастьян Рамирес стал одним из самых узнаваемых Open Source разработчиков и великодушным пожизненным диктатором FastAPI.
Но — как это часто бывает — рассвету предшествует тёмная ночь.
Once Upon a Time in Colombia
Согласно статье Keeping an Open-Source Mind Себастьян Рамирес родился в 1989 году в Колумбии.
С ранних лет он ненавидел монотонность. В пять лет, собирая пазл с одноклассниками, Себастьян раздражался из-за их метода «тыка» — они хаотично перебирали детали, пока не находили нужную. Тогда он предложил «распределить кусочки между всеми и проверять их системно». Даже мытьё посуды или кормление собак превращалось в задачу по оптимизации.
«Для меня это почти фобия. Если я делаю что-то простое и повторяющееся, я сразу хочу это ускорить или автоматизировать».
Рамирес однажды застал маму за сортировкой горы бумаг по алфавиту. Он предложил ей «аналоговую» версию алгоритма сортировки слиянием: разбил стопки на мелкие, отсортировал их, а затем соединил. Через 30 минут всё было готово.
«Мама была удивлена, но согласилась попробовать, — вспоминал он. — Тогда я понял, что знания — это сила, способная изменить мир даже в самых неожиданных ситуациях».
В семь лет Себастьян Рамирес бросил католическую школу. Не из-за лени или отсутствия интереса к учёбе — как раз наоборот. По словам учителей он задавал слишком много вопросов. В большинстве католических школ Медельина (Колумбия) религия занимала важное место в программе. Для пытливого ума Рамиреса вера стала почвой для бесконечных вопросов — но, к сожалению, преподаватели этого не оценили.
Однажды директор школы вызвал родителей Себастьяна и заявил, что их сын «сложный» ребёнок. Однако дома вместо наказания мальчика ждала похвала. «Ты молодец, — сказали ему. — Продолжай искать ответы».
Вскоре после ухода из католической школы семья Рамиреса переехала на небольшую ферму в Санта-Элене — деревушке в часе езды от Медельина. Родители решили, что домашнее обучение подойдёт Себастьяну и его младшей сестре Эстефании куда лучше.
Ферма, окружённая горами и лесами, стала идеальной средой для воспитания. Семья выращивала овощи, держала пять веймаранеров (порода охотничьих собак), нескольких кошек и двух коз, одна из которых была «подотчётна» самому Себастьяну — каждый вечер ему приходилось её ловить. Образование здесь было не теоретическим, а практическим: дети сажали деревья, мастерили будки для собак, ставили заборы и меняли лампочки.
«Это воспитало во мне любопытство к тому, как устроен мир», — вспоминает Рамирес.
В 1997 году он начал помогать родителям с продажами в их консалтинговой компании Grupo Una Familia, которая проводила тренинги для руководителей. К подростковому возрасту бизнес эволюционировал: теперь семья организовывала корпоративные тимбилдинги с музыкой, шутками и историями о ценностях компаний. Себастьян погрузился в звукорежиссуру и дизайн, часами зависая в студии у инженера Ченго и засыпая его вопросами.
«Он звал меня Губкой Бобом, потому что я впитывал знания, как губка», — вспоминает Рамирес.
В 15 лет Себастьян решил, что семейному бизнесу нужен не просто сайт, а «целая система управления клиентами» — с загрузкой фото и другими функциями. Родители всё ещё работали с бумажными записями и телефоном, так что он взялся за дело сам.
Себастьян начал с бесплатных онлайн-уроков, но быстро разочаровался в слепом копировании кода. Ему хотелось понимать, как всё устроено. Так он открыл для себя HTML, CSS, JavaScript и XML (попутно выучив английский). Возможности казались безграничными.
Чтобы учиться в горах, он нашёл у отца старый PalmPilot, загрузил в него документацию и создал подобие прото-Kindle — теперь стандарты всегда были у него под рукой.
«Я начал программировать, когда мне было пятнадцать. Я пытался создать веб-сайт для бизнеса своих родителей. Первым моим настоящим “кодом” стал JavaScript внутри HTML — модальное диалоговое окно (alert) с фразой “Hello World”. Я до сих пор помню, как обрадовался, увидев это маленькое окно с сообщением, и испытал чувство всемогущества от мысли, что это запрограммировал я … Я много лет боялся изучать какой-либо другой язык, думая, что сначала должен “хотя бы” освоить JavaScript. Но потом на одном из многих онлайн-курсов, которые я проходил, возникла необходимость использовать Python для управления искусственным интеллектом в Pac-Man и для некоторых других задач. Курс состоял из одного длинного туториала по основам Python, и этого было достаточно. Мне очень хотелось попробовать», — вспоминает Себастьян в своём интервью Рики Уайту.
В итоге сайт для родителей он создал — сложный, многофункциональный, идеальный с технической точки зрения. Но был нюанс: родители им не пользовались. Интерфейс оказался неудобным, а система — чужеродной для их workflow.
Тогда Себастьян осознал ключевую вещь: «Инновации и disruption — не самоцель. Они всего лишь побочный эффект решения реальных проблем».
Этот урок позже лёг в основу FastAPI — инструмента, который действительно нужен людям.
Диагноз, который изменил всё
В 2009 году 20-летний Рамирес начал чувствовать странную боль в правой части груди. Обследование показало шокирующую картину — рак. Опухоль размером с папайю сдавливала лёгкое и оказывала давление на сердце. Экстренная госпитализация, агрессивная химиотерапия. Свой 21-й день рождения Себастьян встретил в больнице, попросив медсестру спеть ему «Happy Birthday» во время очередного введения препаратов.
Болезнь перевернула его ценности. До этого он продолжал работать в семейном бизнесе, но месяцы борьбы за жизнь, невозможность нормально есть и пить заставили его задуматься.
«Я хочу решать по-настоящему важные проблемы. Те, что меняют мир».
После завершения лечения сестра показала ему Coursera — платформу онлайн-обучения. Для Рамиреса, всё ещё слабого, но жаждущего знаний, это стало откровением: «Я, парень из Колумбии, могу учиться у лучших университетов мира!»
Он с головой погрузился в курсы по алгоритмам, машинному обучению, криптографии и ИИ, одновременно взяв восемь дисциплин. «Это был мой собственный, слегка безумный университет», — смеётся он сейчас.
В 23 года, несмотря на обретённые знания, он всё ещё чувствовал себя «просто случайным парнем из Колумбии без диплома». Когда зять предложил ему присоединиться к своей компании по машинному обучению, Рамирес заколебался. Но в итоге согласился — и неожиданно обнаружил, что его навыки востребованы.
Умение решать проблемы и глубина знаний быстро сделали его незаменимым. Вскоре он возглавил отдел разработки — и именно здесь зародилась идея FastAPI.
Быстрый как формула
Наблюдая, как коллеги «изобретали велосипед» в каждом новом проекте, Рамирес вернулся к своей детской привычке: «Как это можно улучшить?»
Представьте, что вы стоите в длинной очереди в банке или местном МФЦ — в месте, где царит дух бюрократии. Пока ждёте, заполняете форму, но на середине осознаёте ошибку и приходится начинать сначала. Когда подходит ваша очередь, сотрудник за столом сонно и невнимательно проверяет ваш бланк — вручную, разумеется.
Себастьян Рамирес говорит, что именно так раньше выглядела разработка программного обеспечения: неэффективно, утомительно и с кучей ошибок. Он создал 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 (для всех веб-частей) и pydantic (для работы с данными) — оба имеют отличную производительность и функциональность. И наконец я приступил к реализации своего проекта с учётом стандартов, собранной обратной связи от разработчиков, а также некоторых дополнений (например, системы внедрения зависимостей)».
Open Source — когда один пишет код, а миллионы делают его лучше
В 2021 Себастьян устроился в Explosion AI, компанию, создавшую популярную платформу обработки естественного языка (NLP-библиотеку spaCy). Позже он решил покинуть компанию, так как планировал посвятить большую часть своего рабочего времени 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://github.com/fastapi/fastapi
https://www.sequoiacap.com/article/sebastian-ramirez-spotlight/
https://evrone.ru/blog/interviews/sebastian-ramirez-interview