Привет!
Меня зовут Алексей Хрисанфов. В этой статье я хочу рассказать почему и как ваши pet-проекты могут стать ключом к развитию вашей карьеры и почему нельзя недооценивать важность pet-проектов.
Что такое эти ваши pet-проекты?
Pet-проекты есть у многих разработчиков (и не только у них) и чаще всего это что-то для души и в свободное от работы время, когда можно реализовать свои идеи и реализовать их по-своему, а не так, как требует менеджер.
Такие проекты часто используются в качестве тестовых по обкатке новой технологии или же для получения необходимых навыков полного цикла разработки - от идеи до проектирования и готового проекта с подключенным CI, тестами и бекапами. Кто-то так наполняет свое резюме перед устройством на работу.
Но нельзя не упомянуть и бесчисленное количество мемов, связанных с неоконченными проектами. Думаю, это чувство знакомо многим, когда загорелся идеей, спроектировал все в голове, перенес в код и... перегорел, оставив недоделанными 5-10-20%. Или что еще хуже, просто загорелся новой другой идеей и пошла новая итерация и +1 заброшенный pet-проект.
Есть немало случаев, когда pet-проекты все таки доводятся до конца, публикуются и становятся успешными бизнесами.
Например ElasticSearch, который изначально планировался как база и поисковая система для рецептов жены основателя Шей Бэнона. Или Twitter Джека Дорси, прототип которого был написан на хакатоне. К этому списку можно добавить и GitHub и Slack.
К плюсам таких проектов можно отнести полную свободу действий, отсутствие сроков и иных творческих рамок и отличную возможность отвлечься от рабочих и порой рутинных задач.
А вот времени и сил на такие проекты часто не хватает, в силу того, что они, в основном, в свободное от основной работы время.
Со своей же стороны я рекомендую доводить до конца жизнеспособные проекты.
Моя true стори
У меня есть не мало своих pet-проектов, часть из которых благополучно забыта в папке Projects, часть даже не доделана, а часть доведена до production и работает по сей день.
Но начнем сначала. В один из декабрьских вечеров несколько лет назад меня посетила мысль, что я хочу понять, как много времени и на каких сайтах я провожу. Быстрый поиск привел меня к магазину Google Chrome и нескольким расширениям, которые мне не понравились по разных причинам. А не сделать ли свое расширение, подумал я? Мне было интересно, как расширения работают, что у них под капотом и как происходит взаимодействие с браузером. Разберусь и сделаю полезное и удобное (по крайней мере для себя), хоть и не уникальное расширение.
Решение было принято, энтузиазм был, и в течение нескольких недель первая версия была готова и опубликована в магазине Chrome. Регистрация в магазине кстати, что тогда, что сейчас стоит все также 5$.
Далее пойдут некоторые технические детали.
Расширения можно писать на JavaScript (TypeSctipt) и использовать привычные нам фреймворки (Vue, Angular, React, etc). Причем, весь исходный код любого расширения можно увидеть самостоятельно. Да, он чаще всего минифицирован, но открыт. Обфускация запрещена правилами магазина Google Chrome. Для любого расширения должен быть сформирован файл манифеста (текущая версия 3), в котором мы указываем массу параметров нашего приложения и все разрешения, которые пользователь увидит при установке и должен подтвердить, если хочет использовать расширение.
В целом, разработка расширения не сильно отличается от разработки любого фронта, с тем лишь исключением, что мы работаем только внутри контекста браузера. Любое, даже самое незначительное обновление требует времени на одобрение со стороны магазина, поэтому это нужно всегда иметь ввиду. Т.е. когда нашел критический баг и быстро его пофиксил, не получится расширения быстро обновить у всех пользователей.
Добавление новых permission после публикации потребует дополнительного подтверждения от пользователей, а они этого очень не любят, прямо очень. Поэтому все возможные разрешения лучше продумать сразу. Но это уже относится к специфике работы магазина Chrome.
Очень приятной стороной расширений является то, что их можно поставить на любые браузеры. И самое главное, что любой магазин расширения (Edge, Chrome) сразу выполняет некоторую работу по продвижению нашего продукта. Для этого надо указать ключевые слова (только в Edge) и написать SEO оптимальное имя и короткое описание внутри манифеста и большое описание в магазине с указанием всех возможностей нашего приложения. Т.е. пользователи ищут что-то в гугле и он показываем им релевантные ответы со ссылками на наше расширение в магазине. Очень удобно.
Продолжение true стори
В течение нескольких недель я написал первую версию приложения и опубликовал ее в магазине Chrome. Название придумал не слишком хорошее и цепляющее, но потом менять его уже было поздно.
Знакомьтесь, расширение Web Activity Time Tracker. Расширение отслеживает сколько времени вы проверили на любых сайтах, показывает детальную аналитику, позволяет блокировать любые сайты, шлет уведомления в конце дня и еще несколько других полезных функций.
Забрасывать проект я не собирался, поэтому в свободное от работы время занимался его доработкой, развитием и продвижением. Добавил в различные каталоги программ, сделал пост на ProductHunt, рекомендовал на Reddit и т.д. Денег на маркетинг потратил ровно 0. Только время.
Сделал репозиторий сразу open-source. Проект рос органически, получал отзывы, запросы на фичи. На Github люди стали писать issue со своими предложениями, некоторые сами улучшали функционал и отправляли pull request. Я проверял, мы обсуждали варианты решения и после этого публиковал изменения в магазине google. В этом вся прелесть таких открытых проектов, которые дают возможность разработчику поработать вместе с людьми с разных стран над интересным вам проектом.
Спустя какое-то время прикрутил донаты и на мое удивление люди скидывали мне на кофе через BuyMeACoffee. С лихвой покрывал свое хобби с этих денег.
Таким образом проект рос органически, приносил мне моральное удовлетворение от того, что люди пользовались, довольны проектом, и он решает те задачи, которые пользователи хотят решить. Короче, win-win.
Cейчас активных дневных пользователей более 32000 в chrome и около 6000 в edge, есть лэндинг wetracker.online. И очень хороший рейтинг.
Развитие, комьюнити, польза для конечных пользователей, классные рейтинг и много хороших отзывов это конечно хорошо, но вернемся к теме поста, причем здесь новые возможности и развитие карьеры? Почти два года назад меня нашла одна компания из США, которая имеет похожие продукты и которая хотела бы приобрести мой проект, а значит и аудиторию и нанять меня.
После не быстрой переписки, встреч в zoom, согласования всех нюансов, было принято решение. К сожалению, из-за событий 2022 года, проект они не приобрели в силу возможных репутационных рисков, но работу я получил.
Говоря про новые возможности, не могу не отметить работу с многонациональной командой. После работы в российских командах, это определенно новый и интересный опыт и другой подход к сотруднику, к его времени, его работе. Понимаю, выборка ни разу не репрезентативная и это всего лишь одна компания, но определенно заставляет задуматься, что и так можно работать.
Как потом я узнал, мой кейс абсолютно не уникальный случай. Таких примеров можно найти массу, когда люди на своем энтузиазме делают проект, развивают его, причем он не обязательно должен быть коммерческим. А потом приходят большие дяди, покупают проект и нанимают этих же людей.
Лично знаком с ребятами из Турции, которые вдвоем сделали бесплатное приложение для android, развивали его в свободное время, и спустя какое-то время их приложение купили и они получили очень вкусный оффер.
Важно понимать, что нанимают не просто +N сотрудников в компанию, а нанимают заинтересованных с горящими глазами людей, которые готовы и хотят работать и развивать проект, предлагать множество идей и вариантов развития продукта.
Можно возразить, что не все захотят продавать свой продукт большим компаниям, которые могут потом из него сделать непонятно что. Конечно же, и такое возможно. Но здесь речь идет о потенциальных возможностях, которые могут открыться перед разработчиком. А вот упускать их или нет это уже дело каждого.
Кроме вышеописанного варианта, можно просто продать расширение. Мне регулярно поступают такие предложения. А дальше уже идут переговоры по цене.
Еще одна попытка
Год назад я предпринял еще одну попытку создания простого, но полезного инструмента. И тоже не уникального. Буквально за пару дней я написал небольшое расширение Clean YouTube, которое удаляет многие компоненты на страницах YouTube. Например shorts, комментарии, рекомендованные видео (а это просто черная дыра по поглощению времени 😡), строку поиска, лайки, подписки и т.д. И как киллер фича сделал режим Clean Mode, когда на странице отображается только видео плеер. Сам этой фичей пользуюсь постоянно и она правда помогает экономить время и не отвлекаться лишний раз на чтение комментариев или просмотр похожих видео.
Совсем недавно этому расширению исполнился год, поэтому можно повести итоги. Это 7к активных пользователей и 4,9 рейтинг. 😍
И все пользователи - это только органический поиск через гугл и внутри магазина. В целом, неплохой результат при минимуме усилий.
Буду рад подискутировать на эту тему. И оставлю здесь свой телеграмм канал @releasetomorrow. Там я делюсь своими мыслями о разработке, рассказываю о развитии других своих проектов, один из которых продал в этом году.
Автор: AlexStigmat