Он понятия не имеет что делает и принимает судьбоносные решения от балды – а потом придумывает как их убедительно оправдать задним числом.

Он зависает на том, что не важно, но постоянно откладывает то, что важно.

Пока конкуренты завоевывают рынок – он полирует статус-бар и выбирает между двумя типами инфографики для отображения одной метрики в интерфейсе.

Ах да, забыл представиться – меня зовут Артур и разработкой моего продукта управляю я сам.

Коротко о том, что я делаю, иначе дальше будет непонятно – я делаю браузер для поиска работы. Да, прямо браузер, который устанавливается как, например, Хром и запускается с отдельного ярлыка. Внутри куча функций для поиска работы – автоотклики на вакансии на хедхантере, автоподнятие резюме, персональные исследования рынка (да, прямо под тебя анализирует твое резюме против запроса рынка, и говорит, что где поправить в резюме или в самом твоем рыночном предложении чтобы стать желанным кандидатом). Еще есть CRM для кандидата, чтобы трекать как состояние интересующего тебя сегмента рынка труда, так и состояние общения с конкретными компаниями, календарь интервью и дедлайнов тестовых заданий и прочее. Еще есть автопереписки с рекрутерами и автопрохождение тестов и анкет (на основе того, что ты написал в своем профиле). Еще есть компаньон для интервью, который в реальном времени транслирует на экран текстовые подсказки («веди разговор на эту тему», «ты с этим увлекся, тебя спрашивали о другом», «ты забыл упомянуть такой-то факт из своего опыта») чтобы ты не терялся и смог показать себя в лучшем свете – не суфлер, а модератор беседы (хотя его и суфлером можно сделать, технически это не проблема).

Итак, вы ознакомились с продуктовым лендингом, теперь у меня большой охват, хи-хи.


Развилки

До сих пор мне везло в том смысле, что решения складывались сами. Почему браузер? Потому что сначала было расширение, но MV3 душил фоновую работу, если окно не развернуто на весь экран, победить это в рамках расширения оказалось невозможно, и я собрал свой браузер на Electron, где побочно открылась куча ранее недоступных возможностей. Звучит как продуманный архитектурный выбор, а на деле я просто пошел единственной дорогой, которая в тот момент вела хоть куда-то, и уже потом, задним числом, обнаружил, что получилось неплохо.

А сейчас передо мной развилки, где ни один путь не выглядит очевидным и где каждый выбор либо не откатывается вовсе, либо откатывается по цене нескольких месяцев жизни.


Нет никакого облака, это просто чей-то чужой компьютер

Я тут хвастался, что у меня все локально, данные не уходят на мои сервера, ты логинишься в свои аккаунты на своей машине, а не на моей. Что ты вообще все видишь. Типа я шифропанк.

Так-то оно так. Только сервера у меня нет не потому, что я против серверов - сервера у меня нет потому, что у меня нет сервера. Это просто так исторически сложилось - я же делал все изначально для себя, а не как коммерческий продукт. Все выросло из браузерного расширения, а расширение по определению живет на машине пользователя — вот я по этой колее и еду. Идеологию к ней я дописал позже, когда пришло время объяснять, что я такое сделал и почему это хорошо.

Но раз уж так вышло, посмотрим, что из этого случайно получилось.

Ты логинишься в хедхантер сам, со своего компьютера, со своего IP и своей сессией, тогда как серверные решения устроены иначе: ты отдаешь им доступ, и дальше в твой личный кабинет ходит чужая машина, мало ли она там наворотит. Нагнетать тут не буду, цена вопроса невелика — ну прилетит ограничение на аккаунт, ну заведешь новый профиль за минуту, это не трагедия.

Меня беспокоит другое. Поиск работы — одна из самых унизительных вещей, что случается с человеком за годы, и в профиле соискателя лежит то, чего он не показывает никому: сколько он просит и на сколько на самом деле готов подвинуться; что он пишет рекрутеру, когда очень надо; сколько раз ему не ответили; как он отвечает на анкетный вопрос «почему вы ушли с прошлого места»; как он вообще себя описывает, когда очень старается понравиться.

Я эти данные не собираю просто потому, что складывать их некуда, да и незачем было до сегодняшнего дня.

Проблема в том, что защита персональных данных волнует только меня и еще трех с половиной параноиков на Хабре, а за пределами Хабра не волнует примерно никого. Привычки думать об этом у людей нет, весь пользовательский софт давно живет на чужих облаках. Я объясняю человеку что делаю браузер — каждый второй не понимает, что такое браузер, а кто понимает, тот не понимает, зачем делать это в формате браузера, и к концу разговора я уже и сам не очень понимаю. Пользователь приходит не с вопросом «где хранятся мои данные», пользователь приходит с вопросом «а оно найдет мне работу».

Теперь про то, чего мне стоит эта случайно доставшаяся мне добродетель.

Выключил компьютер — все встало. Отозвать доступ за неуплату нормально я не могу: с сервером все просто, оплатил и включил, не продлил и выключил, а у меня продукт живет на машине пользователя и слушается пользователя, а не меня, так что придется либо мастерить какую-то самодельную DRM, либо не знаю что. И, наконец, у меня нет вообще никакой аналитики: я не знаю, запускают ли люди то, что купили, сколько вакансий обработали, где у них сломалось и на каком экране они бросили.

Вот это самое дурацкое. Я сделал человеку CRM, чтобы он видел свою воронку, и сделал ему аналитику рынка, чтобы он не гадал, а понимал; я построил целый инструмент против слепоты там где раньше она была нормой — и сижу в полной слепоте там, где все для борьбы со слепотой уже изобретено.

Ну и что теперь, переписывать все на серверную архитектуру? Это месяц работы по самой оптимистичной оценке, а по реалистичной — не месяц, и это не считая новой точки отказа, которую я сам себе и приделаю. Цену я поменяю за вечер, интерфейс перерисую за неделю, а вот архитектура исполнения — это не настройка, которую можно подкрутить обратно, это другой продукт.

Плюс, как только у меня появляется сервер, на него немедленно начинают ложиться чужие персональные данные, и это уже 152-ФЗ со всеми его радостями: оператор, уведомление, согласия, локализация, требования к хранению, ответственность. А я один, у меня нет ни юриста, ни безопасника, ни просто второго человека, который посмотрит логи, пока я сплю.

Сейчас худшее, что может случиться с моим продуктом, — у кого-то не заработает и тот попросит деньги назад. С сервером худшее становится сильно хуже, и отвечать за это я буду уже перед государством (но это не изначальная идеология, а я ищу плюсы в текущей получившейся реализации).


Деньги  - брызги

Делаю ли я это для денег? Вообще да, но не для того чтобы построить деньгозарабатывательную империю — мне просто хочется купить квартиру. Если условный Яндекс Браузер выкупит мои наработки, я буду только рад, да я и в опенсорс все выложить не против, но у меня семья, а значит, мне положено зарабатывать, а не мечтать.

Давайте порассуждаем о монетизации продукта.

Как я говорил – продукт для тех, кто ищет работу. Иногда работу ищут уже имея работу – но чаще работу ищут безработные. А у безработных нет дохода, плохое настроение, нет ресурса, они проедают свои накопления и хотят быстрее почувствовать почву под ногами. Я хорошо знаю это состояние.

И вот вопрос – как человеку в беде продать инструмент для облегчения его положения?

Сам того не зная, я выбрал довольно дурацкую нишу – продукты для поиска работы (курсы, автоотклики, консультации, тренажеры и прочее) обычно зарабатывают на том, что клиент НЕ находит работу быстро. Текучка клиентов в таком деле огромная – не такая как в кладбищенском бизнесе, конечно, но тоже большая - и монетизации через повторяющиеся платежи создает для продавца мотивацию продолжать доить клиента столько сколько можно, ведь успех клиента (нахождение работы) – это потеря для продавца (больше не платят). Если продукт работает хорошо и находит человеку работу – любая модель оплаты по факту становится обычным разовым платежом. А если продукт красиво обещает и дает надежду что вот-вот, при этом умело прогревает на повторный платеж – тогда заработок стабильный. Да и по плательщикам ситуация странная – тот, кто больше всех нуждается в продукте – меньше всех в состоянии за него заплатить.

Подписка? Хедхантер сам так делает и так делают все игроки рынка. Но это же человек в уязвимом положении, у него разве есть деньги на еще один постоянный платеж? С другой стороны, если он разделит свою среднюю зарплату на количество дней и прикинет во сколько ему обходится один день без работы – может, наоборот, будет рад заплатить лишь бы скорее выйти из этого положения? Плюс тут открывается целый мир возможностей – пробные периоды, freemium, уровни возможностей в зависимости от тарифа и все такое.

Разовый платеж? Звучит старомодно, так сейчас хоть кто-то делает? Я помню, диски с играми покупал в детстве – это последний раз, когда я такую модель видел. Разовый платеж = нет денег на развитие = продукт умирает = не помогает вообще никому. Но, с другой стороны, если продукт хорош – у нас и так де-факто разовый платеж, какая бы модель формально ни была.

Outplacement - компания платит чтобы уволенные сотрудники нашли работу. Звучит красиво, но компания неспроста сокращает сотрудников, у не самой денег нет. Да и B2B-продажи – это вообще отдельный мир, если я туда пойду, это затормозит меня еще на полгода минимум. Но тут в целом больше денег и там же лежит и самый интересный потенциальный пивот, потому что рекрутер решает ту же задачу с другой стороны — отбор из множества сущностей на естественном языке, — и мой инструмент разворачивается к нему с минимальными доработками. Не знаю.

Success fee, процент от будущей зарплаты по факту трудоустройства, — мой личный фаворит и самый честный способ, при котором я зарабатываю тогда же, когда выигрывает клиент. Беда в том, что модель неконтролируемая: клиенту достаточно сказать, что работа не нашлась, и как я докажу обратное, а главное, как я взыщу деньги с человека, которому больше не нужен.

Пока писал это – понял что для некоторых моделей монетизации мне нужно знать, что происходит у пользователя, а мы уже выяснили, что я не знаю о нем вообще ничего и по своей же архитектуре знать не могу. Получается смешная вещь: развилка про сервер, которую я считал технической, на самом деле определяет, какие модели монетизации мне в принципе доступны, и я обнаружил это только когда сел писать этот текст. Впервые за все время разработки, ага.


«На моем компьютере все работает» ©

Автоотклики и автоподнятие резюме работают отлично и заодно вытягивают активность профиля, а с ней и его видимость для рекрутеров. Анализ рынка, CRM, автопереписка с рекрутерами и их ботами, подсказки на экране во время интервью — все это тоже работает, на обоих моих компьютерах. Работает же оно потому, что я знаю, какую менюшку открыть первой, а какую второй, знаю, где надо подождать минутку, пока прогрузится, знаю, чего делать нельзя, потому что однажды уже сделал, и знаю, какой таймаут здесь нормальный, а какой означает, что что-то пошло не так. Нигде из этого не записано, это все в моей голове.

А теперь посадим живого человека пользоваться продуктом, и начнется интересное.

Первая проблема — интерфейс, который выглядит как инженерный калькулятор: кнопки, поля, состояния, местами разъезжающаяся верстка. Некрасиво, непривычно, показывать людям неловко, но это, честно говоря, переживаемо: уродливое покупают каждый день, и весь наш энтерпрайз стоит на софте, который выглядит куда хуже.

Вторая проблема серьезнее: без меня оно может сломаться. Не упасть с понятной ошибкой, а сделать не то, причем человек даже не поймет, что произошло, потому что он не знает, что здесь надо было подождать, а вон то нельзя открывать, пока не закрыто вот это. Продукт, который работает только когда автор стоит рядом и подсказывает — это не продукт, а ерунда какая-то.

Вот это надо чинить перед релизом. Но довести до «не стыдно» целиком — минимум месяц-два. Денег у меня уже мало, и если идет задержка, то я возвращаюсь в найм и проект встает. Даже считать не надо, там все сходится в одну сторону.

Ну и в предыдущей статье я писал, что полировать приятно. Ты подвинул элемент — он подвинулся. Поправил цвет статуса — стало лучше. Обратная связь мгновенная и всегда положительная, ты каждый вечер ложишься спать чуть более хорошим инженером. Я про это уже писал и все равно попался. Пока я полирую — я не знаю нужна ли полировка вообще. Может быть никому не надо. Полировка — это отсрочка приговора, оформленная как полезная работа.

Поэтому я думаю, что несмотря на то, что на мой машине все работает - в релиз я включу меньше фич чем сделал, а остальное, при наличии хоть какого-то спроса, дошлифую и добавлю с обновлениями. В релиз пойдет автооткликалка, автоподнятие резюме, поддержка активности и CRM с исследованиями рынка и автопрохождение тестов с автозаполнением тестовых анкет. А автопереписки с рекрутерами на хедхантере и в мессенджерах, компаньон для интервью, поддержка новых платформ и новых ИИ-провайдеров пойдут в обновления. Все остальное выкатываю как есть, с разъезжающимися элементами и непонятным интерфейсом.


Защищать нечего

В первой своей статье я написал, что каждый второй обещает навайбкодить такое за день, что проблема принципиально нерешаемая и я уже смирился. Смирился, ага. Давайте разберемся, с чем именно.

Все нормальные компании защищают исходники. Приватные репозитории, доступы по ролям, NDA, юрист на зарплате. У меня из этого нет ничего — и дело не в том, что я такой принципиальный. Просто мой продукт это Electron-приложение, которое лежит на диске пользователя. Asar распаковывается одной командой, обфускация и байткод — вечер работы для мотивированного человека с ИИ.

И тут я наступаю на те же грабли, что и в разделе про сервер. Смотрите, что выросло из одного решения, принятого от балды, потому что MV3 душил фоновую работу, а другой дороги я тогда не видел:

  1. я не знаю, что происходит у пользователя

  2. я не могу нормально отозвать доступ за неуплату

  3. я не могу защитить код

Три следствия, которые до сегодняшнего дня я считал тремя разными проблемами. Но это следствия одной проблемы, и я создал ее, когда искал, куда бы вообще переехать с расширения, которое убивают хромовские MV3-алгоритмы.

Но если код скопировать можно, то что вообще является активом соло-разработчика?

Остается то, чего в коде нет – доменная экспертиза и отладка. В моем случае - мелочи и нишевые знания типа того что список вакансий нельзя парсить с начала страницы, а нужно промотать до конца, чтобы все прогрузилось. Что на прогрузку текста вакансии нужно минимум столько-то миллисекунд. Что при малом таймауте капча на хедхантере приходит раз в семьсот вакансий, а при достаточно большом не приходит вообще. Что в чатах с работодателями такие-то фразы являются стандартными хедхантеровскими заготовками для таких-то ситуаций, даже если статус (отказ, приглашение и прочее) рекрутер забыл проставить. Ничего из этого не записано ни в какой документации, включая мою.

Человек, который навайбкодит мою автооткликалку за день, получит не мой продукт, а мой прототип многомесячной давности, и дальше ему предстоит ровно тот же путь отладки и «почему оно ничего не отправило». Разница между нами не в коде, а в том, что я знаю, где оно ломается.

Но это защита скоростью, а скорость — это просто фора. Она работает до тех пор, пока я быстрее, и заканчивается в тот день, когда я заболел, вышел в найм или просто устал. Компания, которая защищает исходники, защищена и когда ее сотрудники спят. Я защищен, только пока работаю.

С другой стороны, в эпоху ИИ и вайбкода, имеет ли смысл вообще защищаться и закрывать исходники продукта, или открытость сегодня дешевле в поддержке и лучше как канал дистрибуции.

Мысль такая: если мое единственное преимущество — скорость, свежий взгляд и какой-никакой продуктовый вкус, то, может, и строить надо не бизнес, а поток. Революцию за революцией. Сделал, выкатил, показал, что так можно, — и пошел дальше. А деньги придут в день acquihire. В отличие от стабильного заработка, мне это, без ложной скромности, легко дается - придумать новое и за месяц сделать то, на что смотрят и говорят «а так можно было». Это я пишу только об одном проекте публично, а параллельно у меня еще два более масштабных, один почти готов. Кому покажу – говорят вау, не видел такого, хотел бы попробовать (хотя легко восхищаться пока с тебя не спрашивают деньги за это). А вот стабильно зарабатывать деньги мне тяжело, и я за все эти годы так в этом и не преуспел. Смутьян я, а не коммерсант.

А теперь возьму свой же инструмент из прошлой статьи — дописывать к совету пропущенную строчку — и применю к совету, который даю себе сам. «Делай революцию за революцией» → при наличии запаса денег для содержания семьи между революциями.

Близкие говорят: не выпендривайся, делай нормальный бизнес. А я хочу порхаааааать как бааааабочка.

И это разные стратегии – либо делать нормально, защищать интеллектуальную собственность, тарифицировать и нормально зарабатывать, либо опенсорсить, отдавать в мир, мчаться вперед тараня барьеры и раздвигая границы того, что считалось возможным.


Послесловие

Тот некомпетентный идиот, который управляет разработкой моего продукта, конечно, примет какие-то решения, но это очень неочевидно и неинформированно. Он рискнет - не сидеть же и выбирать годами - но ему страшно тем не менее.

Единственный неоспоримый плюс этой ситуации – потренировавшись на кошках он перестанет быть некомпетентным идиотом и станет компетентным идиотом.

Если вам есть что сказать по любому из вопросов - скажите, я правда буду благодарен. Остаться на локальном исполнении, приняв слепоту и невозможность нормально отзывать доступ, или все-таки заводить сбор аналитики со всем, что к нему прилагается? Как брать деньги за инструмент у человека, у которого сейчас денег как раз и нет, — так, чтобы не превратиться в очередного продавца надежды, которому невыгодно, чтобы у клиента получилось? Имеет ли ценность код и исходники в наше время?

А может вам интересно следить за страданиями юного Вертера в прямом эфире? Если да, то залетайте на канал https://t.me/nn_career, присоединяйтесь к миллионной армии поклонников моего творчества, жду ваши дизлайки и отписки. Я там, правда, в последние пару недель не постил особо – но отныне и впредь хочу вести в формате журнала с ежедневными (или почти ежедневными) апдейтами о том, как я чиню старую проблему, добавляя две новых.

Комментарии (2)


  1. danilovmy
    03.08.2026 07:08

    Извините, не удержался:

    Разработкой моего продукта управляет некомпетентный идиот, и это я.


    1. Ahtuhka Автор
      03.08.2026 07:08

      Именно))