ГлавнаяБлогЧто на самом деле сломано: 8 проектов, которые это проверили
Карьера

Что на самом деле сломано: 8 проектов, которые это проверили

Узнайте, как один и тот же вопрос «что на самом деле сломано?» породил 8 проектов — от моста WordPress до CRM для отопления. Начните задавать его прямо сейчас.

Al
Редакция Algolitalgolit.ru
12 мин чтения10 июля 2026 г.

Что на самом деле сломано: 8 проектов, которые это проверили

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

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

Экспонат 12 — Граф

Экспонат 11 закончился тем, что я всё ещё стою в классе четыре дня в неделю, помогая чужому ребёнку сосредоточиться на чужой работе. Это не метафора. Это реальное расписание.

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

Поэтому я перестал писать временную линию и построил граф. Узлы — навыки, узлы — роли, рёбра — то, что их на самом деле связывает. Тот же инстинкт, который заставил меня сомневаться в CMS или ORM, теперь применялся к собственной карьере. Оказалось, что бессвязное CV — это проблема рендеринга, а не контента. Данные были в порядке. Визуализация врала.

Я пока не знаю, читается ли граф лучше, чем одиннадцать маркеров. Знаю, что он читается правдивее для меня. Работа школьного помощника покрывает часть месяца. Граф — это то, чем я на самом деле являюсь. Я всё ещё пытаюсь заставить эти два факта перестать противоречить друг другу.

Экспонат 13 — AJC Bridge

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

Не миграция. Мост. Я построил плагин, который цепляется за событие публикации WordPress и отправляет контент в Hugo, Astro или Jekyll — в зависимости от того, что использует целевой сайт. Пиши один раз в знакомом инструменте, публикуй везде, где аудитория на самом деле читает.

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

Я выставил это на конкурс GitHub Copilot CLI. Топ-7%, призёр, топ-25 из 400+. Не потому что идея была оригинальной — потому что большинство участников решали техническую проблему, а этот сохранил личный рабочий процесс вместо того, чтобы его выбросить.

Экспонат 14 — Память, которой dev.to не даёт

Встроенная статистика dev.to показывает просмотры, реакции, комментарии — на пост, прямо сейчас. Она не показывает, что было три месяца назад, если вы не сделали скриншот. Она не показывает, какая статья всё ещё тихо набирает читателей год спустя, или какая ветка комментариев превратилась в нечто, заслуживающее продолжения. У платформы нет памяти. Есть только настоящее время.

Я хотел знать свою собственную историю. Начал с малого — локальные скрипты, SQLite, вытягивание статистики по расписанию и просто хранение. Без плана, кроме «не потеряй эти данные». Малое работало, пока не перестало. Когда я захотел запрашивать историю — тренды, сравнения, какие статьи хорошо стареют — SQLite на ноутбуке перестал хватать. Я перестроил всё на реальный стек: FastAPI, PostgreSQL с pgvector, всё контейнеризировано и запущено на собственном VPS. Сначала попробовал Superset для дашбордов. Бросил — кривая обучения стоила больше, чем результат. Streamlit сделал ту же работу быстрее и дешевле. Большую часть построил вместе с GitHub Copilot CLI, относясь к агенту не как к автодополнению, а как к второй паре рук для частей, которые я уже знал, как специфицировать, но не хотел набирать дважды.

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

Экспонат 15 — Польский ботнет

Платформа аналитики dev.to работает на Cloud Run. В один месяц счёт подскочил. Не немного — достаточно, чтобы заметить сразу, достаточно, чтобы заставить меня остановиться и прочитать логи вместо того, чтобы предполагать всплеск трафика, которому я должен радоваться.

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

Фиксом был не больший инстанс или ограничитель запросов сверху. Это было возвращение к тому, что на самом деле было открыто, закрытие того, что не должно быть публичным, и сделать так, чтобы атака обходилась злоумышленнику дороже, чем мне её игнорировать. Счёт упал на 96%.

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

Экспонат 16 — WordPress в Hugo и дальше

Я описал миграцию с WordPress на Hugo как молниеносную перестройку: снять CMS, сохранить контент, выдать что-то, что загружается за миллисекунды вместо секунд. Статья получила хороший отклик. Но не рассказала, что я продолжал после публикации.

Одноразовый скрипт миграции годится для одного сайта. Я не понимал, что это не скрипт, а начало пайплайна, пока не появился второй блог. К третьему шаблон стал неоспоримым: разные структуры контента, разные причуды плагинов, разные вещи, которые нужно было маппить, а не просто копировать. Скрипт стал пайплайном по-настоящему — извлечение контента, обработка изображений, маппинг редиректов, те части, которые не видны на скриншоте «посмотри, как быстро это загружается», но составляют реальную работу.

Интересная версия проекта — никогда не та, что публикуется. Это та, которая продолжала использоваться после того, как аплодисменты стихли, тихо превращаясь в инфраструктуру, потому что альтернативой было решать ту же проблему с нуля каждый раз, когда кто-то просит. Первый фикс — демо. Настоящий фикс — то, что всё ещё работает через шесть месяцев.

Экспонат 17 — GCF Pro

Обучающие организации во Франции работают под сертификацией Qualiopi — фреймворк соответствия, который диктует, как управлять финансированием, административными записями и аудиторскими следами. Большинство используют для этого инструменты, созданные для чего-то другого: обычные CRM, согнутые в сторону, таблички, скреплённые привычкой, или софт, оценённый для предприятий, без встроенной логики соответствия.

Я построил GCF Pro как инструмент, который обучающие организации хотели бы иметь — саморазмещаемый, PHP, без ORM, без фреймворка тяжелее проблемы, продаваемый как лицензия вместо подписки, потому что эти организации не хотят, чтобы их данные по соответствию жили на чужих ценовых решениях SaaS. Размещение на месте не было ограничением, которое я принял. Это было фактическим требованием, как только я понял, что значит «аудиторский след» для того, чья сертификация от него зависит.

~28 000 сертифицированных Qualiopi организаций существует во Франции. Это не гипотеза, это отфильтрованный список. Чего у меня ещё нет — доказательства, что список является рынком.

Экспонат 18 — CRM для поиска и расширение, которое смотрит вместе со мной

Холодный аутрич в масштабе требует базы данных. Моя началась как таковая — данные из публичных записей Qualiopi, обогащённые, отслеживаемые по кампаниям, CNIL-совместимые по дизайну, потому что я лучше встрою это ограничение, чем добавлю позже.

База данных не была интересной частью. Интересное — что происходит, когда я просто просматриваю страницы, не занимаясь поиском целенаправленно. Я построил расширение Chrome: когда я попадаю на сайт, похожий на потенциального клиента, один клик читает текущую страницу и её юридическое уведомление — название компании, SIRET, телефон, имя менеджера — и ставит в очередь сканирование необходимого: заголовки безопасности, версия PHP, производительность, ту же диагностику, что я запускаю в масштабе, но срабатывающую просто от того, что я смотрю на страницу.

Это сокращает разрыв между замечанием и действием. Никакого копипаста, переключения вкладок, «добавлю позже», которое никогда не происходит. Инструмент не ждёт, пока я решу, что работаю. Он предполагает, что я всегда работаю, хотя бы немного, и убирается с дороги.

Экспонат 19 — S&R CRM

Клиенту нужно было отслеживать контракты на обслуживание для техников по отоплению и сантехнике: в каком здании какое оборудование, какой контракт его покрывает, когда следующий сервис. Инстинкт большинства инструментов — прикрепить контракт к клиенту. Это неправильно для этой отрасли: клиенты переезжают, здания — нет. Котлу всё равно, кто владеет домом в этом году.

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

То, что началось как фикс для одного клиента, превращается в самостоятельный продукт — ScheduleX для календарной части, Mazer для интерфейса, тот же PHP-native бэкенд, что и всё остальное. Всё ещё в процессе трансформации. Я пока не знаю, очевидна ли модель «здание, а не жилец» кому-то вне этой отрасли, или это и есть вся суть.

Вердикт

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

Поставьте их рядом с первыми одиннадцатью, и становится очевидным то, что не было очевидным, пока я это проживал. Карьера, которая выглядела разбросанной в резюме — тренер, ресторан, почта, разработчик, школьный помощник — и проекты, которые выглядят разбросанными в портфолио — ERP, расширение браузера, визуализация CV, облачный счёт — имеют одинаковую форму. Ни то, ни другое не список несвязанных вещей, которые я случайно сделал. И то, и другое — результат того, что кто-то продолжает спрашивать «что на самом деле сломано?» вместо «какой стандартный ответ?».

Практический вывод: прямо сейчас откройте свой текущий проект или задачу и спросите себя: «Что здесь на самом деле сломано?» Не «что говорят стандартные практики?», не «что модно?», а «что конкретно мешает?». Ответ может быть меньше и ближе, чем вы думаете.

#карьера#проекты#рефлексия#разработка#продуктивность
Al
Редакция Algolit

Пишем про алгоритмы, подготовку к собеседованиям и карьеру в IT — так, чтобы было понятно и полезно.

Хочешь закрепить знания на практике?

Решай задачи на Algolit — интерактивная платформа для обучения

Начать бесплатно →