Как же это удобно! Хочешь что-то от Инфры — написал в Service Desk, тебя тегнули в TiMe в треде под уведомлением о создании задачи в Жире. А через несколько минут в том же треде тегнули ещё раз, чтобы сообщить, что задача выполнена.
Как перевести 3000 сотрудников на корпоративный VPN и не сойти с ума (ну, почти)

Уязвимости в Jira и Confluence — неизбежное зло. Мы все привыкли и научились с ними справляться: вывесили дополнительный пароль, обновились до безопасной версии и живём хорошо, пьём джус.
А потом оказалось, что с третьего квартала 2024 года кина обновлений Atlassian не будет. И вскоре любая серьёзная уязвимость стала бы для нас фатальной.
Сколько денег вы теряете на инцидентах

Привет! Меня зовут Женя, я аналитик данных в онлайн-школе Skyeng.
Недавно наши спецы на полтора часа уронили прод, и на этом мы потеряли… Кстати, а сколько?
Давайте разберёмся, зачем и как считать потери на инцидентах, можно ли делать это автоматически и как продать ценность расчётов бизнесу.
Какие навыки понадобятся продакту в ближайшие 5 лет

Меня зовут Марго Седова, я Head HR-продукта в Skyeng. Отвечаю за внутреннюю экосистему, которая строится вокруг EJM сотрудника в компании ― от момента, когда соискатель только подумал, что хочет у нас работать, и вплоть до его exit-интервью.
Сегодня расскажу, как в ближайшие 3–5 лет будет меняться роль продакт-менеджера и какие навыки понадобятся тем, кто хочет изловить золотую антилопу.
Дисклеймер: когда мы говорим о будущем, это всегда про ощущения на кончиках пальцев. Никто не может знать точно, что ждёт нас впереди. Зато мы можем отследить движение из прошлого в настоящее — и попробовать предугадать, каким же будет наше «завтра».
Как AI меняет образование здесь и сейчас

Привет! Меня зовут Саша Фомиченко, я работаю в Skyeng в отделе R&D и занимаюсь инновациями, вовлечением и играми. Проще говоря, я продакт-менеджер. Моя зона ответственности — технологии, которые должны повысить вовлечение в образовательный опыт наших учеников и их трансфер в реальные образовательные продукты нашей школы.
И сегодня я расскажу, как у нас устроены уроки: как они проходят, из чего состоят и на что мы опираемся, разрабатывая контент.
Как я уронил прод на полтора часа (и при чем тут soft delete и partial index)

В жизни любого разработчика наступает момент, когда он роняет прод. Представьте: полдень, в Skyeng час пик, тысячи запланированных онлайн-уроков, а наша платформа лежит…
Все упало из-за ошибки в процессе деплоя, которая связана с тонкостью PostgreSQL. К сожалению, на этом моменте у нас прокололась не одна команда. И чтобы такое больше не произошло ни у нас, ни в другой компании — велкам под кат.
Решаем ошибку при миграции на Storybook 7

Привет, я фронтенд-разработчик в Skyeng. При переходе с шестой версии Storybook на седьмую встретилась ошибка «Providers from the BrowserModule have already been loaded. If you need access to common directives such as NgIf and NgFor, import the CommonModule instead».
В этой статье объясняю, почему возникает баг и как его исправить.
Как я искал ПДн в 300 базах данных [и сохранил рассудок]

Пришли как-то ко мне парни из службы безопасности и говорят: «Надо обойти все БД и собрать с них персональные данные». Потому что в России изменилось законодательство и теперь их нужно хранить в особо защищённых хранилищах.
Если этого не сделать, то рано или поздно данные могут утечь и ещё можно нарваться на высокие штрафы при утечке. Задача безопасников (и основная выгода от их наличия в компании) — минимизация таких рисков.
Вот только у нас несколько сотен баз данных, где-то около трёхсот. Даже если просто заглянуть в них и попытаться сделать выборку — это займёт весьма продолжительное время. И никто не имеет полной картины, где что хранится.
Скорее всего, вам скоро предстоит такое же, поэтому сейчас покажу артефакты, которые я нашёл в процессе.
Итоги ежегодного опроса PHP-сообщества: результаты за 2023

Привет! Как и в предыдущие три года, в декабре 2023 было запущено исследование русскоязычного PHP-комьюнити. По итогам получился срез данных: на каких версиях PHP сидят в командах, какой фреймворк выбирают для рабочих проектов, а какой для личных, как относятся к ИИ-инструментам для разработки, кого считают человеком года и многие другие аспекты. Опрос помогают составлять и распространять ребята, которые развивают городские и региональные PHP-сообщества, а также руководят каналами и подкастами про PHP.
Посмотрим, каким был 2023 для сообщества, в 1120 мнениях.
Результаты также можно найти на phpcommunity.ru. Вот итоги за 2022, 2021, 2020.
Как новому тимлиду завоевать доверие команды: 9 правил, которые я усвоил за полгода в этой роли

Привет! Меня зовут Кирилл Комиссаров, я пришел на позицию лида примерно полгода назад. Срок небольшой, но за это время многое понял о том, почему доверие в команде так важно.
Вы замечали, что одно и то же мнение, высказанное разными людьми, воспринимается по-разному? Я часто сталкивался с ситуацией, когда один человек предлагает что-то и слышит десятки аргументов против своей идеи. А потом ту же мысль высказывает другой сотрудник, которому команда доверяет больше, и несогласие исчезает. Выходит, чем выше у вас кредит доверия, тем окружающим проще согласиться с вашим мнением.
Позиция тимлида вообще предполагает relationship management, который может быть направлен как и на команду, так и наверх, в сторону стейкхолдеров. Но в этой статье я хочу поговорить именно про связку TL + Dev Team. Руководителю важно выстроить и поддерживать доверительные отношения с сотрудниками. Это поможет эффективно управлять командой и добиваться слаженной и продуктивной работы.
Если люди вам доверяют, вы будете получать более полную и достоверную информацию, сможете вовремя реагировать на проблемы, решать конфликты и строить долгосрочные планы.
Я говорил с коллегами, читал статьи по теме, прослушал курс Стратоплана и в итоге собрал несколько идей и правил, которые сам применяю на практике, чтобы наладить стабильные процессы в команде и добиться доверия сотрудников.
Продакт против директора

Аджайл-аэропорт
Продакт идеален для чисто ИТ-продукта, а традиционный менеджер — для стройки, финансового или образовательного проекта. Только вот у нас стык цифрового и образовательного проекта, и потому ни тот ни другой не подходят в полной мере.
Продуктовый менеджер, или ПМ, — относительно новая профессия, появившаяся в момент, когда стало нужно управлять командами в бизнесе, который основан на ИТ.
Главная сила ПМ — возможность очень быстро разворачивать продукт в сторону потребностей рынка. Это руководители, которые в первую очередь знают, что нужно рынку, и уже потом делают общее руководство вроде планирования, бюджетирования, работы с командой и так далее. То есть главное требование к ПМ — умение проверять гипотезы.
«Обычные» менеджеры заточены под другое: они умеют продвигать проект вперёд. Они знают, почему важно заполнять кучу скучной документации, почему после встреч нужно закреплять результаты, они оставляют артефакты после каждого действия, они планируют риски сильно заранее, они считают в XLS-таблицах, рисуют диаграммы Ганта и знают, как зовут детей каждого в команде.
На практике в наших проектах «чистый» ПМ, уж простите, скорее всего, пропустит важные риски и с некоторой вероятностью сделает суперпродукт, но, скорее, облажается по срокам, юнит-экономике или команде. «Чистый» менеджер сделает всё в бюджете, в срок, экономика будет сходиться, но продукт не будет нужен рынку.
Про важность общего управления почему-то говорят очень мало. Кажется, пора признать, что нам всем оно нужно.
Инклюзивность в продуктах: новые возможности? Или путь в никуда?

Привет, я Марго — инклюзивный продакт. Впервые вопросом «Какого черта одним можно, а другим нет?» я задалась после отдыха в Турции, где мы с друзьями покоряли горки в аквапарке. Все было круто, потом мы прилетели в Россию и решили повторить, но на аттракционы… меня не пустили.
В ответ на праведный и почти цензурный гнев я услышала что-то про СанПиН (которых не нашла) и грязные колеса (которые я не подумала протереть, да же ж?).
Так вот, именно эту проблему решает инклюзивность: чтобы все могли разгонять адреналин на горках, пользоваться любыми приложениями и устройствами, пить пиво и тусить в клубах, вне зависимости от физических, национальных, гендерных и других особенностей.
И если вы подумали: «Эта ваша мораль и этика вовсе не про бизнес, а мы тут деньги зарабатываем», у меня для вас новости.
Инклюзивность — это действительно +100500 к карме, а еще способ сыграть на метриках и получить прибыль. Как? Погнали читать!
Распланировать бюджет компании и не поседеть: как мы автоматизировали процесс, который не любит никто

Любой бизнес, хоть кофейня, хоть компания по производству космических шаттлов, планирует ресурсы и считает, что во сколько обойдется. А одна из главных статей расходов — это ФОТ, фонд оплаты труда. Нужно же знать, сколько заплатить сотрудникам, какие вакансии открыть, сколько на них можно потратить и как все это приблизит компанию к ее мечте.
Полировать бюджет можно месяцами. Особенно если у вас 3 000 сотрудников. Нужно решение, которое позволит быстро запланировать ФОТ и не запутаться.
Меня зовут Марго Седова, я Head of HR Product в Skyeng. Планировать ФОТ в нашем случае вручную ― вообще не вариант. Расскажу, как мы боролись с нервным тиком при словах «планируем годовой бюджет» и пробирались через чащу ручных процессов к светлому автоматизированному будущему. Пристегните ремни, погнали.
Как мы отправляем фишинг на своих сотрудников, чтобы не расслаблялись по ИБ

Социнжиниринг выглядит вот так
Мы решили проверить, как поведут себя наши сотрудники в условиях реальной фишинговой атаки. Целью было понять, кому нужно дообучение и сколько денег компания может потерять от, в общем-то, примитивной атаки.
Фишинговый тест — это методика, при которой компания рассылает своим сотрудникам похожие на вредоносные электронные письма с целью проверки их реакции на кибератаки.
Идеальный результат такого теста — когда все получатели либо сообщают о подозрительных письмах в свои ИТ-отделы или службы безопасности, либо удаляют или не реагируют на них.
Наш случай сразу пошёл далеко от идеального. Рассказываю.
Ближайшие события
Standalone компоненты и tree-shaking

Уже сложно представить наши приложения без такой оптимизации, как tree shaking.
Tree-shaking — «встряхивание дерева», удаление неиспользуемого кода из бандла приложения.
А причем тут standalone компоненты в названии статьи?
Просто существуют некоторые нюансы при встряхивании, о которых стоит знать при работе с такими компонентами. Как говорится, предупрежден — значит вооружен.
Далее можете почитать немного теории или сразу перейти к основной мысли.
Метаданные как обезбол при миграции

Привет! Меня зовут Наташа Красильникова, я старший аналитик команды Operations Analytics в Skyeng. Мы завязаны на работе с сотней сервисов компании: забираем данные из сервисов и интегрируем много локальных документов с бизнесовыми маппингами, таргетами, а иногда и просто какими-то дополнительными данными.
Когда пришло время мигрировать наше многолетнее легаси на новый DWH… что ж, мы пережили целый спектр острых эмоций. И, конечно, выработали ноу-хау, чтобы сгладить переход и сделать его менее болезненным. В статье расскажу, что придумали и как применяли.
Ещё пара революций школьного образования

Нам понадобилось переизобрести онлайн-образование для дошкольников и школьников.
Мы учим миллионы детей школьным предметам и делаем дошкольную подготовку. Всё это онлайн, и базовая модель была как с английским — один на один с преподавателем. В начале этого года мы исчерпали рынок русскоязычных учителей полностью. Даже с учётом того, что у нас есть собственные курсы подготовки, они дали всего несколько тысяч новых специалистов.
Узким местом онлайн-системы стал учитель. В школе эта проблема решается просто: там учитель делится на всех учеников класса. А вот при переходе к онлайн-формам выяснилось, что это не работает так же хорошо, как в офлайне.
Собственно, у нас было два пути:
- Повышать цены для родителей, чтобы привлекать больше учителей. Но нет, так не выйдет, мы упёрлись в эластичность по цене, в России у людей не настолько много денег.
- Или менять саму методологию так, чтобы убрать «бутылочное горлышко».
Автоматизировать учителя или убирать человека из обучения — это очень плохая идея.
Кроме самой программы обучения, идеально отточенной методологами, нужна мотивация. Без живого человека мотивация пока не работает ни в одной системе образования.
В итоге научно-методологических исследований и практических опытов, а потом года обкатки всего этого в реальности мы всё же нашли промежуточные решения и вышли на понимание, как поменяется профессия учителя в будущем.
В общем, сейчас традиционный учитель делает вовсе не то, в чём он может дать максимальный эффект для прогресса учеников.
Тот самый случай, когда мы за один месяц рожали то, что надо было делать три (не повторяйте, это больно)

Ачивка «Терминатор»: прибить проект, потому что проще заново
У нас есть внутренний продукт для оценки сотрудников. Он сменил три проджекта, три тимлида разработки, двух дизайнеров. Я была третьим проджектом в этой наследной цепочке.
Что пошло не так? Ну, в какой-то момент пришёл бизнес и сказал: чуваки, вот у нас замечательное ТЗ, его нужно сделать. Команда в первом составе собрала аналитику, прикинула список действий, заложила 15% времени на непредвиденное и приступила к разработке.
А в декабре бизнес сказал, что мы должны запуститься через месяц.
Мы катастрофически не успевали, стали выпускать поэтапно и седеть. В этот месяц родилось то, что мы очень вежливо называем MVP. Он был настолько прекрасен, что части бека выполнялись на фронте. Потому что фронтендер помогал, чем мог, и делал математику для обработки данных прямо в формах ввода этих данных.
Первый состав по каким-то личным причинам (возможно, кровью из глаз) не смог взять это на поддержку, сменились тимлид и проджект. Бизнес считал, что проект нормально работает, нормально поддерживается и всё с ним будет хорошо. И начал выкатывать новые запросы на фичи в нон-стоп режиме.
Второй тимлид выгорел и уехал в условный Гондурас.
Всё это время в команде был разработчик, у которого был гениальный план, что бы он сделал, если бы стал тимлидом. В какой-то момент его мечта сбылась. Он стал тимлидом. Тут нам как раз принесли новый блок с жёстким дедлайном в три месяца, надо было сделать новый продукт. На всё это у нас было времени с мая по июль.
Короче, мы посовещались и пристрелили к чертям весь проект.
Мечта была в том, чтобы написать его заново.
Не пропусти это при работе с Nx

Работая с монорепозиторием, ты наверняка слышал о наборе инструментов Nrwl Nx. Если вкратце, то Nx ускоряет и упрощает работу с монорепой, снабжает полезными утилитами. Держи документацию.
Часто работа с Nx заканчивается на имеющихся дефолтных настройках. Все остальное остается черным ящиком. Время сборки проектов начинает расти, а причины так и остаются неизвестными. Может, есть что-то, что способно улучшить работоспособность монорепы и хотя бы частично решить проблемы?
Предлагаю отправиться на изучение официальной документации и поискать лайфхаки вместе со мной. Ниже приведу список полезных инструментов и механизмов, вкратце расскажу о них и дам ссылки для детального изучения.
Итак, что же ты мог упустить при работе с Nx:
• nx run-many
• dependency graph + nx affected
• nx-enforce-module-boundaries es-linting
• computation cache
• nx cloud
• buildable libs
Меня нанял робот, или рекрутинг сотрудников как продукт

Казалось бы, рекрутинг высококвалифицированных сотрудников не может быть продуктом. Это процесс, который невозможно полностью автоматизировать: речь идёт о людях и их мастерстве. Особенно дело касается преподавателей, где в отличие от многих профессий процесс их привлечения включает много этапов: разностороннюю оценку квалификации, опыта, навыков, проверку биографии и так далее.
Однако мы с этой задачей справились, у нас просто не было другого выбора. Когда нужно привлекать по 800–1 000 новых преподавателей в месяц, невозможно делать это ручными методами, поэтому нам пришлось построить автоматическую систему найма, через которую сегодня проходит до 150 000 кандидатов в год. Это один из самых массовых наймов преподавателей в мире.