Привет, Хабр!
Наконец-то настал день, когда мы познакомим вас с руководителем разработки «СёрчИнформ» Дмитрием Гацурой.
Это интервью продолжит серию публикаций про сотрудников «СёрчИнформ». Мы уже опросили нашего начИБ Алексея Дрозда, милейший отдел внедрения, аналитика (а ныне руководителя) отдела ИБ-аутсорсинга Александра Шелоткача, тестировщика (бывшего летчика).
Теперь черед Дмитрия. Он живет в Ростове-на-Дону, играет в футбол, любит горы, а еще почти 10 лет руководит распределенной командой программистов по всей России. Под катом – про верность профессии, баланс между управлением и кодингом и рецепты прокачки скилов.
Про путь в IT
Расскажи, как ты решил стать программистом?
У нас в школе был класс с углубленным изучением математики и информатики. Был компьютерный класс с БК-шками. Какие-то программы мы писали уже тогда. И с магнитофонных кассет загружали. Самый первый язык, который изучил, был BASIC.
А ты помнишь свою первую программу? Когда ты ее написал, что она делала?
Самое первое, что я помню: я рисовал по точкам, по линиям машинку. На миллиметровке ставишь координаты, потом задаешь команды: line 10, line 20, так стекла рисуешь, колеса, все остальное. Это был где-то седьмой класс. Уже тогда мы много чего писали и по учебе, и для себя.
А почему «свернул» в математический класс? Страсть к цифрам – семейное?
Нет, у меня мама – инженер, папа – слесарь. И начинал я, как все, в обычном классе. А потом, после шестого, в рамках школы провели эксперимент: создали профильный математический класс. Отобрали учеников по способностям, я туда попал. Считаю, эксперимент был удачный.
Куда пошел учиться дальше?
В Донской государственный технический университет. Прошел автоматом как участник и призер олимпиад по математике и программированию. Закончил университет с красным дипломом.
Пока все гладко и ровно на твоем пути к руководителю разработки. Наверное, и работал со студенчества и сразу по специальности?
Ну, все-таки не сразу. На четвертом курсе был мясником два месяца. И разнорабочим – копал ямы. Это был студенческий летний лагерь, мы там отдыхали и работали. Один день работаешь, другой – отдыхаешь. С тех пор я хорошо режу мясо.
Угрожающий навык)
Конечно, могу за день полтуши на гуляш порезать ?
Там туша
А вообще с четвертого курса я параллельно преподавал на полставки в том же вузе, где учился. Читал несколько курсов: архитектуру ЭВМ, базы данных, программирование на C++, сети и технологии коммуникации. Тогда, если ты учился в магистратуре, преподавать было вроде как «в обязаловку». Но я скажу так: если преподавание тебе по силам – это must have, чтобы действительно прокачаться в предмете. Не получится просто заучить и рассказать. Чтобы понятно донести что-то студентам, нужно самому разобраться вдоль и поперек.
А когда ушел работать «в поле» — или всю дорогу вместе с преподаванием что-то писал?
Параллельно устроился в конструкторское бюро – на оборонку работал программистом. Писали драйвера, базы данных большие, довольно сложные вещи. В основном на Delphi и C++. Совмещал преподавание и работу в КБ семь лет.
Ну, и это не единственный «полевой» опыт. Почти всегда у меня одновременно были по несколько постоянных сторонних проектов.
Расскажи подробнее, что это были за проекты?
Например, как-то раз со знакомым взяли интересный заказ: вставлять в телеэфир ролики для конкретной деревни. По принципу «вещание в зависимости от региона», которое будет запускаться по какому-то триггеру. Проблема в том, что интернета в большинстве населенных пунктов тогда как такового не было, максимум Edge. Мы придумали свои ролики и расписание их вещания передавать на спутник. Делали это из Ростова. Транслировали «сами на себя», а в деревне «ловили» спутниковый трафик. Получилось, что могли гигабайтные файлы спокойно скачивать там, где практически не было интернета.
А как ты пришел в «СёрчИнформ»? Чем занимался в начале работы в компании?
Это было в 2013 году. Увидел вакансию на HH, выполнил тестовое задание – меня взяли.
Тогда у нас был один основной продукт — DLP «Контур информационной безопасности». В системе было порядка 15 консолей, и команда делала общий клиент, который бы их соединил. На стажировке я объединил две консоли и добавил ненаписанный на тот момент Keylogger.
Быстро стал тимлидом? Как это произошло?
Через два года, в 2015 году под мое руководство перешла часть разработчиков – для эксперимента. В 2016-ом я стал руководителем разработки. Специально я к этому не стремился, скорее оказался в нужном месте в нужное время.
В тот момент сменилось несколько руководителей. Разработчики из них первоклассные, но менеджмент не давался. Не получалось найти общий язык с руководством компании. Мне, думаю, помог преподавательский опыт: в первую очередь он учит разговаривать с людьми, находить к ним подход. Поэтому, при прочих равных, я оказался во главе направления.
С того момента твоя работа кардинально поменялась?
Да, сейчас 80% моего времени занимает управление командой. Я продолжаю сам писать код, иначе навык растеряешь, но могу уделить этому только 20% времени.
На твой взгляд, это оптимальная пропорция, или ты бы хотел сместить баланс?
Программировал я большую часть своей карьеры, управление командой как бы органически «наросло». Конечно, мне больше нравится писать код. Но «на треке» меня заменит любой хороший программист с равными скилами.
Про hard skills
Какими языками и технологиями владеешь?
Сейчас в основном — Go, Delphi. Но писал в разное время на 10 языках, примерно. В университете мы проходили 15 языков. Поэтому база была.
А есть любимый язык?
Особых предпочтений нет. Считаю, если программист хороший, ему все равно, на чем писать. Он не «учит» язык, а понимает принцип. Можно начать профессионально писать на любом новом языке за полгода. Синтаксис схватываешь сразу, если есть какие-то «подводные камни» или классные лайфхаки, так или иначе за полгода практики до них дойдешь.
Например, еще на заре эры кнопочных телефонов ко мне пришел заказ. Надо было написать приложение, чтобы оплачивать сотовую связь. Я никогда не работал с Java, тем более Mobile Edition. Но прикинул, за сколько разберусь, взял проект — и сделал.
На чем пишут в «СёрчИнформ»?
В компании сейчас в активе четыре языка (C++, Delphi, Vue/TypeScript, Go), сейчас еще пробуем Rust. В 2016-2017 стартовали с Go и поняли, что не ошиблись. Это сейчас второй по популярности и используемости язык в компании.
Получается, сейчас ищете в основном Go-шников?
Нет, не ставим такой приоритет. Если человек писал профессионально на Delphi или C++, то ему перейти на Go будет несложно. Если же человек сразу приходит именно на Go, он зачастую нам в итоге не подходит. Такие люди верят в «магию языка», которой, на самом деле, нет.
Что ты имеешь ввиду под «магией языка»?
Может сложиться впечатление, что за тебя язык или его языковые конструкции сделают «сразу хорошо». Что достаточно взять фреймворк — и он будет супербыстрым, надежным, хорошим, а тебе толком делать ничего не придется. Это не так. Это работает в каких-то мелких проектах, в чем-то ненагруженном. Но потом все равно приходится включать голову.
Кого сейчас активно набираете?
По классике, ищем спецов по C++, Delphi, Go. Нужны веб-разработчики и архитекторы БД. Обычно набираем мидлов, сеньоров. Но в последние годы студентов стали активнее брать. Если хорошо учился, значит, сможем доучить нужным навыкам на практике.
А как доучиваете «молодежь»? Только на реальных задачах, или «тренажеры» поощряете?
Есть мнение, что условный LeetCode учит решать задачки только на LeetCode. Я не согласен: в тренажерах зачастую довольно сложные вопросы. Пройдешь какой‑нибудь SQL‑EX — будешь лучше разбираться в БД. Конечно, часть вещей без практики не поймешь, но это точно небесполезно.
Если у человека после работы есть время на тренажеры — лишним не будет. Но на деле многие программисты вечером даже к компьютеру подходить не хотят. Прокачаться вполне можно в рабочее время на «боевых» задачах.
Про soft skills
Как управленец, какие подходы в работе с людьми ты используешь?
Самое главное — нужно усвоить, что все люди разные. И к каждому нужен индивидуальный подход.
Успеваешь?
Успеваю. Сейчас у меня в команде почти сотня программистов, по сравнению с некоторыми командами — не так много.
Ты взаимодействуешь со всеми сотрудниками или только с тимлидами?
Тимлиды, конечно, есть. Но общаться приходится не только с ними. «Завис» человек или не то пишет — надо разговаривать персонально, разбираться в причинах. Иногда это может сделать тимлид или я отдельно, иногда мы вместе. Тоже все индивидуально.
А со своим руководством как строишь отношения? Наверняка бывают ситуации, когда «сверху» ставят нереальные задачи, сроки, непонятные ТЗ. Или вы не сходитесь в приоритетах. Как отстаиваешь свою точку зрения?
Такие ситуации возникают неизбежно, когда собственник хочет «невозможного» – это даже правильно. Но когда «хотелка» противоречит самому бизнесу, нужно спорить. Спокойно или нет, зависит от ситуации, но главное — аргументированно.
Вообще с руководством надо говорить на языке бизнеса. Этому учишься. Но мне дополнительно повезло, потому что у руля «СёрчИнформ» Лев — человек из профессии, программист. Пусть он уже не пишет сам, но мы понимаем друг друга. С одной стороны, ему не нужно «объяснять на пальцах», почему от чего‑то стоит отказаться или сделать иначе — у него есть живое представление, как именно все работает. С другой, ему так просто не скажешь, что что‑то сделать нереально — он разбирается в вопросе, знает, что реально, и спросит с тебя.
Как ты себя прокачиваешь, чтобы эффективнее управлять командой?
Изучаю книги по менеджменту, инструменты для командной разработки, стандартизацию стеков технологий. Есть компании, где команды используют разные стеки технологий для решения похожих задач. На мой взгляд это неправильный подход, он ухудшает взаимодействие команд и лишает возможности перебросить человека на «загруженное направление», ведь разные команды буквально «говорят на разных языках», хотя делают единый проект. Стандартизация – сила.
Порекомендуй книги, которые впечатлили или считаешь полезными.
«45 татуировок менеджера» Максима Батырева. «Жизненные циклы корпорации: как организации растут и умирают и что с этим делать» Ицхака Адизеса.
«Deadline. Роман об управлении проектами» Тома Демарко – про то, как в выдуманном государстве руководили разработкой софта на всю страну. Книга с юмором, но полезная.
И практико-ориентированные. «Семь баз данных за семь недель» Эрика Редмонда и Джима Уилсона. Книга показывает, чем одни СУБД отличаются от других. «Паттерны проектирования» от «Банды Четырех». «Карьера программиста», в миру больше известная как «Как собеседоваться в Google», автор — Лакман Макдауэлл Гэйл.
Про кадры
Каких людей ты ищешь в команду?
Адекватных. Тех, кто не упирается в свою точку зрения, если понимает, что она неправильная и, наоборот, аргументированно отстаивает свое мнение, если уверен в нем. Кто способен слышать и принимать критику. Ситуации бывают разные, надо, чтобы человек правильно реагировал, внимательно и спокойно.
Профессиональные навыки натренировать можно. Допустим, человек делает типовые задачи: одну, вторую — его уровень растет. А вот адекватность, ее не натренируешь. Если человек конфликтный, то это, возможно, навсегда. С таким человеком сложно всем: и руководителю, и команде, даже если он суперпрофессионал.
Как изменились кандидаты?
За последние несколько лет стало больше фрилансеров и спецов из компаний-аутстафферов. Признаюсь, мне найти среди них подходящих сотрудников сложно. Обычно, их «заворачивает» еще на этапе рассмотрения резюме наш HR-отдел. Хотя они могут пустить пыль в глаза и добраться ко мне на собеседование. Но я быстро понимаю, что все красиво только на словах, в резюме, а по факту – похвастаться нечем.
Еще стали больше спрашивать про разные дополнительные опции, помимо зарплаты. Их интересуют процессы. Спрашивают, что вы делаете? Как ставите задачи, как организована работа? Узнают про спортзалы и прочие «неденежные» вещи.
А сам бы ты на месте соискателя на что обращал внимание?
Надо читать отзывы или искать возможность пообщаться с действующим сотрудником компании. Смотреть на обстановку в коллективе, текучку, возможности карьерного роста.
Важно, что именно люди пишут: интересный ли проект, будет ли лично мне интересно работать над ним?
Ну и третье — смотреть как пишут: не используют ли слишком старые технологии, которые скоро умрут, и наоборот — не меняют ли стек каждый год.
Про «СёрчИнформ»
Какой продукт «СёрчИнформ» ты считаешь лучшим?
DLP «СёрчИнформ КИБ». С него все начиналось, из него «отпочковывались» другие продукты.
Например, наш SIEM родился из коннектора КИБ к Active Directory. DCAP появился из FileController, который дооснастили блокировками и другими фичами. Все так или иначе появлялось в результате трансформации и дальнейшего самостоятельного развития отдельных частей КИБ.
Что скажешь про пересечение ИБ-решений, про избыточность пересекающегося функционала? Можно решить эту проблему за счет единой платформы?
Наши DLP, SIEM и DCAP мы строим на одной платформе и так и будем продолжать развивать. Если у нас появятся новые решения, то они тоже войдут в единую систему.
Все решения от одного вендора априори совместимы между собой, не конфликтуют, за счет общей базы часто экономней к ресурсам. Фичи усиливают, а не повторяют друг друга. Например, у нас есть блокировки в FileAuditor и блокировки по меткам FileAuditor в КИБ. Первые решают задачу ограничения доступа самих пользователей к файлу, например, могут запретить открыть документ в редакторе или прикрепить во вложения в почте или мессенджере. Это происходит на уровне процессов. Вторые — перекрывают все остальные пути «наружу» для такого документа, потому что работают во всех каналах.
В конце концов, комплекс продуктов просто удобней в эксплуатации: все возникающие вопросы решаешь «в одном окне».
Что отметишь из интересного и сложного в работе команды в последние пару лет?
Большой пласт работы был связан с переходом на отечественные БД. Поддержали PostgreSQL и российскую модификацию Postgres Pro, так что сейчас все наши продукты могут работать на разных базах данных по выбору заказчика — а раньше был только MS SQL (и Mongo для SIEM, но это немного другая история).
Сейчас продолжаем двигаться к кросс‑платформенности, переезжаем на Linux. Это тот еще «головняк», но задачка однозначно интересная.
За что тебе нравится «СёрчИнформ»?
Основное — ты можешь изложить идеи и напрямую общаться с любым сотрудником, в том числе высшим руководством. У нас нет бюрократии.
О личном
Чем из сделанного за время работы в «СёрчИнформ» ты особенно гордишься?
Выбрать невозможно. За все эти годы у нас было много уникальных и прорывных решений, задать такой вопрос — это как заставить меня выбрать из нескольких детей — любимого.
Есть ли лайфхаки по поводу личной эффективности?
Нужно сразу записывать результаты совещаний и планерок, и назначать ответственных и сроки исполнения. И контролировать, чтобы это выполнялось. Это главный лайфхак.
На себя-то времени хватает? :) Есть хобби?
Футбол. Мы с ребятами создали команду и до сих пор на городских соревнованиях играем. Еще увлекаюсь альпинизмом.
hiperriper
Почему у всех руководителей всегда есть фотка в горах?
labyrinth
Думаю, что после того, как залезли на "гору" Маслоу, не смогли остановиться.