ChatGPT vs DeepSeek
Страница 11 из 18
Недавно я прочитала пост Макса Десятых про сходство между продажей человеко-часов и мандаринов, который заставил извилины в моей голове активно шевелиться.
Я поняла, что у нас в студии сейчас есть проблема с нормальной прозрачной отчетностью часов как минимум для нас самих же.
Для контекста: в сентябре мы переехали с Битрикса на Яндекс Трекер, как раз потому что в Битриксе оч убого реализована фича сбора часов: никакой аналитики нормальной ты не получишь. В Трекере можно выгружать отчеты, но они все равно сложные и не информативные.
Поэтому я засучила рукава, и пошла на выходных разбираться с налаживанием нормальной отчетности. Заручилась поддержкой Чата ГПТ, Курсора и в итоге совместно мы нагенерили 4,682 строчек кода, который запускается через Extensions → Apps Script прямо в Гугл Таблицах без регистрации и СМС (ладно, с регистрацией).
Да, я решила все это дело выгружать в Гугл Таблицы, ну, потому что это наглядно, удобно и в одном месте.
Что в итоге получилось, видно на скриншотах. Чуть расскажу подробнее, что тут есть:
→ Лист «Дешборд»
Сюда вывожу сводную инфу по часам людей, которые работают в штате. Смотрю, сколько часов продано, сколько ушло на внутренние задачи (за которые нам не платят, конечно), сколько часов осталось продать, какой получается коэффициент утилизации и какая выручка.
→ Лист «Выручка»
Почти тоже самое, но: здесь у нас отображены все люди, которые есть в Трекере (в том числе и фрилансеры), есть разбивка по конкретным проектам и суммируется выручка с учетом фрилансеров. Отсюда я вижу с helicopter view сколько часов на какой проект ушло.
→ Лист «Трекинг часов»
Здесь я проверяю, кто проебался и забыл внести часы за день. Или кто недорабатывает, или, наоборот, перерабатывает.
→ Лист «Сводный» и все остальные
В сводный лист падает детализированная информация по всем внесенным логам. Отсюда я смотрю, кто, в какую задачу, когда и сколько времени залогал. На скрине не поместилось — там сбоку есть еще столбец «Комментарий», где видно пояснение, что человек в рамках этого времени делал. Удобно, что могу настроить фильтры как мне надо и быстро найти нужную инфу.
А дальше все листы, которые есть в таблице, идут по следующей логике: 1 лист → 1 проект из Трекера. И там уже логи чисто по этому проекту.
Таким макаром, сейчас у меня есть абсолютно вся нужная детализация по часам. Все, как на ладони и не больше не нужно колупаться в сложных таблицах, которые генерит Яндекс Трекер.
И чо, справедливо спросите вы. А я вам отвечу: и то, что это все это ежедневно автоматически САМО собирается без моего участия. Моя и роль менеджера в этом — дрючить команду, чтобы они не забывали каждый вечер в 19:00 вносить часы за день ну и продавать непроданные часики. Вечером эта таблица обновляется, подсасывает данные из Яндекс Трекера и на утро я вижу перед глазами свеженький отчет.
Что еще удобно: теперь нам проще собирать отчеты для клиентов. Раньше все это делалось вручную: надо было заходить в Битрикс, выписывать задачи, смотреть, сколько времени ушло и считать, сколько нам должны заплатить. Сейчас же нужно просто открыть эту табличку и скопировать информацию для клиента.
Может быть, я переизобрела велосипед, но вот лично мне чего-то такого очень не хватало, чтобы четко видеть, какой у меня есть план по продажам в этом месяце. Сейчас я еще настраиваю ТГ бота, который будет смотреть в эту таблицу и в общем чате дрючить тех, кто не внес часы. Как получится — обязательно поделюсь впечатлениями.
В моменты, когда я создаю что-то подобное, я себя чувствую дизайнером куда больше, чем когда ревьюю макеты, потому что мозг работает ну на процентов 120 минимум.
[5/5] Синдром Самозванца
Наконец короткий блиц тактических советов, что делать, если по тебе юнит-экономика расходится сейчас (советы актуальны до момента, когда AGI заменил людей на всех economically valuable jobs):
1. Конечно же продолжать читать мой блог
2. Много и фокусированно работать (книги "Deep Work", "Digital Minimalism")
3. Найти тех кто в чём-то лучше меня (по возможности, работать с такими бок о бок), быть в комнатах, где ты не самый умный – и изучать под микроскопом, как эти ребята принимают решения, как действуют, какие подходы используют, которые не используют ты? что они делают из того, что не делаешь ты? что они НЕ делают из того, что делаешь ты? где сокращают себе дорогу? В общем, не пренебрегай искать, спрашивать и анализировать, как другие до тебя решали подобные задачи
4. Перед тем, как что-то делать, хотя бы в самой грубой форме, пальцем в небо прикинуть математику / воронку / юнитку / аплифты. Сейчас, когда есть ChatGPT / Claude только ленивый не заберёт готовый ответ по теме, в которой он даже не шарит
5. Разобраться, что такое юнит-экономика и привить себе привычку постоянно её считать в любом сервисе / проекте, которыми занимаешься. Разобраться в методологии А/Б тестирования
6. Очень рекомендую из своего списка рекомендуемой литературы (кстати самый первый пост в блоге) прочитать "Цель", "Эссенциализм" и "High Output Management". Научиться мыслить теорией ограничений, воронками, боттлнеками и рычагами
7. Научиться не делать всё, что можно не делать (говорить "нет" / автоматизировать / делегировать). Избегать fake work, работы-ради-работы, иллюзии продуктивности, созвонов-ради-созвонов
8. Ставить амбициозные цели с точки зрения масштаба и сроков (как советует Илон Маск, чтобы я сам был уверен только на 50%, что мы её достигнем)
9. Всегда держи в голове конечную цель своей деятельности: будь тем каменщиком, которого если спросить "что делаешь?" ответит не "камни таскаю" или "деньги зарабатываю", а "строю дворец". Знать цель и видеть прогресс движения к ней – важный элемент внутренней целостности, которая сама по себе избавляет от синдрома самозванца (понимание к какому результату мы идём и как все наши вложения окупятся)
10. Помнить, что если у меня получилось, у тебя тоже получится
Пишите в комментариях, что бы вы дополнительно включили в список
И спасибо всем кто дочитал ❤️
Немного про iCloud серьезно.
Есть ситуации, когда iCloud начинает "залипать". Это часто бывает, если его перегрузить метадатой (быстро добавить несколько сотен тысяч файлов на iCloud Drive, например). Если в iCloud полезть руками, пользуясь 100500 "полезными" советами из инторнетов и от гпт, который этих советов набрался - можно убить всё окончательно. После чего люди месяцами ходят в поддержку Apple, которая тоже ничего не может сделать, потому что там понабирали по объявлениям, а как что работает знает кучка инженеров в Купертино, которых юзерам не показывают.
MacOS очень не любит, когда пользователь лазит в пропиетарные сервисы. Но к счастью подразумевает, что пользователь дебил и может что-то случайно удалить. Поэтому все сервисы настроены самовосстанавливаться после убивания определенных папок или действий в UI.
Итак, симптомы: медленно синхронизирует, или вообще перестало синхронизировать изменения, или синхронизирует но на облаке появляются дубликаты. Ресет "Drive -> Sync this Mac" не помогает - поздравляю, вы приехали, пора переставить ос/сделать нового юзера/немного поучить матчасть.
Облаком в MacOS занимаются три основных сервиса: cloudd, bird и fileprovider. сloudd - рабочая лошадка, глюки в нем редкие и он нас не интересует. Нас интересует правильная работа bird (iCloud Drive) и fileprovider (эвент-фрейморк файловой системы).
При включении iCloud Drive, bird регистрируется в fileprovider и начинает взаимодействовать с FS. Оба сервиса написаны довольно ентерпрайзненько, с кучей sqlite-баз, токенов и hell'a в ~/Library. fileprovider - не dedicated сервис для iCloud, а общее API для клауд-дисков в MacOS, на нем "сидят" и OneDrive, и Google Drive и все остальные. Соответственно, отключение синхронизации iCloud Drive, очищает базы bird, но базы fileprovider трогает очень осторожно. Если bird не может по каким-то причинам "почистить" свои связи fileprovider - вот и привет.
Соответственно единственное правильное решение проблемы - отключение всех cloud-дисков и ресет fileprovider в консоли. После чего включаем диски назад, смотрим "brctl log -w -s", bird моментально оживает, сливает метадату за 5 минут и качает всё без остановки.
Вчера чтобы немного успокоиться, провел небольшой рисеч с chatgpt. Пользуйтесь.
А как вы справляетесь со сложными эмоциями?
p.s для вдохновения https://arxiv.org/pdf/2507.12213
Первое, что нужно было сделать — это сдампить все посты из канала. Думаете это делается в пару кликов? Тоже так думал. Но обошел несколько раз интерфейсную часть телеграм и не нашел такой возможности. Погуглил, нашел инструкции — все говорят, что это просто, показывают кнопки, иду в телеграм — а этих кнопок нет. Видимо такую возможность выпилили. Печаль.
Подумал — не беда, ChatGPT же теперь умеет ходить в сеть и делать поиск - попробую напрямую из ChatGPT запросить. Тоже не выходит: телеграм закрывается от ботов, хоть через поиск, хоть по прямой ссылке — ChatGPT не может получить содержимое телеграм каналов.
Что ж, пришлось действовать старым "дедовским" способом. Открыл веб-версию канала и пролистал всю ленту, чтобы загрузились все сообщения (там используется подгрузка при скроле). Далее открыл консоль и буквально "на коленке" написал скрипт, который через DOM выбрает все блоки постов, выбрает нужные данные из них, отчищает текст сообщений от лишней разметки и превращает его в markdown. Наконец-то пригодилось знание DOM для чего-то полезного 😏 Код вышел грязным и в лоб – но свою работу делает.
В итоге вышло ~450Kb текста с атрибутами, без изображений и видео. В Word'е в дефолтных настройках (Calibri 12pt) это 166 страниц (58 тысяч слов). Этот текст превращается в ~118 тысяч токенов (OpenAI Tokenizer), что умещается в текущий стандарт для размера окна контекста в 128k токенов и еше немного остается.
Несмотря на размер контекста модели (для GPT-4o — 128k, GPT-4.1 — 1M, GPT-o4-mini — 200k), в интерфейсе ChatGPT нельзя отправлять сообщения более определенной длины. Точных размеров не выяснял, но это где-то около 100Kb (символов, не токенов). То есть скормить текст такого размера как у меня (450Kb) целиком в чат не выйдет, или по крайней мере не одним сообщением.
Хорошо, у нас еще есть возможность прикреплять файлы. Пробуем, но это работает совсем не так как ожидается. Целиком файл не обрабатывется, AI модель так или иначе делает выборки из файла (фрагмент или фрагменты) и работает с выбранным. Для выборок обычно модель пишет Python код. Что попадет в выборку и по какому принципу, тот еще вопрос. Вернее как модель решит. Например, может взять первые несколько килобайт (для чего напишет скрипт), или решит искать по ключевым словам (то есть напишет код, который это делает), при этом поиск строгий и набор слов (количество и состав) — это как повезет. Надежность такого подхода сомнительная. В целом, работа с прикрепленным файлом носит очень приблизительный характер. Может хорошо работать для файлов с данными, типа CSV, так как это лучше поддается детерминированой программной обработке. Но вот для текста (markdown), где большая вариативность — работает так себе. Вероятность успеха (success rate) не нулевая, но чем больше текст тем больше падают шансы.
В общем, для полноценной работы с текстом (например, чтобы не потерялись какие либо факты или детали) весь он должен быть в контекстном окне. Чтобы использовать контексное окно целиком для больших текстов, остается только использовать либо API (в конечном итоге), либо Playground. Плюсы: больше контроля, можно управлять параметрами, например, температурой (насколько рандомизируется результат). Главный минус — стоит отдельных денег, то есть нужно оплачивать входящие/выходящие токены, но цены вполне умеренные.
Делаю ИИшный проект
Недавно писал про то, что решил усмирить свою предприимчивую жилку и сфокуситься на карьере, но на самом деле у меня остался один проект, который уже плавно приближается к тестированию). Пообещал себе, что доведу его до логического завершения, и потом точно возьму паузу. Хотя, кого я обманываю?)
Короче, мы с моим другом-партнёром делаем ИИ-звонилку, если по-простому.
Принцип работы примерно следующий: ты скармливаешь ей базу номеров (ну или просто вбиваешь один номер), а она начинает прозванивать. Промтишь любой контекст: инфу о компании, цель звонка, негативный сценарий и т. д. После звонка подгружается запись и расшифровка с саммари.
Стек под капотом состоит из «мозга» в виде дешёвого аналога ChatGPT, голосовой модели для text-to-voice/voice-to-text в виде аналога ElevenLabs и, наконец, отечественной билайновской IP-телефонии, чтобы вся эта история звонила с российских номеров.
У партнёра свой логистический бизнес, в который первоначально хотим интегрировать нашу ИИ-звонилку: для начала — в помощь операторам, в будущем — встроить её в корпоративную CRM для большей автоматизации и экономии ресурсов.
Сейчас на этапе тестов хотим сфокусироваться на простых и рутинных сценариях — там, где людям приходится делать десятки одинаковых звонков: напоминания, подтверждения, уведомления, сбор обратной связи и т.д.
Если у вас или у ваших знакомых есть бизнес, где нужно много звонить — можем бесплатно подключить вас к тесту (моя личка в описании канала). Поможете нам проверить гипотезы, а взамен получите рабочий инструмент, который реально экономит время и заменяет операторов на рутине.
Ребёнок взял нейрокартинку и пропустил её через гуашь. Это конкурсные работы детского рисунка проведенного к Фестивалю Науки.
Прислал друг биолог. Он знает как выглядят колбы. Он видит что канделябр смешался с пробиркой, а колба превратилась в бутылку. Чем меньше у нас экспертизы, тем больше мы принимаем галлюцинаций как реальность. (Надо признать так было и до прихода ИИ)
Интересно, что гуашь или любая другая ручная работа стала как прачечная что-бы очистить намерение автора, отмыть его от искусственного происхождения. ИИ-артефакт как бастард которого стесняется автор-отец согрешивший с ChatGPT или Suno. Перепишу текст от руки. Перепою голосом.
Возможно, в этой истории нету ребёнка. Есть родитель в час ночи, который не знает, как объяснить тему «биотехнологии спасают мир» и нейросеть, которая знает за всех. Ребёнок здесь просто манипулятор с гуашью, исполнитель ритуала. Реальная связка: родитель, промпт, выдача, ребёнок-как-руки. Воображение делегировано через два слоя посредников, личная мысль растворилась в латентном пространстве.
На заметку родителям. Попробуйте платные сервисы.
Кстати можем устроить мини-челленж, пишите в комментарии именно под этой частью свою роль и проект (насколько позволяет NDA), а я или кто-то другой будем предлагать способы оценки экономического эффекта
Предложил в комментариях писать роли / проекты, чтобы получить грубую идею, как оценить свою ценность в деньгах
Доброволец №1: Промт-инженер образовательного интернет-портала для школьников
Как можно оценить в деньгах твою value:
Сценарий 1: если ты генерируешь контент с LLM
• оценка через альтернативы: бизнес мог бы нанять контент-специалистов / младших авторов / методистов и создавать единицы контента вручную. у таких специалистов есть некая ставка в час / в неделю / месяц + скорость производства 1 или 10 единиц контента
• если ты это делаешь в полу-автоматическом режиме, то мы ожидаем, что ты это делаешь быстрее и дешевле в пересчёте на единицу контента (возможно даже для того же объёма контента хватит 1-2 специалистов вместо 4-5 как раньше). скажем, раньше на контент тратилось 30-40% от выручки обучающей программы, сейчас 10%. дельта в 20-30% = твоя вэлью, принесённая платформе
Сценарий 2: если LLM с базой знаний - продукт сам по себе
• важно принять факт, что промпт-инженер отчасти похож на ML инженера: в обоих случаях у нас есть некий черный ящик – "данные+фичи+модель" или "база знаний+промпт+модель". мы можем менять каждую из компонент, пробовать другие модели, подкручивать фичи/промпт, пополнять базу знаний, получая то или иное изменение поведения модели. чтобы действовать не как слепой котёнок в чёрной комнате (и подкручивать промпты чтобы подкручиавать промпты, по интуиции), эту систему нужно покрывать теми или иными метриками: либо оффлайн (например собрать 100 пар запросов-ответов, прописанных экспертом), либо онлайн (метрики пользователей - CSI, NPS, доходимость курса, оценки, ретеншен именно AI-компоненты)
• онлайн метрики в свою очередь влияют на продление подписки (если у вас подписочная модель), на сарафанку (= бесплатные лиды), на бренд (= больше доверия, рост конверсии в оплату), на апсейлы (родителям хочется купить ребенку другие курсы на платформе). Если ты можешь показать, что твоя работа над промптами/базой знаний улучшила хотя бы одну из этих метрик - это и есть твоя value в деньгах
• если ничего из перечисленного не трекается, нужно начать с того, чтобы собирать эти данные, а не заниматься "invisible work", невидимой работой, которая не приносит измеримого результата
У уважаемого куратора Дмитрия Булатова увидел красивую рамку: халкидонский догмат, квантовая физика и нейросети сшиты одной логикой удержания противоречий.
Любопытно, что сам текст эти три примера сводит к одному тезису, то есть устраняет противоречие, чтобы рассказать про их удержание.
Я со своей колокольни все же заметил одно противоречие и сходил в чужой монастырь оставив там комментарий самоварских размеров. Заодно подумал и сам.
Признаюсь, мне пришлось загуглить про Халкидон. Здесь я возвращаюсь мысль автору как я ее понял. Две природы Христа остаются двумя. Зазор между божественным и человеческим, это и есть содержание догмата. Тот же зазор присутствует между волной и частицей в квантовой физике, где у меня, кстати схожий зазор, который я заполнил знанием из чатгпт. Но проверил из Гугла. Гугл сказал у Дмитрия аналогия верная.
Но что касается нейросетей, нейросеть устроена наоборот.
Насколько я могу судить из личного опыта, нейросети показывают миллион примеров и просят минимизировать ошибку, то есть найти такой ответ, который в среднем меньше всего расходится с данными. Когда модель видит противоречивые данные, она не удерживает их рядом, а ищет компромисс посередине. Поэтому ИИ-тексты звучат гладко и одинаково, это и есть среднее всех голосов сразу.
То есть аналогия текста работает на двух примерах из трёх. В первых двух противоречие является методом. В нейросети противоречие становится шумом, который алгоритм гасит и выводит в в виде синтеза из усреднений на глаза удивленной публике.
И если оставаться в теологических аналогиях, то точнее будет выбрать Икону, где две (по Халкидонскому определению) природы Христа сливаются в один лик.
То есть что бы что-то понять и двинуться дальше противоречие в моменте должно быть устранено. По факту как и работает ИИ, которые не держит противоречие, а сглаживает их и усредняет.
Ну как человек. Сжал все аргументы в трёхбуквенный эмбеддинг. Махнул рукой, обобщил и пошёл дальше. Кто-то обиделся. Сново противоречие, квантовая физика, халкидонский догмат.
P.S: Написано с уважением к автору. Работу Роберта Уильямса стащил из комментов под оригиналом.
В 6-м классе у нас был один парень Саша, вечно в кроссах чище, чем у остальных, и с рюкзаком, в котором всегда пряталось что-то, чего не было у других. Однажды он достал первый iPhone. И мы сели всем классом и зависли. Пока мы щёлкали кнопки на Нокиях, играли в Змейку и слушали записаные на диктофон песни, блестящий сенсорный экран, который держал в руках Саша реагировал на прикосновения и отвечал. 3,5‑дюймовый мультитач казался экраном из фантастических фильмов. Мы передавали его по кругу, как священный трофей, и, конечно, никто даже не мечтал его тогда купить, просто стояли и смотрели, будто на кусочек будущего. В тот момент технологии впервые заставили меня затаить дыхание.
У Саши всегда появлялись айфоны раньше всех. Первый 3G, потом iPhone 4 с FaceTime. Каждый раз, когда он доставал очередной, мы собирались вокруг, будто на полет первого космического корабля.
Сейчас я испытываю точно такие же и эмоции, когда выходит очередная обновленная версия GPT.
GPT‑5 выкатили 7 августа. Один стек для коротких ответов и последовательного рассуждения. Жирный контекст в 256 тысяч токенов, многошаговые задачи без потери нити. Меньше микроменеджмента, галлюцинаций, практичные агентские сценарии.
Агентский режим гоняет по агрегаторам и прямым сайтам, сравнивает условия и кидает готовые варианты, находит выгодные билеты , отели , товары на маркетплейсах под тематику.
Сам Альтман говорит, что это первый раз, когда разговор с ботом действительно ощущается как беседа с экспертом с PhD.
А в режиме thinking (ее уже основательно затестила ) модель уходит в качественный глубокий ресёрч и возвращает быстрый ответ с качеством глубокого исследования и скоростью самой быстрой модели. Здесь прям кайфанула. Я очень много работаю с разноформатным текстом и разницу в качестве ощутила сильно. Сейчас активно прорабатываю рабочие кейсы в этом режиме.
«Субличности» Cynic, Robot, Listener и Nerd, если хочется «особенного отношения» и человечности 😄.
В общем Саша больше не приносит новые iPhone в школу, да я и себя в школу не приношу уже лет так 12. Но ощущение, будто ты наблюдаешь за запуском космического корабля, остались со мной по сей день. С каждым новым релизом.
Надеюсь, что он не растерял свой энтузиазм к инновациям, и уже затестил gpt-5, как и вы .😄
Пока учу дельфина ходить по суше в костюме, украду денег у инфоцыган. В комментах был вопрос, как делать видео в стиле Dark Fantasy как в этом посте
Два года назад пост занял бы 4000+ знаков. Теперь весь фокус в два слова: ChatGPT + Seedance 2
1. Берем кадр в нужном стиле и говорим ChatGPT сделать ваш сюжет в этом стиле. (В моем случае я прикрепил скриншот рилса с кунг-фу и сказал сделать в стиле кунг-фу фильмов 70-х) 2. Затем просите либо придумать либо описываете раскадровку 3. Просите на основе раскадровки написать промпт для Seedance 2 4. Прикрепляете промпт и раскадровку в Seedance 2 5. Generate
Если я сэкономил вам деньги на курсе по генерации видео, поставьте звезду или поделитесь постом где это будет полезно. И интернеты очистятся и в них вернутся дельфины. Спасибо 🐬
В комментариях мне напихали тезисами утвержденными ChatGPT и справедливо уточнили масштаб: технически Pretext библиотека, не новый стандарт. Согласен. Но я смотрел с другой стороны.
Идеи существуют десятилетиями, пока кто-то не делает их достаточно удобными. Интерфейсы придумали в Xerox PARC (мне омар хайям нашептал), а культурный эффект начался с Макинтоша. Нейросети описали в 80-х, революция случилась когда появился ChatGPT с полем ввода. У любой революции должен быть удобный интерфейс.
Pretext пока не революция. Но шаг в сторону текста как управляемого материала заметный. Посмотрим, кто первый сделает из этого интерфейс, которым захочется пользоваться.
А я пока попытаюсь сделать что бы текст валил как дым из под колес гонки управляемой дельфином. Посмотрим что из этого выйдет.
Меня давно парило, что я немного отстала: и с вайбкодингом, и с другими ИИ-новинками. Тут я говорю не про новые модели для видео или очередной инструмент, а про мышление, усложнение практики и выход на новый уровень.
Уже писала, что пошла учиться в AI Mindset LAB. Сейчас разгребаю завалы конца апреля и пожинаю первые плоды работы в лабе. Пришла туда нулевая, с глазами по пять рублей.
За пару дней между перелётами и работой сделала style-graph для корректировки своих постов и этот пост мы уже смотрим вместе. Разобралась с Obsidian: вывела шаблоны и сделала общее хранилище для всех своих проектов, заявок и лекций. Теперь делаю style-graph для «Берёзового промпта», чтобы каждый участник не боялся писать посты, заявки и письма и не просил редактировать каждую фразу.
А ещё собрала файл с шаблонами промптов для моего проекта «Психея». Вся информация и так была в ChatGPT, но если бы я потеряла к нему доступ, неизвестно, как бы мы восстанавливали стиль. Теперь всё лежит просто в файлике на компьютере. Без моих референсов точно так же не получится, но что-то приближенное уже можно будет собрать.
В прикреплённых файлах показала разницу и то, что промпт иногда вообще-то литература. Обученный профиль в MJ пока не прикрепляла.
Теперь я правда не могу уснуть от идей и проектов. И самое главное: «боюсь» превратилось в «хочу». Хороший результат за неделю. Впереди ещё три.
Корпоративный смузи или стартаперское пекло? или как я потратил 13 часов на найм
11 октября я опубликовал вакансию на Python AI разработчика. С тех пор я провел 20+ собесов, суммарно потратил на все 13 часов (включая выдачу тестовых и ревью).
Буквально в тот же день попросил Богдана репостнуть и получил куча срача в его чате, сторонников и противников, куча угарающих смайликов (походу с вилки) и даже свою первую негативную реакцию на пост (спойлер: меня это не сломало 😁)
Что меня поразило: - насколько же люди действительно парятся о том какой теннисный корт будет у них в офисе, сколько раз в день будет манговый шейк и чтобы все по ТК РФ было - завышенные ожидания (все хотят получать 400к в стартапе, но работать в таком же темпе как и в корпе, а еще время не трекать - зачем, начальник же будет знать сколько я ничего не делаю) - использование AI Coding Tools ~ 15-20% кандидатов использовали хоть что-то (хотя бы просто ChatGPT). Про Cursor, MCP, AICODE-*, Claude Code, Rules, документацию проекта - вообще молчу, ни одного человека не встретил (если что я не на HH искал)
Какие советы могу дать тем, кто будет нанимать (не претендую на HR-экспертность, но на личных ожогах говорю): - не ищите людей из корпов в стартапы (по крайней мере из типичных черепашных корпов), тк потратите кучу денег на них, а до выхлопа будете идти долго - обращайте внимание на студентов, молодых в целом людей, которые еще толком нигде не работали, но при этом не совсем универские джуны (с такими тоже очень сложно); лучше инвестировать в их обучение и обучить под себя, выйдет дешевле человека из корпа - давать ли тестовое? да; обращать ли внимание на личные качества? да; но это все еще не показатель и не решающие факторы. только поработав с человеком неделю (мне достаточно) в боевом режиме - можно понять - твой персонаж или нет - то что человека драйвят деньги - это нормально (лично я money first man), но если кроме них его ничего не интересует и он не задает особо вопросов про проект - сразу минус - 30-минутных созвонов более чем достаточно чтобы отсеять «холодных лидов»; старый формат часовых многоэтапных собесов - отрицаю
В целом, это очень крутой опыт и я рад что апнул тут свою скиллуху) Кто бы что не говорил, а делать стартапы - это круто)
Я как-то написал в чате у Богдана, что вероятность вырасти до CTO в стартапе в десятки раз выше чем в каком-нибудь Яндексе. Многие просто посмеялись, но я все равно придерживаюсь этого мнения. Какие риски? Да такие же, в 10 раз выше, но вопрос ведь в том что ты хочешь от этой жизни) Лично мне намного кайфовее работать с людьми, которые готовы рискнуть в моменте, не получать по рынку месяц, два, три, но поставить на рост в горизонте полугода, тк я сам такой 😊
Расскажите о вашем опыте как работы в найме/стартапах, так и самого найма, делитесь инсайтами)
Кстати, напоминаю, что я выделил ограниченное количество часов в неделю/месяц и консультирую по бусту любых ваших AI-skills) Стучитесь в личку @nikmd1306
Cannot find module
Ужасно правдивая сага про одержимость, искуственный интеллект и победу человеческого разума
В комнате царил полумрак. Евгений пялился в монитор широко раскрытыми глазами. Желтый текст на черном фоне был подчеркнут ярко красным зигзагом. Круглые часы на столе с такими же ярко красными цифрами показывали нули. Полночь.
Это не было серьезной проблемой. Проект собирался и работал. И работал так всё время, с момента получения доступов. Но вот это ужасное чувство, знакомое каждому перфекционисту, разрушало его изнутри, не давало ему спокойно жить. Это желание сделать идеально, так чтобы всё было четко и правильно, заставляло его сидеть ночами и искать решение. Он не мог позволить себе закрыть глаза на ошибки или прикрыть их позорным, в его глазах, ts-ignore.
Картинки. Простые картинки стали ночным кошмаром, превратились в неразрешимую задачу. Он сделал всё, что делает опытный фронтентер: читал документацию, бесконечно гуглил, обновлял библиотеки. Но IDE словно издевалась, снова и снова подчеркивая проклятый импорт.
StackOverflow, Gemini, ChatGpt, Perplexity — все инструменты, и с искуственным, и с человеческим интеллектом, говорили одно. Добавь declare module и всё заработает. Но оно не работало. Не работало. Не работало!
Тогда Евгений пошел на крайние меры. Он купил Cursor и открыл проект в нем. Давай, братишка, почини этот баг. Как же он меня достал! Но курсор не справился ни с первой попытки, ни со второй, ни с десятой. Каждая генерация лишь предлагала известные решения, которые не работали. Даже сам курсор удивлялся «Проверяю. Не работает. Значит дело в другом.» И так по кругу. Идеальная машина по сжиганию токенов.
Чтобы спасти планету от лишних выбросов CO2 и разорвать проклятый цикл, Евгению пришлось принести в жертву и удалить tsconfig.json из проекта. ИИ должен был создать его заново, словно феникса из пепла. Обновленного, без изъянов! Но ИИ, напичканный токенами, будто в пьяном угаре вошел в кураж и изрыгнул из себя франкенштейна на четыреста безумно отвратительных строк. Хоть может работает?
> Restart Ts Server Cannot find module './src/logo.png' or its corresponding type declarations.
Дааа, не так я себе это представлял. Евгений сбросил все изменения дурачка ии и выглянул в окно. Огромная кроваво красная луна зашла за шпиль Лахта-центра. Разделилась на две половинки. А это идея!
Он подошел к компу, создал новый файл files.d.ts и перенес в него только декларации для картинок. Ошибка мгновенно исчезла. Как будто ее никогда и не было.
И никто никогда не узнает, что она тут была. Никто не узнает подробностей этой страшной битвы на пороге дней. Никто не похвалит Евгения, и тем более не даст награды. Всё встало на свои места, а в масштабах вселеной, так и вовсе не изменилось.
И только Евгений впервые за долгое время уснет спокойно.
© Счастливый тимлид
Репост и подписка крайне приветствуются <3
Сегодня придумали промпт, который может довести до слез любого. Потестили. Глаза и вправду увлажнились. ChatGpt здесь слабак, а Claude походу может соревноваться с Хемингуэем. Не придумали только название того, что мы придумали с участием достопочтенных ЭйАйЛеры, Дани Трабуна, Васи Сонькина и автора этой заметки. Но будет разговор
и спасибо большое Сереге, что нас всех организовал и продакшену 1147
Детальный разбор StreamTransformSelector, пожалуй, выходит за рамки формата телеграм поста. Пытливый читатель может найти код реализации здесь. Я же отмечу, что основной вызов это правильно перевязать controller внешнего стрима с readable и writable внутреннего стрима. Это то, с чем я не справился в прошлый раз: решение работало для небольших данных, но взрывалось на больших. Было очевидно, что какой-то из стримов не успевал завершить работу и закрывался слишком рано, что приводило к неполным данным на конце и ошибке парсинга. Отлаживать стримы достаточно проблематично, многое происходит под капотом, просто некуда поставить брейкпоинт. А специализированных инструментов под отладку пока не изобрели.
Так, применяя все свои навыки отладчика, я перепробывал все идеи, но мне так не удалось исправить проблему за полчаса. И я уже был готов сдаться. Но вспомнил в какое время мы живем, и решил почеленджить ChatGPT этой проблемой. Не без скепсиса. Прошлый раз, в декабре, ChatGPT на вопросы про код с веб стримами выдавал откровенный бред. Но за это время модели прокачались (без сарказма), как знать, может что-то изменилось. Описал проблему, приложил код StreamTransformSelector, и скормил ChatGPT. В итоге, GPT4o не справилась, переписала мой код в нерабочий (добавила дедлок). А вот o3-mini-high, на удивление, с задачей справилась. По сути, своим ответом, модель подсказала то, что я упустил, нужно было дождаться pipeTo() во flush(), кто бы мог подумать.
Более того, o3-mini-high предложила альтернативный вариант, т.н. "A Simpler “Lookahead” Approach", когда используется асинхронная функция, вычитывающая первый чанк, создающая TransformStream на его основе, и потом, в цикле, перекидывающая чанки из одного стрима в другой. Похожее решение было и у меня, то с чего начинал попытки встроить DecompressionStream, но в итоге от него отказался. Стоит отметить, что имплементации не совпадают один в один, в моей реализации я использовал pipeThrough() вместо цикла. Но сути это не меняет, и проблема вовсе не в цикле, а в эргономике: при таком подходе уже не получается композировать стримы только лишь через pipeThrough(), приходится перемешивать стримы с промисами, как-то так:
async function consumeStream(input: ReadableStream) { const stream1 = input.pipeThrough(...); const stream2 = await applyStreamTransformers(stream1, transformers); const finalStream = stream2.pipeThrough(...);
// ... }
Для сравнения, без перемешивания с промисами:
async function consumeStream(input: ReadableStream) { const finalStream = input .pipeThrough(...) .pipeThrough(new TransformStream(new StreamTransformSelector(transformers))) .pipeThrough(...);
// ... }
Трансформеры не обязательно должны менять данные, которые через них проходят. Например, трансформер может нарезать чанки на более мелкие, или наоборот – буферизировать. Они также могут считать размер проходимых через них данных и таким образом можно отображать прогресс:
const finalStream = stream .pipeThrough(new TransformStream(new ProgressTransformer(setProgress))) .pipeThrough(...)
Про экономию времени Знаете, что меня бесило пару лет назад? У тебя появляется идея. Например, новый раздел в админке. - Это сначала прототип, - потом отдать дизайнеру, - потом принять у дизайнера, - потом коридорка, - потом поправать с дизайнером, - потом PBR, - потом потом в разработку, - принять у разработки. ...
В общем, за месяц будет готово. Это если очень повезет....
А вчера я сидел вечером крутил идею в bolt. Пара часов и 20 баксов — и у тебя уже готовый рабочий вариант интерфейса. С красивой версткой, с понятной функциональностью — можно идти в коридорки. Получил фидбэк — тут же поправил. Пришел на PBR — получил от разработки вопросы и фидбэк — тут же поправил.
Я бы выделил 5 частей промпта для bolt.new: 1. Сформулировать задачу Пишешь что-то вроде: "Собери интерфейс настройки для AI SDR. В нем должно быть 3 раздела: логика работы агентов, правила сегментации, каналы связи. Дизайн — как у Linear, лаконично и понятно."
2. Расписать детали Добавляешь: "В первом разделе покажи список агентов, возможность их включать/выключать, менять роли. Во втором — таблицу сегментов и критерии фильтрации. В третьем — кнопки подключения интеграций."
3. Дать референсы Кидаешь скриншот интерфейса, который тебе нравится: "Сделай в таком же стиле, но под мою задачу."
4. Добавить figma файл со своими гайдлайнами Это приближает прототип к текущему интерфейсу.
5. Уточнить финальные элементы Пишешь: "Добавь кнопки сохранения, превью финальной логики."
Еще прием — вместе GPT проработать ТЗ для Bolt. Он подскажет какие вещи забыл, что улучшить.
Итог: Через 60 минут у тебя уже есть понятный интерфейс. Не 100% финальный. Но живой. Его можно показать команде. Пощелкать. Пройтись по разделам. И вы понимаете, как это будет работать.
Вместо недель ожиданий и кучи людей, ноут, bolt и видение (это важно!!).
Вообще я в последнее время очень много работаю с bolt.new (и пишу о нем, если вдруг пропустили)).
Думаю запилить большой подробный гайд из материалов, которые изучал и своего опыта. Поставьте 🔥, если было бы интересно и полезно.
Чатгпт как переводчик
Что заметил: теперь когда мне надо перевести фразу или слово с английского на русский, я вбиваю чатгпт, тк он грузится и отвечает быстрее чем гугл переводчик.
В гугл транслейт надо еще выбрать с какого языка на какой перевести, тк вечно неправильно определяет, потом еще хочется чтобы стилистически по контексту подсказал когда фразу использовать.
Что у вас из неочевидных изменении привычек было недавно?
Вот и до меня добрался Ai
Когда начался бум ИИ-IDE и все начали пробовать Cursor, Windsurf и прочие Trae, к нам тоже пришло обновление — нам на рабочих компах все это превентивно заблочили. Оно и так не работало из-за санкций по географическому признаку, но для надежности наши поставили и второй забор. Сливать исходники за рубеж — плохая идея.
Тогда у меня не было каких-то интересных сайд-проектов, на которых можно почувствовать всю мощь ИИ. Я попробовал бесплатные версии Cursor и Trae на верстке лендоса и CMS Strapi, но оказалось, что все они натренированы на старых версиях библиотек и выдают не такой уж и валидный код. Думал даже даунгреднуться на старые версии, лишь бы ускорить разработку, но в итоге разобрался сам. С версткой было еще хуже, я верстаю быстрее, чем переделываю за ИИ. Тот же Trae хорошо накидывает выдуманные интерфейсы, но если есть макеты, то проще сразу делать самому.
В общем, я на несколько месяцев забил на AI-ассистентов и лишь поглядывал за новостями.
🌈 Но тут внезапно и к нам в деревню пришла ИИ-весна. Ребята развернули во внутреннем контуре DeepSeek и Qwen, написали плагины для VS Code и WebStorm, разрешили наконец-то этим пользоваться. И хотя до сих пор чувствуется отставание — это все-таки не Cursor с платной подпиской, но всякую мелочь реально получается отдавать помощнику: — сгенерируй функцию преобразования даты из 01.05.2022 в 1 мая 2022 — вынеси повторяющийся код в отдельную функцию — напиши регулярное выражение для снилс — объясни что делает этот код
Параллельно с инструментами для разработчиков, они внедрили ИИ в систему контроля версий, и теперь кроме ревью людей можно подключить и ИИ-ревьюера, который без стеснения накидает целую панамку комментов.
А как с этим обстоят дела в других компаниях?
✅ Друг из Сбера говорит, что уже во всю используют ГигаЧат. У них есть все интеграции с популярными IDE и даже своя собственная. Есть и нейро-ревью, которое пока что создает больше неудобств, чем пользы, поэтому у большинства команд находится в отключенном состоянии.
✅ Про Яндекс слышал, что сотрудникам не запрещается использовать зарубежные нейросетки, и там кто во что горазд — кто подключает Cursor, кто RooCode, кто просто из ChatGPT куски кода вставляет. Говорят и нейро-ревью, кто-то по личной инициативе затащил.
Мне вот интересно, если в компании разрешают использовать зарубежные модельки и IDE типа Cursor, то как они защищают данные?
❓ А вы используете ИИ на работе и в жизни? Есть какая-то польза или поигрались и забили?
UPD: обожаю такие посты за ваши комментарии — вот где кладезь пользы!
#cursor #llm #chatgpt