Latest posts

FEDOR BORSHEV
24 Sept, 06:45
У Зои недавно случился первый outage — перестали ходить авторизационные СМС.Я с самого начала решил, что проект будет исключительно монолитным. Так и живем уже год — весь код, включая бухгалтерию, шаблоны сторисов и учёт затрат на маркетинг живет в одном репозитории. Полгода назад, правда, искал сокращалку урлов и решил, что навайбать свою будет быстрее, чем разбираться с традиционно кривыми API отечественного производителя. В итоге она и выпала.У нас есть массовая (вернее не совсем, всего пара сотен) рассылка СМС. В какой-то момент скорость создания этих СМС переросла порог тротлинга в сокращалке урлов (не спрашивайте, зачем там тротлинг на внутреннем API — это только клод знает). Сокращалка отказала, и СМС пошли с полными урлами, всеми этими utm_medium и utm_source — кароч по три СМС вместо одной.Как назло, на балансе было мало денег — СМС-провайдер начал отказывать с 402. Но у нас же ретраи! Из-за ретраев случился уже шторм — в какой-то момент провайдер стал отвечать уже не 402, а 403 (вернее заменил 200 ok с текстом «No Money», на 200 ok с текстом «ip blocked», но кого такое удивляет). В общем пока я проснулся, пока сообразил как чистить очередь ретраев, пока пополнил баланс — потеряли кучу денег на рекламу.Вот и получилось, что есть несколько сервисов, каждый по отдельности работает хорошо, а когда начинают коммуницировать между собой — случается хуйня. Мне кажется в эпоху AI все баги такими и будут: потому что на привычные ошибки в коде легко нагенерить тестов, даже не имея специальных знаний. А вот коммуникацию между сервисами, просто так, увы, не протестируешь.Делайте монолиты кароч. Ну или хотя бы слушайте Антона.4,670Open in Telegram
FEDOR BORSHEV
2 Sept, 10:51edited
Слезайте с хайп-трейнаНе понимаю, почему профессионалы тратят время на AI-хайп.Конечно у новостей и помоек с публикациями типа «500 лучших скиллов» аудитория будет всегда — непрофессионалу легко превратиться в Буратино, поверившего в чудо: вчера NFT, сегодня AI.Но вот почему профессиональные программисты продолжают тратить часы чтения и экспериментов на то, чтобы на полтора процента увеличить себе производительность, я не понимаю.Очевидно же, что генерация буковок в коде — это теперь товар широкого потребления. Как ты в ней не тренируйся, завтра выйдет новый харнес, в который вложены десятки тысяч часов, а не твоя жалкая сотня. И тренироваться теперь надо не в умножении сложности, которую мы так любим, а наоборот, в её уменьшении.Не пилить микросервисы, а выпиливать. Не генерить код для новых фичей, а обсуждать эти фичи с бизнесом и выделять важное. Не сочинять сложный system6,470Open in Telegram
FEDOR BORSHEV
26 Aug, 07:45
Не бегать от того, что не умеешьМне всегда было легко программировать и сложно заниматься продуктовой работой. Чуть устал — и начинаешь все проблемы решать бекендом, а не головой.Когда программируешь — всё бинарно: CI проходит — значит ты молодец, не проходит — иди разбирайся. В продуктовой работе всё непонятно: вот сделал ты фичу, а как понять, пользуются ли ей вообще? А ту ли ты фичу вообще сделал? Надо говорить с пользователями, проверять гипотезы — сложно, в общем, особенно для программиста.Сейчас я почти перестал программировать (ai же), а к продуктовой работе добавил маркетинг. Теперь продуктовая работа кажется понятной. Делов-то — придумал гипотезу, поставил тестировать, через неделю проверил. Выстрелила — молодец, не выстрелила — тоже молодец: всё равно завтра следующую гипотезу запускать.А вот маркетинг — тёмный лес. Как понять, почему с нового канала приходит мусорный9,340Open in Telegram
FEDOR BORSHEV
24 Aug, 07:45
Системная память в AI-харнессе — это плохоМне кажется, что память в клоде — это зло. Конечно большой кайф в том, что агент под тебя подстраивается — запоминает привычные имена переменных, просьбы писать меньше буллшита в комментах и способы называть миграции.Но проблема в том, что все эти инструкции остаются внутри ~/.claude. То есть у другого программиста в том же репозитории и переменные будут названы по-другому, и буллшит будет другой формы. Со временем твой агент посмотрит на чужие примеры, и начнёт писать так же. Потом, наверное, и память незаметно подменит, если долго его не ругать.Кароч, считаю что любые инструкции для агента должны быть воспроизводимыми — лежать прямо в репозитории, для которого они предназначены. А глобальный CLAUDE.md должен быть вообще пустым.9,390Open in Telegram
FEDOR BORSHEV
10 Aug, 07:45
Я спросил у опусаВерный признак плохого менеджера — пересылать в команду письма от клиента без каких-либо приписок, ну разве что иногда добавляя что-нибудь вроде JFYI. С 25 года появился новый жанр — «я спросил у опуса и <тонна копипасты>». Напишу тем, кто так делает — вдруг у вас ещё не всё потеряно.Друзья, у опуса я могу и сам спросить. Кожаный мешок существует не для того, чтобы перекладывать текст из одного места в другое — он нужен, чтобы приносить ценность и принимать ответственность. К копипасте из LLM можно приложить много ценности: начиная от фактчекинга и заканчивая тем, что вообще убрать копипасту и написать мне в один абзац, что в предлагаете сделать.Префикс «я спросил у LLM» не спасает от ответственности: вас уволят, а опус останется. Всё, что делает этот префикс — говорит команде, что вы не уважаете их настолько, что не готовы потратить даже 5 минут на банальную17,900Open in Telegram
FEDOR BORSHEV
3 Aug, 07:45
День рождения школыМы с Марьяной впервые встретились в перерыве между карантинами — в августе 2020 года. Почти сразу начали делать первую версию «Стать Тимлидом» — он родился из накопленного у обоих опыта, которым хотелось делиться.Прошло уже целых 6 лет, офигеть. Школа пережила ковид, пережила сломанные платежи и потерянные данные. Надеюсь, переживёт и текущий кризис.День рождения получается не очень весёлый, но всё таки это повод — так что вот вам скидка 25% на все самостоятельные курсы. Действует до вечера среды — приходите знакомиться, если давно присматриваетесь к «Анализу Систем» или лидерским курсам. Забирайте «Самому не проще» или «Есть минутку» если хотите прокачаться в делегировании или управляемой коммуникации. Промокод SIX.Что там у них →С днём рождения нас!14,100Open in Telegram
FEDOR BORSHEV
27 Jul, 09:18edited
Как дела у ЗоиTLDR — прорывов нет, работаем.Реклама продолжает болтаться вокруг прибыльности — чтобы нормально достроить финмодель, надо подождать ещё 2 месяца, чтобы когорты, пришедшие на текущую версию продукта, стали хоть чуть-чуть зврослее.По фичам — запустили медицинские карты: теперь модель знает, какие лекарства и диагнозы есть у пользователя. Доработали память — теперь контекст старых бесед не теряется: это важно, т.к. количество сообщений у активного юзера измеряется сотнями. Научили модель просматривать историю анализов и искать врачей, добавили голосовухи (на удивление не так уж и востребованные, подозреваю технические проблемы). Скоро запустим мобильное приложение и тудушки — чтобы пользователь вместе с моделью планировал свои медицинские дела.Очень необычно себя чувствовать одновременно CEO, который берётся за всё непонятное и думает про стратегию, и разработчиком,15,200Open in Telegram
FEDOR BORSHEV
13 Jul, 07:45
Вернулся на Claude codeВот уже больше месяца прошло, как я отказался от OpenCode и pi в пользу Claude code. Попробовал просто в надежде сэкономить токенов после того, как Copilot перестал выдавать свои первые бесплатные дозы, да так и остался.Да, Claude code намного медленнее свободных альтернатив, но планы, которые он приносит — гораздо полнее и продуманнее. Оказалось, что мне гораздо ценнее получать ответы через 5 минут, чем через 2 — потому что через 5 минут мне достаточно будет написать «ok», а сколько ещё итераций понадобится после двухминутного ответа — заранее неизвестно.Клёво, что теперь не надо думать о выборе модели и о том, насколько заполнено контекстное окно — всё это происходит где-то в недрах харнеса.Немного бесит кривая система настроек и театр безопасности (а вы точно доверяете этому фолдеру? А можно я запущу find? Ой, а find -exec?). Но со всем этим можно15,700Open in Telegram
FEDOR BORSHEV
30 Jun, 11:14
А вы заметили как обесценилась в последнее время команда ping? 10 лет назад, чтобы проверить интернет в сомнительных условиях, я делал ping google.com, 1.1.1.1 или yandex.ru, и смотрел результат.Сейчас такой пинг ничего не значит — ответ может прилететь от ВПН-клиента или вообще от ТСПУ. Даже если ответ прилетит от оригинального хоста — далеко не факт что я до него достучусь с реальным запросом — пинг может проходить, а коннект на 443 порту рваться посередине хендшейка.Теперь, чтобы проверить интернет, хожу на 443 порт — пишу curl ifconfig.co: сразу проверяет и доступность интернета, и маршрутизацию. А вы как?16,300Open in Telegram
FEDOR BORSHEV
15 Jun, 07:45edited
DevEx → VibeExКажется, я насмотрелся на достаточное количество новых проектов, чтобы утверждать, что AI-тулинга повылезали ровно те же проблемы, что и любых других программистских инструментов. И самая главная из них — воспроизводимость.Какие-то проекты хранят все llm-наработки в курсоре одного из разработчиков. Кто-то жёстко рассчитывает на внешние скиллы, которые неизвестно где взять. Где-то каждую новую юзер-сторю реализуют с новым паттерном, потому что никто не озаботился выкинуть неактуальный код, и llm считает его живыми примерами.Принцип «поработал — убери» стал ещё более актуальным. Раньше можно было расчитывать, что бардак выбесит кого-нибудь настолько, что тот потратит пару дней и выкинет мусор. Сейчас бардак бесит только агентов — а они ребята терпеливые.Сделать проект удобным одновременно и для агентов, и для кожаных мешков — это всё ещё работа кожаных мешков. И это19,400Open in Telegram
FEDOR BORSHEV
8 Jun, 08:35
Уйти на второй круг в бизнесеМне очень нравится приём, который используют в авиации, чтобы пилотам было легче уходить на второй круг при посадке.Подсознательно пилот всегда будет воспринимать уход на второй круг как поражение — типа с первого раза не смог попасть в полосу. Но если это подсознание выпустить наружу — будут проблемы: огромное количество авиакатастроф связаны с тем, что пилоты садились во что бы это ни стало, когда надо было прервать заход и уйти на второй круг.Чтобы такого не было, молодых пилотов учат думать инвертировано. Не «мы садимся, а если что-то пойдет не так, то уйдём на второй круг», а ровно наоборот — «мы уходим на второй круг, но если вдруг мы поймём, что самолёт стабилизирован, и мы своими глазами видим полосу — тогда сядем» (знатоки авиации наверное меня поправят).Теперь посмотрим на предпринимателей. Закрыть бизнес — это же поражение: не смог17,600Open in Telegram
FEDOR BORSHEV
11 May, 08:17
Назови свою ценуНенавижу, когда люди не могут назвать цену за свои услуги. Вот нанимаю я исполнителя на разовую работу, к примеру написать пачку кода. Разговор подходит к деньгам, я спрашиваю сколько эта работа стоит, а в ответ получаю странное «сколько заплатишь, столько и ок».Вроде бы человек пытается уйти от денежных отношений — типа я ему настолько дорог, что он готов и бесплатно поработать. Или задача для него новая, и он не знает сколько такие вещи стоят в принципе. Или ещё какая-нибудь внутренняя причина, которую я даже придумать не могу.Единственное, что при этом вижу я — что почему-то исполнитель не хочет принимать ответственность за то, чтобы назвать свою цену. И пытается переложить эту ответственность на меня.Я от своей части не отказываюсь, но интересно, а когда мы всё-таки договоримся про деньги и начнём делать работу — ответственность за её результат исполнитель20,300Open in Telegram
FEDOR BORSHEV
6 May, 08:07
Ищем синьёрных питонистовМы в ФАНС ищем бекендеров на проектную работу — 3-4 месяца. По итогам, если сработаемся, сможем заключить долгосрочный контракт.Стек — современный python, django, местами fastapi. Работаем в github, оплачиваем подписки copilot или cursor на выбор.Требования всего два: 1. Писать хороший код (как выглядит хороший код на наш взгляд можно посмотреть тут) 2. Выполнять обещания. Если сказал, что сделаешь в среду — надо делать в среду.Работа удалённая, 4 дня в неделю со свободным графиком и полной занятостью.Писать на python@fands.dev. Мы точно не сможем ответить, если ваше письмо будет похоже AI-мусор, в нём не будет примеров ваших проектов или оно будет состоять из одного только CV.pdf.17,100Open in Telegram
FEDOR BORSHEV
4 May, 08:33
Полюбил Spec-driven developmentНедавно осознал, что допрогал вайб-фронтенд Зои до состояния, при котором стандартного контекста opencode (128k) перестаёт хватать на большие задачи.Увеличивать контекст не хочу — моей личной оперативной памяти и так не хватает, чтобы помнить, о чём я за эти 128к договорился с моделью. Мне и 64к кажется многовато.Естественным образом пришёл к openspec. Теперь у меня есть отдельный этап проработки спеки, и в любой момент этого этапа можно открыть буквально весь текущий план разработки. Не надо помнить, что там было две реплики назад, и проверять не потеряла ли модель мелкий багфикс, который мы нашли по дороге.Архив спек пока не оценил, но кажется что это почти как ADR, только на уровне кода. Хороший архив по-идее делает ненужным сервисы типа entire.io. А ещё openspec открывает дорогу к отказу от тормозного opencode, который вместе с моим agents.md15,600Open in Telegram
FEDOR BORSHEV
17 Apr, 07:45edited
Выходной — это когда нет плановЯ работаю по выходным. Слишком люблю то, что делаю, чтобы надолго от этого уходить.Самое главное правило, которое я сформулировал за годы такой работы — на выходной нельзя ставить планы. Если проводить выходной день так же, как будний, с обзором-перепиской-помидорками, довольно быстро устанешь и возненавидишь не только работу, но ещё и самого себя.Единственные дела, которую можно делать в выходные — это те, которую хочется делать прямо сейчас. Если говорить одним словом — по делам на выходных надо фланировать: в таком случае найдётся время и потупить в ютуб, и побыть с близкими, и поделать приятные дела, и просто побездельничать.Ни в коем случае нельзя обещать кому-то «посмотреть на выходных» — одно такое обещание (даже данное самому себе) может испортить всё фланирование. Выходные — время свободы от планов, только так работает отдых. Сделал работу16,100Open in Telegram
FEDOR BORSHEV
16 Apr, 05:38
Небольшие онлайн-школы закрываютсяС начала года от коллег по образованию приходят очень грустные новости — закрывается одна онлайн-школа за другой. Первая причина — банальная и экономическая: многим сейчас страшно за будущее в финансовом плане, многие компании сокращают людей.Вторая — ИИ-страх. Типа нахрена мне учить новые технологии и подходы, если я могу потерять будущее, а пока не потерял — всё можно спросить у опуса.Мы держимся. Причём не потому, что умеем считать деньги и планировать вперёд (хотя я этим и горжусь), а потому, что большинство наших продуктов стали только актуальнее в новом мире. Смотрите, единственное, чего не умеет опус — это быть полезным бизнесу: вынимать требования, выстраивать их в цельную систему, обходить говнолегаси и проектировать новое так, чтобы не переделывать. К слову, этого не умеют 80% процентов программистов до сих пор.«Анализ Систем» — как13,700Open in Telegram
FEDOR BORSHEV
13 Apr, 07:45edited
Не верю в автономных агентовПо-моему, хайповый OpenClaw очень похож на Apple Watch — такое же футуристичное, но бесполезное дерьмо.Клёво конечно, когда агент без моего участия что-то пишет. Но мне же всё равно придётся проверить за ним код! Если не проверю — рискую, что он задеплоит в продакшн неработающее говно, да ещё и когда меня не будет рядом.Или представить агента, который в фоне решает долгую задачу и периодически задаёт мне вопросы в телегу. Выглядит круто, но я же не хочу, чтобы мне задавали вопросы в телегу! Неважно, человек это или робот — если меня нет за компьютером, то наверное я отошёл не просто так. Да и в любом случае, раз уж я ставлю задачу, то лучше сконцентрироваться и поставить сразу нормально, чем потом постоянно отвлекаться, отвечая на вопросы.Доверить агенту отвечать на почту/вопросы в трекере — ещё глупее, чем доверять это другому человеку: если у меня15,400Open in Telegram
FEDOR BORSHEV
30 Mar, 07:45
Не писать тесты с LLM Со всех сторон слышу, как люди генерят тесты при помощи LLM. Чуваки, так делать нельзя! Это видимость тестирования, прямо как assertion-free testing. Когда кожаный мешок пишет тесты (не важно до кода или после), он работает не над ними17,800Open in Telegram
FEDOR BORSHEV
25 Mar, 07:45edited
python-telegram-bot как пример продуктовой ошибкиСоздатели опенсорс-инструментов совершают продуктовые ошибки ещё чаще, чем предприниматели.Каноничный пример — python-telegram-bot. Хороший, вроде бы, фреймворк: приемлемый бойлерплейт, поддерживает все нужные эндроинты, в документации разобраться тоже возможно.Но вот несколько лет назад его взяли и переписали на asyncio. Получилось очень по-программистски: авторы не надели шляпу пользователей, у которых уже есть кодовая база. Хочешь новые фичи и секьюрити-фиксы — будь добр, переписывай кодовую базу под никому не нужный async. Авторы даже не удосужились как-то продать юзерам ценность перехода, добавить хоть каких-то фич. Просто переписали и всё — в анонсе нет вообще ни капли смысла, одни только «embracing the future». Оно и понятно — откуда взяться смыслу, если у телеграм-ботов в принципе не может быть задач, для которых нужен event17,300Open in Telegram
FEDOR BORSHEV
23 Mar, 07:45
Качать многозадачностьВ последнее время, работая над Зоей, чувствую себя на последней картинке — приходится одновременно быть бекендером, девопсом, фронтендером и биайщиком. И кажется я с этим справляюсь, хотя продуктовую работу тоже надо делать — вместе с Саматом и Настей формулировать гипотезы, планировать юридическую и налоговую часть бекофиса. Да и аутсорс вместе со школой никуда не делись.Когда появляется час на вдумчивую работу (больше за раз найти не получается) — нужно одновременно продвинуть все возможные направления: сделать ПР в 3-4 репы, докрутить SQL в метабейзе, а в идеале — поизучать документацию директа и налоговое законодательство. Конечно, приходится гонять одновременно 3–4 таски в opencode — других вариантов нет.Вижу, как поменялось время. Раньше нужно было сдерживать себя: если взял задачу — не думать ни о чём другом, а то потеряешь контекст и придётся делать
14,000Open in Telegram
Related Channels
Other channels in the same section of the catalogue.
