{"version": "https://jsonfeed.org/version/1.1", "title": "ML Baldini • Nikita Boyandin", "home_page_url": "https://t.me/ml_baldini", "feed_url": "https://tg.davvie.com/static/-1001939110700.json", "description": "ML Baldini • Nikita Boyandin", "items": [{"id": "https://t.me/c/1939110700/416", "url": "https://t.me/c/1939110700/416", "title": "📉 Что мы упускаем в пропущенных значениях?  Когда в датасете появляется NaN, первая реакция обычно д", "content_html": "📉 <strong>Что мы упускаем в пропущенных значениях?</strong><br /><br />Когда в датасете появляется <code>NaN</code>, первая реакция обычно довольно механическая: удалить строку, заполнить средним, медианой или отдать пропуски модели, которая умеет работать с ними сама.<br /><br />Но missing value - это не просто отсутствие данных. Сам факт того, что значение не было получено, тоже является результатом некоторого процесса, и этот процесс может быть связан с тем, что мы пытаемся предсказать.<br /><br />Представим датчик загрязнения воздуха. Если он случайно теряет 1% измерений из-за проблем с сетью, пропуски вряд ли сильно искажают картину. Но если датчик чаще выходит из строя именно при экстремально высокой концентрации частиц, то отсутствие измерения уже говорит что-то о самой концентрации. Если просто заполнить такие <code>NaN</code> средним значением, мы систематически занизим самые экстремальные наблюдения.<br /><br />Именно поэтому в статистике обычно различают три механизма missingness.<br /><br /><strong>MCAR - Missing Completely At Random</strong><br /><br /><code>P(R | Y_obs, Y_mis) = P(R)</code><br /><br />Вероятность пропуска не зависит ни от наблюдаемых, ни от пропущенных значений. В этом случае удаление строк уменьшает объём выборки и повышает variance оценок, но само по себе не создаёт систематического bias.<br /><br /><strong>MAR - Missing At Random</strong><br /><br /><code>P(R | Y_obs, Y_mis) = P(R | Y_obs)</code><br /><br />Вероятность пропуска зависит от информации, которую мы уже наблюдаем. Например, доход могут реже указывать пользователи определённой возрастной группы. Если возраст известен, механизм пропусков можно моделировать через наблюдаемые признаки.<br /><br /><strong>MNAR - Missing Not At Random</strong><br /><br />Здесь вероятность пропуска зависит от самого неизвестного значения. Например, люди с очень высоким доходом могут чаще отказываться его указывать, или пользователи, которым не понравился экспериментальный интерфейс, могут уйти раньше, чем мы успеем измерить целевую метрику.<br /><br />И это наиболее неприятный случай: распределение пропущенных значений нельзя восстановить только из наблюдаемой части данных без дополнительных предположений о механизме missingness.<br /><br />Поэтому imputation никогда не является полностью нейтральным preprocessing step. Когда мы заменяем <code>NaN</code> средним, строим multiple imputation или используем inverse probability weighting, мы фактически делаем предположение о том, почему данные отсутствуют.<br /><br />Но правильная стратегия зависит ещё и от того, решаем мы задачу <strong>inference или prediction</strong>.<br /><br />В inference нас интересует реальная зависимость между переменными, поэтому informative missingness становится потенциальным источником bias, который нужно корректировать.<br /><br />В prediction ситуация может быть обратной. Сам факт пропуска иногда является полезным feature. Если потенциальный клиент не заполнил бюджет или размер компании, это может быть связано с вероятностью покупки. Поэтому можно добавить <code>is_missing</code> как отдельный бинарный признак или использовать модели вроде gradient boosting, которые умеют обучать направление перехода для missing values непосредственно внутри дерева.<br /><br />Но здесь возникает другое ограничение: механизм пропусков на train должен быть похож на production. Если признак отсутствовал при обучении по одной причине, а после релиза начал отсутствовать по другой, модель может использовать уже несуществующую закономерность.<br /><br />Поэтому главный вопрос при работе с <code>NaN</code> звучит не:<br /><br /><strong>«Чем заполнить пропуск?»</strong><br /><br />а:<br /><br /><strong>«Почему это значение вообще отсутствует?»</strong><br /><br />Потому что иногда пропуск - это потерянная информация, иногда источник bias, а иногда полноценный признак.", "date_published": "2026-09-16T15:00:50+00:00"}, {"id": "https://t.me/c/1939110700/415", "url": "https://t.me/c/1939110700/415", "title": "🌲 Почему Random Forest вынужден быть Random?  Random Forest часто объясняют как набор decision trees", "content_html": "🌲 <strong>Почему Random Forest вынужден быть Random?</strong><br /><br />Random Forest часто объясняют как набор decision trees, обученных на разных bootstrap-выборках, предсказания которых затем усредняются. Но если бы случайность ограничивалась только bootstrap sampling, мы получили бы обычный bagging деревьев. Ключевое отличие Random Forest состоит в дополнительной рандомизации: при построении каждого split алгоритм рассматривает не все признаки, а только случайное их подмножество.<br /><br />Именно эта деталь во многом объясняет, почему Random Forest работает лучше простого bagging.<br /><br />Decision Tree - модель с относительно низким bias, но высокой variance: небольшое изменение обучающей выборки может заметно поменять верхние split&#x27;ы, а вслед за ними и всю структуру дерева. Bagging использует эту нестабильность в свою пользу, обучая много деревьев на bootstrap-выборках и усредняя их предсказания.<br /><br />Проблема в том, что деревья в таком ансамбле не независимы.<br /><br />Если обозначить variance отдельного дерева через <code>σ²</code>, а среднюю корреляцию между деревьями через <code>ρ</code>, variance ансамбля из <code>N</code> деревьев можно приближённо записать как:<br /><br /><pre><br />    <code class='language-'><br />        Var(ensemble) = σ² [ρ + (1 - ρ) / N]{}<br />    </code><br /></pre><br /><br />При увеличении <code>N</code> вторая часть стремится к нулю, но коррелированная компонента остаётся:<br /><br /><pre><br />    <code class='language-'><br />        N -&gt; ∞ =&gt; Var(ensemble) -&gt; ρσ²{}<br />    </code><br /></pre><br /><br />То есть просто добавлять деревья бесконечно бесполезно: если они ошибаются похожим образом, у ансамбля остаётся ненулевой предел variance.<br /><br />Откуда вообще берётся эта корреляция?<br /><br />Представим, что в датасете есть несколько очень сильных признаков. При стандартном построении дерева каждый split выбирается как лучший среди всех доступных features, например по максимальному уменьшению impurity. Поэтому самые информативные признаки будут снова и снова появляться около корня разных деревьев.<br /><br />Bootstrap меняет выборку, но часто недостаточно сильно, чтобы изменить порядок лучших признаков. В результате деревья строят похожие partition пространства объектов и начинают совершать коррелированные ошибки.<br /><br />Random Forest сознательно мешает каждому отдельному дереву быть оптимальным.<br /><br />На каждом узле вместо всех <code>p</code> признаков алгоритм случайно выбирает только <code>m</code>, где <code>m &lt; p</code>, и ищет лучший split внутри этого подмножества.<br /><br />Лучший глобальный признак иногда просто недоступен, поэтому дерево вынуждено использовать второй, третий или альтернативный feature. Для конкретного дерева это может ухудшить качество split&#x27;а, зато ансамбль получает более важное свойство - <strong>decorrelation</strong>.<br /><br />Деревья начинают использовать разные признаки, строить разные структуры и совершать менее похожие ошибки. Random Forest тем самым влияет не только на variance отдельных моделей, но и на covariance между ними.<br /><br />Отсюда возникает основной trade-off <code>max_features</code>.<br /><br />При большом <code>max_features</code> отдельные деревья сильнее, но становятся более похожими и корреляция <code>ρ</code> растёт. При маленьком <code>max_features</code> деревья сильнее различаются, но каждый learner чаще вынужден выбирать менее качественные split&#x27;ы.<br /><br />Задача Random Forest - пожертвовать небольшой частью качества отдельного дерева ради достаточно сильного снижения корреляции всего ансамбля.<br /><br />В этом и заключается одна из главных идей ансамблевых методов: важны не только сильные модели, но и модели, которые <strong>ошибаются по-разному</strong>.<br /><br />Именно поэтому Random Forest должен быть действительно <strong>Random</strong>.", "date_published": "2026-09-09T15:00:29+00:00"}, {"id": "https://t.me/c/1939110700/414", "url": "https://t.me/c/1939110700/414", "title": "Экономика времени  Давно тут не выходило постов и этому есть простое обьяснение - я ленивый, хоть и ", "content_html": "<strong>Экономика времени<br /></strong><br />Давно тут не выходило постов и этому есть простое обьяснение - я ленивый, хоть и правду старался найти силы. Кажется, просто сложно доставать времени на хобби, даже если тебе это хобби нравится.<br /><br />Математика простая: у тебя есть в неделю 7 * 24 = 168 часов времени жизни. Из этого мы вычитаем время на сон(тут я считаю идеальный мир, где мы честно спим 8 часов здорового ) 8 * 7 = 56 часов (остается 112 часов), также время на еду, все дела и остается наши 100 часов.<br /><br />Поехали дальше: 50 часов занимает работа(помимо 40 часов реальной работы, еще 10 часов дорога, доделки и тд), 25 часов занимает магистратура(тут тоже примерно).<br /><br />И кажется все - халявные 25 часов на саморазвитие, хоть на вторую работу иди...<br />Но по хорошему: 7 часов на тренировки в неделю, отдых тоже хотелось бы по 10 часов в неделю включить(тут я имею ввиду правильный отдых с семьей, книжку почитать, да в игрушки позалипать)<br /><br />Твои 8 часов на хобби, но как частов получается так, чтобы ты все сделал четко по таймеру, не переработал, или решил поспать, потому что идет дождь)<br /><br />Очень просто во всем этом плюнуть на все и смириться, но потом страшно смотреть, что кроме работы и учебы что то своего не осталось. Так что отвечая на вопрос, а зачем канал - потому что ты не только работа или учеба)", "date_published": "2026-09-07T14:01:57+00:00"}, {"id": "https://t.me/c/1939110700/413", "url": "https://t.me/c/1939110700/413", "title": "5 сентября пройдёт онлайн-конференции Яндекса о технологических вызовах в эпоху AI.  В эфире эксперт", "content_html": "5 сентября пройдёт онлайн-конференции Яндекса о технологических вызовах в эпоху AI.<br /><br />В эфире эксперты Яндекса, российских и международных IT-компаний обсудят технологии, которые сегодня определяют развитие индустрии: как AI меняет инфраструктуру, архитектуру и подходы к разработке.<br /><br /><strong>📌</strong><strong> Формат мероприятия</strong><br /><br />Программа делится на три трека — Hard (технические доклады с акцентом на сложность задач), Practice (демо и воркшопы с акцентом на конкретные прикладные навыки) и Experiment (лайтнинги и доклады с акцентом на тренды и новые форматы). <br /><br />• Основной формат — онлайн-трансляция для всех зарегистрированных участников. В онлайне можно подключиться к треку Hard и Experiment, а также к Q&amp;A-сессиям со спикерами. <a href=\"https://ya.cc/t/P2jn6Uo_AZEjdq\">Регистрация</a> открыта для всех. <br /><br />• Места в офлайн ограничены. Поэтому регистрация в офлайн проходит по персональным приглашениям программного комитета конференции. Если вы хотите, можно упомянуть про офлайн и возможность оставить заявку в<a href=\"https://deeptechnight.ru/offline\"> форме</a>. Организаторы вернутся с ответом не позднее чем за неделю до события.<br /><br /><strong>Записи выступлений всех докладов опубликуют после мероприятия. </strong><br /><br /><blockquote>📷 <strong>Доклады в онлайне</strong><br /><strong>«За пределами LLM: что дальше после первого поколения AI-систем»<br /></strong>Мо Гавдат, ex-Chief Business Officer (Google X) расскажет о том, как AI изменит разработку ПО, процессы и роль разработчика. Как могут эволюционировать инженерные команды и какие вызовы их ждут.<br /><br /><strong>«От классического ML к генеративным моделям: незаметная революция в RecSys»<br /></strong>Алексей Гусаков, CTO Бизнес‑группы Поисковых сервисов и ИИ (Яндекс) расскажет о том, как новые подходы помогают перейти от надстройки над классическими системами к одностадийным рекомендациям без ручного фичеинжиниринга.<br /><br /><strong>«Physical AI без купюр»</strong><br />Сергей Мельник, Руководитель сервиса Автономного транспорта и роботов (Яндекс), расскажет о том, как построить стек для продуктов Physical AI и запустить его в реальных условиях.<br /><br /><strong>«От поиска к агентам: путь Алисы»</strong><br />Павел Капля, Руководитель службы продуктовой разработки Алисы (Яндекс), разберет, как создаются агентские продукты в Алисе: от SDK и работы с моделями до пользовательского интерфейса. Обсудим ключевые инженерные вызовы и выясним, что нужно, чтобы превратить генеративного агента в массовый продукт. <br /><br /><strong>«AI и продуктивность в Яндексе: что реально заработало»<br /></strong>Андрей Попов, Руководитель Управления машинного интеллекта (Яндекс), расскажет, что происходит с профессией разработчика — ускорение на 10–30% или тихая, но радикальная перестройка команд? Мы весь год измеряли эти показатели и готовы поделиться цифрами.</blockquote><br />Полную программу и доклады можно посмотреть на <a href=\"https://deeptechnight.ru/#headliners-to-scroll\">сайте</a>.<br /><strong>The video is too large.</strong>", "date_published": "2026-08-21T15:01:09+00:00"}, {"id": "https://t.me/c/1939110700/412", "url": "https://t.me/c/1939110700/412", "title": "Самое ценное, что можно получить от работы в большой компании - не строчка в резюме, не новый грейд ", "content_html": "Самое ценное, что можно получить от работы в большой компании - не строчка в резюме, не новый грейд и даже не опыт работы с очередным модным стеком.<br /><br />Это <strong>люди, нетворк и чужие мысли</strong>.<br /><br />За одну случайную беседу на кухне можно узнать больше, чем за несколько вечеров чтения статей. Кто-то расскажет, как устроена ML-система, которую ты видел только снаружи. Кто-то поделится провалом, который сэкономит тебе полгода собственных ошибок.<br /><br />И мне кажется, в этом одна из главных ценностей сильного профессионального окружения: ты постоянно сталкиваешься с людьми, которые думают иначе, чем ты.<br /><br />Но есть проблема - обычно такой нетворк заканчивается стенами офиса.<br /><br />Поэтому мне очень нравятся папки с каналами сотрудников больших компаний. Это буквально возможность заглянуть в головы людей, с которыми иначе ты, возможно, никогда бы не пересёкся.<br /><br />И сегодня как раз такая папка, которую к тому же я собирал) <br /><br />Здесь люди из разработки, ML, аналитики, продукта, менеджмента и других направлений. Кто-то пишет глубоко технические разборы, кто-то - про карьеру, кто-то делится внутренней кухней профессии, а кто-то просто интересными мыслями, которые хочется унести с собой.<br /><br />Получается такой маленький цифровой кофепоинт Яндекса, только без необходимости сначала пройти пять секций собеседования 🙂<br /><br />Мне кажется, каждому будет интересно пробежаться по каналам, открыть несколько постов и найти <strong>2–3 человека, за ходом мыслей которых вам действительно интересно следить</strong>.<br /><br />Потому что хороший нетворк начинается не со знакомства.<br /><br />Он начинается с интереса к тому, <strong>как думают другие люди</strong>.<br /><br />Не промахнись!<br /><br />👉 <a href=\"https://t.me/addlist/KaVv1NTpJKpmYmZi\">https://t.me/addlist/KaVv1NTpJKpmYmZi</a><br />👉 <a href=\"https://t.me/addlist/KaVv1NTpJKpmYmZi\">https://t.me/addlist/KaVv1NTpJKpmYmZi</a><br />👉 <a href=\"https://t.me/addlist/KaVv1NTpJKpmYmZi\">https://t.me/addlist/KaVv1NTpJKpmYmZi</a>", "date_published": "2026-08-19T15:01:50+00:00"}, {"id": "https://t.me/c/1939110700/411", "url": "https://t.me/c/1939110700/411", "title": "Как заработать $8 млн, рискнув всего $5 тысяч  Представьте самолёт на 300 мест. Авиакомпания продаёт", "content_html": "<strong>Как заработать $8 млн, рискнув всего $5 тысяч</strong><br /><br />Представьте самолёт на 300 мест. Авиакомпания продаёт на него 304 билета.<br /><br />На первый взгляд кажется, что кто-то в компании не умеет считать. Но на самом деле это не ошибка, а вполне осознанное решение на основе статистики.<br /><br />Разберём, как здесь работает наш любимый Data Science)<br /><br />По историческим данным, вероятность того, что конкретный пассажир придёт на рейс, составляет 95%. Если продать ровно 300 билетов, самолёт почти наверняка полетит с пустыми местами, а пустое кресло после взлёта скорее всего уже невозможно продать.<br /><br />Поэтому авиакомпания продаёт 304 билета и принимает небольшой риск, что придут вообще все.<br />Количество пришедших пассажиров можно описать биномиальным распределением:<br /><br />- 304 независимых события;<br />- два возможных исхода: пришёл или не пришёл;<br />- вероятность прихода - 95%.<br /><br />Нас интересует вероятность того, что на рейс придёт больше 300 человек.<br /><br />То есть:<br /><pre><br />    <code class='language-'><br />        <br />P(X &gt; 300) = P(301) + P(302) + P(303) + P(304)<br />{}<br />    </code><br /></pre><br />После расчётов получаем вероятность примерно <strong>0,014%</strong>. Это около одного перебронированного рейса на 7200 подобных рейсов. Кажется, что риск небольшой. Но насколько это выгодно в деньгах?<br /><br />Допустим, авиакомпания выполняет 10 000 таких рейсов. На каждом она продаёт четыре дополнительных билета:<br /><pre><br />    <code class='language-'><br />        <br />10 000 × 4 = 40 000 дополнительных билетов.<br />{}<br />    </code><br /></pre><br />При средней цене билета $200 получаем:<br /><br />40 000 × $200 = <strong>$8 000 000 дополнительной выручки</strong>.<br /><br />При этом математическое ожидание количества пассажиров, которым не хватит места, составляет всего около 1,66 человека на все 10 000 рейсов. Даже если каждому выплатить компенсацию, оплатить отель и пересадить на следующий рейс, расходы могут составить меньше $5000.<br /><br />С точки зрения математики выбор очевиден:<br /><br /><strong>рискнуть $5000 ради потенциальных $8 млн.</strong><br /><br />Именно поэтому овербукинг существует. Вот и любите этот ваш DS.", "date_published": "2026-07-31T14:02:26+00:00"}, {"id": "https://t.me/c/1939110700/410", "url": "https://t.me/c/1939110700/410", "title": "Топ 6 ошибок в резюме, из-за которых вас могут не позвать на собеседование  Можно быть сильным специ", "content_html": "<strong>Топ 6 ошибок в резюме, из-за которых вас могут не позвать на собеседование<br /></strong><br />Можно быть сильным специалистом, но получать мало откликов просто потому, что из резюме это непонятно. HR не будет работать самостоятельно искать ваши сильные стороны. <br /><br />Вот шесть ошибок, на которые я обращаю внимание:<br /><br /><strong>1. Слишком длинное резюме<br /></strong>Любое резюме больше 3-4(если вы не лид) страниц вряд ли будет релевантным и будьте уверены, что HR даже половины не прочитает. Оно выглядит как то, что вы не умеете выделять главное и четко показывать, почему именно вы идеальный кандидат<br /><br /><strong>2. Нерелевантный опыт<br /></strong>Если вы откликаетесь на AI/LLM позицию, то не нужно заполнять резюме проектами с классикой или с CV. Если вы настолько крутой специалист, что у вас есть проекты на каждую из областей, то напишите отдельные резюме на каждый домен<br /><br /><strong>3. Отсутствие результата<br /></strong>Тут одно слово - метрики. Именно на чаще всего смотрит работодатель, потому что ничего вас не опишет лучше, чем цифры<strong><br /></strong><br /><strong>4. Нет чёткой позиции чем вы занимались в проектах<br /></strong>Для каждого вашего проекта, который указан в резюме, вы четко должны рассказать ваше участие в конечном результате. Конечно, есть личные проекты, но в остальных вы обязаны четко понимать вашу роль<br /><br /><strong>5. Отсутствие ссылок на портфолио или отсутствие самого портфолио<br /></strong>Часто встречаю, что есть определенные проекты и/или ачивки, но на них нет ссылок не на гите, ни где-либо еще. Чтобы не выглядеть воздуханом, приложите какой-нибудь ресурс, который подтвердит вашу работу<strong><br /></strong><br /><strong>6. Отсутствие структуры и выделения<br /></strong>Выделяйте важные пункты в своем резюме, обязательно структурируете его, чтобы самая релевантная информация сразу попадала на глаза рекрутора<br /><br />Какие пункты резюме для вас еще важны и на что вы чаще всего обращаете внимание?)", "date_published": "2026-07-29T14:04:01+00:00"}, {"id": "https://t.me/c/1939110700/409", "url": "https://t.me/c/1939110700/409", "title": "Как работает агентский RAG?  Обычный RAG работает достаточно просто: вопрос -&gt; поиск документов -", "content_html": "<strong>Как работает агентский RAG?</strong><br /><br />Обычный RAG работает достаточно просто:<br /><strong>вопрос </strong>-&gt;<strong> поиск документов </strong>-&gt; <strong>ответ LLM</strong><br /><br />Пользователь задаёт вопрос, система находит похожие фрагменты в векторной базе и передаёт их модели.<br />Проблема в том, что никто не проверяет: <strong>а найденные документы вообще отвечают на вопрос?</strong><br /><br />Например, пользователь спрашивает:<br /><pre><br />    <code class='language-'><br />        <br />Может ли подрядчик работать удалённо из другой страны?<br />{}<br />    </code><br /></pre><br />Для нормального ответа могут понадобиться:<br />• политика удалённой работы;<br />• договор с подрядчиками;<br />• список разрешённых стран;<br />• налоговые ограничения.<br /><br />Обычный RAG может найти только первый документ и уверенно сгенерировать неполный ответ.<br /><br /><strong>Что меняет агентский RAG<br /></strong><br />Он добавляет между поиском и генерацией агента, который может принимать решения.<br />Теперь схема выглядит так:<br /><strong>вопрос </strong>-&gt;<strong> поиск </strong>-&gt;<strong> проверка </strong>-&gt;<strong> решение </strong>-&gt;<strong> повторный поиск или ответ</strong><br /><br />После retrieval агент оценивает:<br /><br />• релевантны ли найденные документы;<br />• достаточно ли информации;<br />• нет ли противоречий;<br />• нужно ли искать в другом источнике;<br />• стоит ли переформулировать запрос.<br /><br />Если контекста недостаточно, система не отвечает сразу, а пробует другой путь.<br /><br /><strong>Три основные возможности<br /></strong><br /><strong>1. Routing</strong><br />Агент сам выбирает источник:<br />• документы;<br />• SQL-база;<br />• интернет;<br />• API;<br />• несколько источников одновременно.<br /><br /><strong>2. Query refinement</strong><br />Если запрос слишком общий, агент переписывает или разбивает его на несколько подзапросов.<br />Например:<br /><pre><br />    <code class='language-'><br />        <br />«Правила удалённой работы»<br />«Ограничения для подрядчиков»<br />«Работа сотрудников из других стран»<br />{}<br />    </code><br /></pre><br /><br /><strong>3. Self-evaluation</strong><br /><br />После поиска агент проверяет качество контекста. Если документ устарел, не отвечает на вопрос или противоречит другому источнику, запускается новая итерация поиска.<br /><br />По сути:<br /><strong>Обычный RAG:</strong> нашёл -&gt; ответил.<br /><strong>Агентский RAG:</strong> нашёл -&gt; проверил -&gt; попробовал ещё раз -&gt; ответил.<br /><br /><strong>Но агентский RAG нужен не всегда</strong><br /><br />Каждая дополнительная итерация означает:<br /><br />• ещё один вызов LLM;<br />• большую задержку;<br />• дополнительные токены;<br />• более сложную отладку;<br />• менее предсказуемое поведение.<br /><br />Если у вас простые FAQ и чистая база знаний, обычный RAG будет быстрее и дешевле.<br /><br />И важный момент: <strong>агент не исправит плохой retrieval.</strong> Именно поэтому в пайплайне любого RAG так важны хороший датасет и четко собранная БД<br /><br />💗 - на еще один обзор<br /><img src=\"https://tg.davvie.com/static/-1001939110700--409-0.jpg\" alt=\"media\"/><br /><img src=\"https://tg.davvie.com/static/-1001939110700--408-1.jpg\" alt=\"media\"/>", "date_published": "2026-07-27T15:01:52+00:00", "attachments": [{"url": "https://tg.davvie.com/static/-1001939110700--409-0.jpg", "mime_type": "image/jpeg"}, {"url": "https://tg.davvie.com/static/-1001939110700--408-1.jpg", "mime_type": "image/jpeg"}]}, {"id": "https://t.me/c/1939110700/407", "url": "https://t.me/c/1939110700/407", "title": "Как меняются собеседования и процесс найма со стороны программистов  За последние несколько лет рыно", "content_html": "Как меняются собеседования и процесс найма со стороны программистов<br /><br />За последние несколько лет рынок IT сильно поменялся: если раньше ты мог написать open to work на линке и закинуть свое резюме в вакансии, которые нравятся именно тебе, то сейчас поиск работы сильно поменялся и начинается он задолго до того, как ты начинаешь искать вакансии(и вообще в целом начинаешь ли ты их искать?)<br /><br /><strong>Шаг 0. Нетворк<br /></strong>Как ни странно, ничего лучше этого пока не придумали. Когда ты только начинаешь задумываться о смене работы, берем и начинаем шерстить контакты, причем не только близких знакомых, но и HR, если раньше мы могли на них забить, то сейчас нужно чуть ли не папку создавать, потому что только они знают какие вакансии реальные<br /><br /><strong>Шаг 1. Реферальные программы<br /></strong>Собираем список компаний, куда мы хотим и ищем людей, которые работают в этих компаних, чем выше по должности, тем лучше. Рефералки один из немногих все еще работающих способов, с помощью которого можно пройти через сотни других резюме и ATS сразу к человеку<br /><br /><strong>Шаг 2. Ваше резюме<br /></strong>К сожалению, если вы не из вышки и мфти, вы попадаете в огромную кипу резюме, таких же крутых как и вы. Нужно четко и, желательно, в одной странице показать, почему вы крутой кандидат. Так что когда вы участвуете в хакатонах, всегда сохраняйте сертефикаты об участии, даже если вы ничего не делали, всегда под соревнование можно будет собрать сильный репозиторий или поправить ошибки в уже существующем<br /><br /><strong>Шаг 3. Резюме под вакансию<br /></strong>Если вы уже начали откликаться по вакансиям, то постарайтесь, чтобы ваше резюме максимально соответствовало позиции и уровню, на который вы идете. Понятно, что на позицию LLM инженера нерелевантно будет cv проекты, но многие люди забывают, что те проекты, которые были релевантны на junior+ и middle, будут требовать другого позиционирования на позицию Senior, так как будет важно понимание продукта и метрик, которые удалось достичь<br /><br /><strong>Шаг 4. Подготовка к собеседованию<br /></strong>Твоя подготовка должна начинаться хотя бы за неделю, а лучше за две. Спасает то, что сейчас собесы разделены по секциям и в условном Яндексе или Авито тебя будут спрашивать либо только алгосы, либо ML<br /><br /><strong>Шаг 5. Даже после получения оффера не заканчивай работать над своим личным профилем<br /></strong>Сейчас мы находимся в эпохе сокращений и оптимизации, поэтому тебе нужно всегда быть на готове и иметь релевантный опыт уже исходя твоей новой позиции. Лучший вариант, когда твои проекты в магистратуре попадают к тебе на kaggle или гит, чтобы не тратить время дважды<br /><br />Не нужно выходить на новую работу и сразу готовиться к следующей. Но стоит сохранять результаты проектов, фиксировать достижения и понимать, как меняется ваша ценность на рынке. Тогда поиск работы начнется не с попытки вспомнить, чем вы занимались последние три года, а с уже собранного и понятного профессионального опыта.", "date_published": "2026-07-24T15:03:54+00:00"}, {"id": "https://t.me/c/1939110700/406", "url": "https://t.me/c/1939110700/406", "title": "", "content_html": "<br /><img src=\"https://tg.davvie.com/static/-1001939110700--406-0.jpg\" alt=\"media\"/><br /><img src=\"https://tg.davvie.com/static/-1001939110700--405-1.jpg\" alt=\"media\"/><br /><img src=\"https://tg.davvie.com/static/-1001939110700--404-2.jpg\" alt=\"media\"/>", "date_published": "2026-07-20T08:01:22+00:00", "attachments": [{"url": "https://tg.davvie.com/static/-1001939110700--406-0.jpg", "mime_type": "image/jpeg"}, {"url": "https://tg.davvie.com/static/-1001939110700--405-1.jpg", "mime_type": "image/jpeg"}, {"url": "https://tg.davvie.com/static/-1001939110700--404-2.jpg", "mime_type": "image/jpeg"}]}], "icon": "https://tg.davvie.com/static/avatars/ml_baldini.jpg"}