👨💻 Герой: Антон Леонов, 26 лет, Москва. Окончил бакалавриат и магистратуру ВШЭ
🛠 Работа: Менеджер по анализу данных, работает в офисе 5/2. Обычно начинает в 9, заканчивает в 20.
🧭 Рынок: менеджер по анализу данных в Москве: 1547 вакансий.
Wap-сайты на мобильном телефоне
Компьютер у меня появился в 9-м классе, но программировать я пробовал и до этого: первые попытки что-то разрабатывать были связанными с мобильным телефоном. Айфонов и андроидов тогда ещё не было, зато были распространены телефоны на ОС Symbian. И там можно было писать код.
Сайты для мобильных телефонов тогда использовали технологию wap. Это сейчас делают адаптив, а тогда это был полноценный отдельный сайт, со своим оформлением и элементами управления, чтобы его можно было использовать с кнопочной Нокии. Так что я начал разрабатывать wap-сайты.
Информатика в школе была не очень глубокая, так что я учился всему самостоятельно. Скачивал книги на телефон в формате txt, там же их читал и пробовал писать сайты. Сейчас есть удобные среды разработки, которые помогают проверять синтаксис, а тогда я писал код просто в блокноте — набирал как эсэмэску.
Я брал совсем небольшие деньги за проекты, например, мог написать за 800 ₽ гостевую книгу. На некоторых своих сайтах продавал рекламу, а ещё сделал социальную сеть для своей школы. Мне тогда было 13–14 лет, это были мои первые деньги.
Мы с другом написали чат, который работал по блютусу. Там была p2p-система: устройства связывались через блютус и создавался диалог. Если в зоне доступа было ещё одно устройство, его пользователь тоже мог подключиться и увидеть историю переписки. А когда соединение разрывалось, чат пропадал.
Своя программа обучения
Всю старшую школу я занимался разработкой, так что к выпуску уже понял, по какому профилю хочу продолжать обучение. Я пошёл в Московский институт электроники и математики НИУ ВШЭ на кафедру информационных технологий и вычислительной техники. Магистратуру в будущем тоже окончил в вышке: начал по направлению «Журналистика данных», а закончил — на «Бизнес-аналитике и системах больших данных».
В бакалавриате я быстро понял, что именно по разработке вряд ли узнаю много полезного. Я хотел получить комплексное образование по computer science, но программа у нас была не очень прогрессивная. Нам дали хорошую математическую базу, а прикладные дисциплины — так себе. Так что я решил составить собственную образовательную программу и искать под неё онлайн-курсы.
Я наткнулся на «Дваче» на пост «Что нужно знать специалисту по компьютерным наукам» и начал идти прямо подряд по пунктам. В 2012 году у меня появились первые сертификаты с онлайн-курсов, с тех пор их много накопилось. Например, прошёл курс по алгоритмам от Принстона, курс по компиляторам.
В вузе просто выбрал стратегию, которая позволила с наименьшими усилиями нормально закрывать зачёты и экзамены. При этом периодически подбивал товарищей на хакатоны и конференции, где можно было попрактиковаться в полубоевом режиме.
Первая работа и попадание в Лабораторию Касперского
После второго курса я решил, что пора начинать работать по специальности. Отучился в школе тестировщиков в одной компании и устроился к ним. Поехал на первый рабочий день и оказалось, что мне от дома до офиса добираться 2,5 часа: нужно ехать на другой конец Москвы, а там ещё час на автобусе. Ещё оказалось, что зарплату мне будут платить в конверте.
Я съездил так пару раз и понял, что это плохая идея: тратить пять часов в день на дорогу ради того, чтобы получать МРОТ в конверте. С учёбой этот вариант совсем не сочетался, и на третий день я сказал, что не вернусь.
Я на тот момент уже знал PHP, HTML и CSS, так что решил, что надо идти в веб-разработку. Подался в несколько мест, и в итоге меня взяли в Лабораторию Касперского.
Работа в поддержке Касперского
Меня взяли в команду B2B-портала — это большая платформа для партнёров, которые продают антивирус Касперского по всему миру. Сначала я там занимался поддержкой — отвечал на письма, помогал пользователям с платформой.
В поддержку часто прилетали довольно интересные запросы, у неожиданно большого количества пользователей платформы были проблемы с базовыми техническими вещами. Это странно, учитывая, что они продавали компаниями софт. Например, некоторые не могли напечатать страницу с сайта. Нам даже пришлось сделать для этого отдельную кнопку.
В нашей команде был стандартный линейный путь: новички сначала занимаются только поддержкой пользователей, потом начинают делать небольшие задачки по разработке, изучают технологии и постепенно переходят в полноценную разработку. Так что я со временем всё меньше отвечал на письма и всё больше писал код.
Платформа на языке Cold Fusion
Платформа, над которой я пришёл работать, не была внутренней разработкой. Её написала английская компания на языке Cold Fusion. Почему именно на нём — для меня так и осталось загадкой. У него есть свои плюсы: фактически это синтаксис HTML и загрузка данных из SQL, так что он отлично справляется с тем, чтобы вывести данные на страницу. Но специалистов по этому языку в России мало.
Какие-то изменения на платформе мы могли делать сами, но о многом приходилось просить авторов платформы. А они могли запросить космический ценник: как-то за изменения значения одной переменной они выставили счёт на 45 тысяч фунтов стерлингов. В итоге мы договорились, что они позволят нам самостоятельно сделать такую доработку — это заняло полчаса.
В то время я особенно прокачал навык делать костыли на JS. Мы не могли менять какие-то части страницы, в итоге я писал скрипты, которые полностью переделывали логику, собирали данные, а потом подставляли в структуру старой страницы.
Для авторов платформы мы были большим, но требовательным заказчиком. Постепенно мы выбивали для себя всё больше возможностей по доработке платформы на нашей стороне, пока не смогли редактировать практически всё. Но у архитектуры были фундаментальные ограничения, так что мы решили переезжать на новую платформу.
В итоге мы провели тендер, выбрали подходящую платформу и переехали на неё. Это был конструктор, из которого можно было собрать бизнес-процесс и написать к нему любой код. Дизайнеры полностью перерисовали портал, мы полгода разрабатывали каркас, а потом за три месяца запустились и выкатили портал партнёрам по всему миру.
Команда и задачи в Касперском
У нас была небольшая команда, на пике нас было шестеро: менеджер, несколько разработчиков и стажёры. Мы подчинялись главе операций и продаж. К нам приходили маркетологи и продавцы, просили о какой-то функциональности, а мы рассказывали, что и в какой срок можно реализовать. На тот момент у нас не было спринтов или эджайла. К нам просто приходили коллеги с запросами, мы оценивали сроки на глаз и работали.
Особенность Касперского в том, что продукт продают по всему миру, а в разных регионах сильно отличаются требования. Например, на Ближнем Востоке крупные руководители могут для работы пользоваться только телефоном. И хотят прямо с него оформить несколько тысяч лицензий. Так что нам нужно было решить задачу: как сделать удобный инструмент по выбору продуктов с телефона, как это потом перевести в бизнес-логику заказов.
Или нужны были инструменты для маркетинга: для разных партнёров на платформе делали разные промоакции, индивидуальные предложения. Ещё онбординг для них же, чтобы они научились работать в системе. Это важный момент: чем лучше партнёр ориентируется в платформе, тем проще ему продавать, тем больше в итоге зарабатывает компания.
Переход в X5 Retail Group
Я проработал в Касперском четыре с половиной года и со временем понял, что уже долго сижу на одном месте. Ещё я не очень хотел дальше развиваться в вебе: меня немного смущает постоянная гонка технологий, когда каждый год появляется новый фреймворк и все идут на нём писать. В нашем отделе такого не было, но в индустрии я часто замечал стремление не столько подобрать подходящий инструмент, сколько освоить новый.
К тому времени я уже основательно интересовался анализом данных и решил, что самое время сменить профессиональную область. Мы как раз закрыли большой проект в Касперском, и я ушёл.
У аналитиков есть большой чат в слаке — Open Data Science. Я разместил там резюме, поотликался на вакансии и через месяц уже работал в X5 Retail Group. Теперь я здесь менеджер по анализу данных.
X5 Retail Group — большая компания, в неё входят магазины «Перекрёсток», «Пятёрочка», «Карусель», сеть дискаунтеров «Чижик», доставки из «Перекрёстка» и «Пятёрочки». Тут большой департамент по анализу данных, большие задачи: динамическое ценообразование, работа с промо, есть интерактивный голосовой робот, который обрабатывает часть звонков в кол-центр. Я присоединился к команде, которая строит и автоматизирует разные аналитические инструменты.
Над чем работает команда
Часть наших задач можно описать так: есть какой-то отчёт, нам нужно сделать так, чтобы он формировался автоматически и с нужными данными. Вот пара примеров:
👉 В разных магазинах могут отличаться ходовые и неходовые товары. Например, в одном магазине любят печенье «Юбилейное», а в другом его почти не берут. Мы хотим понимать по каждому конкретному магазину, сколько закупили, сколько продали, сколько списали каждой позиции. Затем мы смотрим, какие товары двигаются хуже, и даём сигнал людям на местах, например, устроить промо определённых товаров в тех магазинах, где с ними есть проблемы.
👉 Сейчас мы автоматизируем отчётность, которая идёт руководителям сетей. Раньше коллеги руками собирали эксель-файл, затем руками переносили данные на слайды — не очень надёжный подход. Мы делаем систему, которая сама ходит за данными, а потом их визуализирует, руками делать ничего не нужно, ошибок меньше.
Бывает так, что данные есть в какой-то устаревшей системе. Тогда нужно провести реверс-инжиниринг, разобраться, как она работает. Или не хватает бизнес-требований, тогда мы их пишем самостоятельно.
Команда и задачи в X5
На новом месте я тоже оказался в небольшой команде: четыре разработчика и один менеджер. Совсем недавно появился ещё владелец продукта, помогает нам с бизнесовыми проволочками, приводит людей, которые могут дать и объяснить задачу. Мы считаемся продуктовой командой, хотя конкретного продукта у нас нет, просто решаем аналитические задачи.
Мои задачи делятся на два больших блока, я их называю программирование и рисование. Для визуализации мы используем Tableau — это аналитическая платформа, я там рисую графики на основе данных. Из-за такого подхода мне нравится делить день на части, например, с утра поработать с данными, а после обеда — с графиками.
Я здесь уже больше года и пока что думаю, что и дальше хочу развиваться в области анализа данных. Будет здорово, если получится больше погрузиться в машинное обучение: такие задачи в компании тоже есть.
Анализ данных для «Много Лосося»
Несколько месяцев назад мой коллега со времён Касперского позвал меня помочь наладить работу хранилищ данных для сети ресторанов «Много лосося». Там на каждой кухне есть экран, который показывает, как люди оценивают заказы, какие есть жалобы, как выполняются ключевые показатели. Чтобы строить такую управленческую отчётность, нужно собирать данные из разных источников, хранить и обрабатывать — я этим и занимаюсь.
В компании есть несколько источников данных. Во-первых, система автоматизации, где хранятся технические карты, информация о товарных остатках, сотрудниках, которые сейчас на смене, все заказы. Во-вторых, есть информация от сервиса доставки Delivery Club: новый заказ, отмена заказа, закрытие точки и новый отзыв. Ещё есть оценки от внутренних проверяющих органов, например, о состоянии кухни. Мы всё это сводим в единое хранилище.
С разными данными работать приходится по-разному. У системы автоматизации есть API, так что получать данные довольно просто. А информация от Delivery Club приходит в виде писем, которые сначала нужно распарсить.
Благодаря нашей работе руководителям проще контролировать работу компании. Например, можно автоматически связывать отзывы из Delivery с информацией из системы автоматизации о том, кто в это время был на смене. И в итоге будет видно, как справляются повара. Скоро ещё научимся автоматически считать зарплату.
Менторство в Практикуме
Со времён Касперского мне нравится помогать начинающим разработчикам. Так что осенью прошлого года я прошёл Школу наставников Практикума. Нас обучали, как давать обратную связь, как налаживать общение в команде, справляться с конфликтами.
Через некоторое время после школы я стал наставником в англоязычной когорте дата-аналитиков. Пошёл именно на английскую, потому что понял, что не хватает языковой практики: в Касперском её было много, а в X5 — почти нет. В итоге для меня это двойной плюс — делюсь знаниями и не теряю язык.
Раз в две недели я провожу для студентов вебинар и общаюсь со студентами в слаке. Обсуждаем темы, которые им актуальны, либо проекты, над которыми они работают. Рассказываю, на чём бы я сконцентрировался на их месте, как подошёл бы к решению задачи. Делюсь опытом, анализирую проекты, отвечаю на вопросы про тренажёры.
О рабочем графика и планах на будущее
Я начинаю работать около 9, составляю план, когда и что буду делать. Отдельно планирую созвоны и слоты для работы. Заканчиваю часов в 8. Дополнительно работаю в какой-то выходной — с 9 до 18.
Я считаю важным, чтобы ни у кого из моих коллег не было неоправданных ожиданий. Стараюсь объективно оценивать, сколько реально могу сделать, и транслирую это. В итоге не беру лишнего и справляюсь с тем, за что берусь. Это помогает совмещать работу и проекты.
Пишу код в трёх средах: Jupyter Notebook и PyCharm для больших задач на Питоне, Atom — если нужно отредактировать небольшой скрипт. Использую Tableau, чтобы рисовать красивые автоматизированные слайды.
Сейчас мне нравится то, что я делаю. Менять сферу деятельности пока не планирую. Хочу овладеть полным стеком работы с данными и машинным обучением: собирать данные, трансформировать, анализировать качество, готовить модели и собирать на их основе продукты.
Рекомендации начинающим разработчикам
Сегодня модно идти в аналитику данных, но, мне кажется, это работа не для всех. Копаться в данных, чтобы найти там золотую жилу — сложно, это требует усидчивости и терпения. Если не получаете удовольствия от программирования и аналитики, возможно, это вам не подойдёт.
Следите за тем, что происходит в индустрии. Можно начать с Open Data Science, я слежу за Datatau, ветками на Reddit по машинному обучению и анализу данных.
Ну и банальное: помните, что задача аналитика — не столько писать красивый код и придумывать необычные решения, сколько решать задачи бизнеса. Так что не бойтесь общаться с продактами, дизайнерами и менеджерами и узнавать у них, с какими проблемами вы можете помочь.