Как open source помогает сделать крутую карьеру в ИТ: кейс сооснователя Reforma
Кейсы 8 мая 2026

Как open source помогает сделать крутую карьеру в ИТ: кейс сооснователя Reforma

Далее

Максим Качурин — CTO Flexbe и сооснователь Reforma. Параллельно с работой над двумя продуктами он успел стать core contributor нескольких крупных open source-проектов: реализовал шестую версию фреймворка Riot.js, написал с нуля рабочий адаптер SolidJS для Storybook — инструмента, которым пользуются Google и IBM, — а также добавил browser-only режим в Eclipse Theia. В интервью он рассказывает, как устроена механика участия в open source и что стоит за каждым из этих проектов.

В 2015 году вы пришли во Flexbe разработчиком. Расскажите, с чего всё начиналось?

Когда я пришёл, Flexbe представлял собой небольшую команду с идеей сделать простой инструмент для создания лендингов. За десять лет это выросло в полноценную платформу для создания сайтов: сейчас 35 000 активных опубликованных проектов в 56 странах. Я прошёл путь от разработчика до CTO — отвечаю за архитектуру, инфраструктуру и команду. Параллельно я сооснователь Reforma — стартапа, где мы строим среду разработки с полноценной IDE прямо в браузере. Пишу технические статьи на DZone и Dev.to — про инструменты, с которыми работаю сам.

Максим Качурин, фото предоставлено спикером

Как вы пришли в open source?

Весь open source, в котором я участвую, вырос из конкретных рабочих задач. Сталкиваешься с проблемой, ищешь решение, находишь существующий проект — и обнаруживаешь, что он не закрывает то, что нужно. Дальше либо обходишь это, либо идёшь чинить. Чтобы стать контрибьютором, не нужно никуда подавать заявку — достаточно начать отправлять pull requests. Если их принимают, со временем нарабатывается доверие со стороны команды проекта, и в какой-то момент тебя могут пригласить официально.

Большинство крупных open source-проектов финансируются компаниями, которые их используют. Google, например, регулярно поддерживает Storybook, потому что его активно используют команды разработчиков Google. Деньги потом идут на нужды сообщества или распределяются между участниками. Но я в таких программах не участвую. Open source для меня — это способ решать инженерные задачи, которые иначе не решаются. Нет подходящего инструмента — делаешь его сам и публикуешь, потому что другие разработчики столкнутся с той же проблемой.

Riot.js — один из первых проектов, в котором вы стали постоянным контрибьютором. Почему вы заинтересовались проектом?

В 2015 году, когда мы только начинали строить Flexbe, нужно было выбрать фреймворк для интерфейса. React тогда был в версии около 0.10, то есть нестабильной, и было не очевидно, что будет дальше. JSX-синтаксис тогда вызывал ожесточённые споры. Мы смотрели на разные варианты и остановились на Riot.js. Он был минималистичным и быстрым, идеально ложился под наши задачи. На нём мы оставались долгое время — сейчас в проекте больше тысячи компонентов на Riot.

По мере работы с фреймворком я начал замечать места, которые нас не устраивали: что-то приходилось обходить, что-то не работало так, как нужно. Я начал дорабатывать фреймворк под наши задачи и отправлять изменения в репозиторий. В какой-то момент главный мейнтейнер проекта Gianluca Guarini пригласил меня в команду — сделал членом организации. Так я стал core contributor.

Что конкретно изменилось в проекте с вашим участием?

Я реализовал шестую версию фреймворка — весь релиз с пятой на шестую состоит из моих изменений. Кроме этого, множество моих идей были реализованы в последующих версиях. С тех пор фреймворк принципиально не менялся: он достиг того состояния, которое задумывалось изначально. Минимальное стабильное ядро, на котором можно строить что угодно. У нас в Flexbe на нём работает больше тысячи компонентов уже десять лет.

Помимо кода, я вложил много времени в сообщество: отвечал на вопросы в GitHub и Discord, помогал разработчикам разбираться с проблемами, участвовал в обсуждениях архитектуры и стратегии развития фреймворка. Это работа, которая не видна в коммитах, но именно она помогает сформировать и удержать сообщество вокруг проекта.

Как вы оказались в Storybook?

Storybook — стандартный инструмент для разработки UI-компонентов в изоляции. Его используют Google, IBM и большинство крупных технологических компаний. В какой-то момент мы начали переводить Flexbe на SolidJS — это фреймворк с JSX-синтаксисом, как у React, но быстрее и без накладных расходов и специфики виртуального DOM. Нужно было поднять Storybook, чтобы синхронизировать компоненты между дизайнерами и разработчиками. Адаптера под SolidJS, который бы работал, не существовало.

Storybook изначально создавался под React и ориентирован на него. Майкл Шилман, CEO Storybook, разработал внутри платформы механизм для подключения других фреймворков и сам же сделал несколько шаблонных адаптеров с базовым функционалом — в том числе под SolidJS. Но поддерживать их ресурсов у команды не хватало. Storybook продолжал обновляться, адаптеры — нет. По факту запустить Storybook вместе с SolidJS было невозможно.

Поэтому я создал свой адаптер с нуля. Предусмотрел все особенности рендеринга SolidJS, довёл функционал до полного соответствия React-версии: hot reload, встроенное тестирование через Vitest и Playwright, автоматическая генерация документации из TypeScript-типов, поддержка стандартных аддонов Storybook.

После этого связался с командой Storybook, чтобы продемонстрировать свою работу. В итоге они передали мне управление официальным npm-пакетом под SolidJS и добавили интеграцию на главную страницу в раздел Framework, в документацию и во встроенный в Storybook установщик. Так я стал единственным и официальным мейнтейнером Storybook-SolidJS. Сейчас он имеет 120 000 установок в месяц, а за последние полгода количество скачиваний увеличилось в пять раз.

После Storybook вы также внесли значительный вклад в Eclipse Theia. Расскажите, что это и зачем вам это понадобилось?

Reforma — стартап, который мы строим параллельно с Flexbe. Идея в том, чтобы совместить AI-генерацию кода с полноценным визуальным редактором: пользователь описывает задачу, AI пишет код, но дальше можно редактировать результат напрямую, как в конструкторе сайтов — без необходимости каждый раз писать инструкцию в чат ради смены цвета кнопки. Для удобной работы с кодом нужна полноценная IDE в браузере.

Theia — open source IDE от Eclipse Foundation. Её используют Red Hat, Samsung, IBM, Ericsson и другие компании. На ней, например, построена Arduino IDE и ряд других инструментов. Она позволяет разработать свою собственную IDE под ваши задачи. Нам нужен был конкретный режим: browser-only, когда IDE полностью работает в браузере без бэкенда на сервере.

Формально Theia могла быть запущена без бэкенда, но не функционировал даже базовый функционал: файловая система не работала (а без неё IDE не может открывать и сохранять файлы), не работал поиск по файлам, не работали расширения. В репозитории Theia на GitHub это числилось как открытый тикет с 2019 года — задача, которую никто не взялся решать.

Какой вклад вы внесли в продукт?

Начал с файловой системы — реализовал поддержку через OPFS, браузерный файловый API. Параллельно написал и опубликовал модуль opfs-worker, который решает проблемы совместимости OPFS с разными браузерами. Отправил merge request в Theia, прошёл официальное ревью Eclipse Foundation — изменения приняли и выпустили в новой версии. Потом реализовал поиск по файлам — merge request также прошёл ревью и вошёл в следующий релиз. Сейчас на ревью висит поддержка расширений VS Code: они архитектурно завязаны на бэкенд, и перенести их в browser-only режим — технически нетривиальная задача. Кроме этого, я исправил ряд визуальных проблем и багов, из-за которых интерфейс выглядел небрежно.

Вы ведёте два продукта и при этом участвуете в нескольких крупных open source-проектах. Как удаётся это совмещать?

Всё это — свободное время: пара часов в будни, иногда выходные. Ни Riot, ни Storybook, ни Theia не были частью рабочего графика, хотя все три выросли из реальных рабочих задач. Все три начались одинаково: была конкретная задача, существующий инструмент её не закрывал — и я шёл его дорабатывать. Свободное время просто оказалось для этого единственной возможностью. И это не единственный open source, в котором я участвую: я также поддерживаю ещё десяток других небольших проектов.

Обложка: downloaded from Freepik