DCB Interview
15.04.2022

Владислав Губерник
Dev-lead кластера Intraction и бэкенд-разработчик команды PHOENIX

Сколько нужно пройти собеседований, чтобы начать карьеру разработчика? Сколько нужно человек, чтобы разработать машину формата Формула‎? Как написать 6 300 строк кода за день? Что делать, если хобби стало работой? Что обязательно должно быть в собственном доме? Как долго можно читать Википедию? Рассказывает Владислав Губерник.
Твой бэкграунд не сильно сочетается с тем, чем занимаешься. Отучился в МАДИ на кафедре строительной техники, а работал в продажах автомобилей. Расскажешь о своём профессиональном пути до Сбера?

Если брать мой профессиональный путь прямо с самого начала, первое место, где я работал — «Кофе Хауз». Собственно, как и, наверное, многие студенты. Просто подзаработать. Я был бариста и варил кофе. Достаточно долго, где-то полтора-два года.

Дальше практически весь мой профессиональный путь был связан с автомобилями. Я учился в автомобильном университете, я продавал автомобили. Более того, я их даже одно время разрабатывал. Это всё связано с тем, что я в принципе люблю автотранспорт, люблю автоспорт, машины, картинг и так далее. Я сам водитель, у меня два автомобиля разных.

Это увлечение у меня достаточно давно, поэтому я пошёл учиться в автомобильный дорожный университет, правда, не на гражданский автомобилестроительный, но всё равно. Хотя мне больше нравится гражданский автомобильный. После окончания учёбы в университете я пошёл в автосалон. Несмотря на то, что там работать с людьми, но всё-таки это ты постоянно едешь на машине, постоянно читаешь что-то новое, разбираешься в автомобилях и так далее. Там я проработал три… Или не три, даже четыре года. Всё время в одном и том же автосалоне, с одними и теми же людьми. Я не менял рабочие места. Это в принципе было последнее профессиональное место, где я работал до Сбера. После этого я решил стать разработчиком и попал в Bell Integrator, в котором меня отправили с СберБанк. Я попал в команду PHOENIX, в которой до сих пор работаю. В Сбере я, получается, уже три года. Четвёртый год идёт, всё это время я работаю в одной и той же команде над одним и тем же продуктом. В принципе, вот это и есть весь профессиональный путь. То есть кофе, машины и СберБанк.

Какие у тебя машины?

У меня Skoda Kodiaq. Это такой небольшой кроссовер. И Opel Mokka — тоже небольшой кроссовер.
Ты смотришь гонки? Какая команда тебе импонирует?

Гонки смотрю. Импонирует Ferrari. Но тут нужно немножко уточнить. Я смотрю гонки с 2005 года. Формулу-1. Практически всё это время я болел за Ferrari. До, наверное, 2014 года. А там с 2014 года начал доминировать Mercedes, и я начал болеть не за кого-то, а против Mercedes'a. Поэтому я тогда болел за Ferrari, последнее время болел за Red Bull. Ну я, скажем так, был за интригу, за интерес, и просто надоело уже, что Mercedes постоянно выигрывает, и хотелось болеть за кого-то, кто может составить ему конкуренцию. Ну с этого года опять Ferrari наконец-то вырвалась в лидеры, и можно поболеть за старую команду.

Во время учёбы ты был участником команды Formula Student MADI. Сможешь подробнее рассказать об этой инициативе?

Ну тут достаточно много можно рассказывать. Formula Student сама по себе — это международные соревнования, инженерные. Именно инженерные. То есть это не гонки. Там суть в чём: студенты, то есть не преподаватель, не какие-то сотрудники, а именно студенты какого-то университета организуют, ну «типа» организуют, компанию, которая производит спортивные автомобили, спортинвентарь. Команда должна самостоятельно всё сделать, по неким правилам, хотя есть регламент, который составлен достаточно свободно, и есть там очень большой простор для инженерного творчества. Концептуально это… Ну вот почему Формула? Есть автомобили класса Формула. Та же Формула-1 — это среднемоторный автомобиль с открытыми колёсами. И там тоже правила составлены по Формуле. И, в общем, команда должна самостоятельно, учитывая правила, разработать полностью автомобиль. Причём не просто сделать там какую-то 3D-модель, чертежи, а должен быть полный производственный процесс. Должна быть подготовлена документация, должны быть сделаны сервис-отчёты. Если настраивался, допустим, как-то двигатель, должно быть задокументировано, как он настраивался, какие у него характеристики и так далее. Каждая деталь… Ну тут нужно немножко уточнить. Вот у нашего автомобиля из готового был двигатель, суппорты, резина с дисками, ну там всякие шланги и так далее. Всё остальное было разработано нами.

Команда у нас была из восьми человек — это мало. Сейчас расскажу, почему. Команда делает этот автомобиль, все чертежи — и она его самостоятельно изготавливает. Можно прибегать к сторонним компаниям. Так как это университет, можно договариваться с кем-то. Например, у нас была Yamaha, которая производит мотоциклы. Они нам предоставляли двигатели для автомобиля. Машины были небольшие, чтобы не разбиться и денег много не потратить. По-моему, метра два они были в длину. Соответственно, двигатели не нужны были большие и мощные — подходил одноцилиндровый движок от квадроцикла. Нам он достался бесплатно, просто за наклейку на автомобиль. Ну и было много ещё партнёров, в том числе и те, кто изготавливал какие-то детали для автомобиля. В итоге, получался полностью готовый гоночный автомобиль класса Формула, но, как я уже сказал, это были инженерные соревнования, а не гоночные.

Ещё там были так называемые статические дисциплины. Помимо того что команда должна полностью разработать и собрать автомобиль, она должна подготовить бизнес-план. Как я сказал сначала, команда делает компанию по производству спортинвентаря. Его нужно как-то продать. То есть ты должен делать то, что кому-то нужно. Обычно это в аренду можно сдавать, если картинги, местные чемпионаты можно устраивать, олимпиады гоночные и так далее. Команда должна придумать какую-то легенду, как она будет продавать тысячу автомобилей в год.
Это все дисциплины?

Дальше были ещё дисциплина «Защита конструкции», когда приходят судьи. В том числе сотрудники Формулы-1. На международном уровне это достаточно высоко ценится, на защиту конструкции приходят в том числе участники команд Формулы-1. Вот что-то такое, когда команда должна проявить свои теоретические знания и обосновать, почему они выбрали те или иные решения в своём автомобиле: почему такой двигатель, почему такая подвеска. Ну там чисто теория.

Также ещё там есть отчёт о стоимости. Причём он унифицированный, то есть ну понятно, что соревнования международные, и у всех всё стоит по-разному. Там приведены разные фабрики: сталь стоит столько-то, карбон стоит столько-то. Нужно описать полностью весь процесс производства и сборки автомобиля вплоть до каждого использованного инструмента. Если ты, когда собираешь автомобиль, берёшь отвёртку, ты должен указать её в этом отчёте. Сущность дисциплины заключается в точности описания процесса сборки и стоимости автомобиля.

Дальше идут динамические дисциплины: разгон, торможение, восьмёрка и две именно гоночные дисциплины, которые именно соревновательные. Автокросс — это четыре круга по короткой трассе, по типу квалификации на Формуле-1. Последний — это гонка на выносливость. Всего 20 км. Кажется, что мало, но половина автомобилей не доезжает даже эти 20 км, поскольку они собираются студентами, никак не тестируются.

Каждый год надо собирать новую машину, и они ненадёжны. Из этого состоит Formula Student. Нас было в команде восемь человек всего. Это очень мало. В некоторых европейских командах по 120 человек, по 90, по 80. Нас было восемь. В больших командах есть разделение на отделы. Там есть десять человек, которые работают над мотором, и 15 человек, например, которые работают над подвеской. У нас было «с миру по нитке». Кто что мог, тот тем и занимался.

В чём была твоя роль?

Я занимался несущей системой, подвеской, педальным узлом и как раз отчётом по стоимости.
Программирование было твоим хобби. Как ты к нему пришёл?

Начинал, ну не так, чтобы прямо программировать, но кодом заниматься давно, ещё в школе, классе в восьмом, наверное. Папа покупал книжки по C++. Мне самому как-то было интересно. Ну на таком, прямо глубоком-глубоком любительском уровне. Потом на какое-то время забросил, пока кофе варил и машины продавал. Позже решил просто в виде хобби вернуться обратно к программированию. Выбрал для себя Android, потому что у меня телефон Android. У меня практически всю жизнь были Samsung’и. Захотелось разобраться в приложениях от Samsung. Просто, грубо говоря, ради прикола. Игрушку какую-нибудь намешать, ещё что-то.

Я начал изучать Java именно для Android в режиме глубокого любителя. Никогда не ходил ни на какие курсы, у меня нет образования. То есть сам дома вечером открывал какую-то книжку и читал. В итоге дошёл до какого-то определённого уровня, когда понял, что, возможно, я смогу пройти собеседование какое-то куда-то. Ну просто попробовать. В автосалоне мне работать немножко надоело, поскольку это работа с людьми и этот факт немного превысил радость от работы с автомобилями.

Я понял, что моё хобби можно превратить в работу. Я немножко более «поднасел», скажем так, на самообучение. Уволился с работы — сидел дома два или три месяца. Ииии… Я прошёл первое же собеседование, на которое пришёл. То есть в моей карьере профессиональным программистом я проходил одно собеседование и через него же попал сразу в Сбер. Не ходил, не бегал. Сразу отправил резюмешку — пригласили. Прошёл интервью, и меня взяли в Bell Integrator. Не в Сбер, сначала в Bell Integrator на сторону вендора. Потом я попал уже в СберБанк.

Как хобби развивалось?

До того, как я попал в СБерБанк, я работал только на Java. «Плюсы» были достаточно давно, я их плохо знал. Есть язык, который я прямо знаю-знаю, могу легко использовать — это была Java. Я попал в СберБанк и остальное я учил в основном в рамках потребностей в работе. Я поучил JavaScript. Я понимаю, что мне нужно понимать коллег по их фронтенду, что они делают хотя бы. Так я немного изучил JavaScript. Изучил SQL по понятным причинам, чтобы работать с базами данных. Дальше пошло Groovy для девопса и всякое по мелочи.

Я в основном знаю только то, что нужно мне в работе. Прямо знаю и могу этим пользоваться. Помимо этого, я знаю ещё Kotlin, Python, знаю немножко C#. Попробовал я много, но это тоже скорее в плане хобби, тот же C#. Я пробовал Unity — игровой движок. На «Плюсах» я недавно в Unreal Engine тоже так, ради интереса попробовал. Ну, я не могу сказать, то эти языки я прямо знаю, поэтому, наверное, это не мой конёк. Java и связанные с ним Groovy, Kotlin’ы и так далее. Ну SQL, понятно, он тоже для работы. В целом, наверное, вот так.
Не так давно ты смог написать 6 300 строк кода для решения оперативной задачи. Как это было?

Это была задача с «емейлами» — изменение всех шаблонов, где необходимо было убрать иконки разных соцсетей. Шаблоны уведомлений состоят из большого количества строк. Это свёрстанные HTML-письма, из них нужно было вырезать блоки. Потом получившиеся «куски» исходного кода нужно было обернуть в SQL-запросы на обновление этих шаблонов в базе данных. И всего таких шаблонов было в районе 40. Чтобы не делать это всё руками, я на Java написал небольшое приложение, которое из выгрузки, базы данных в Exсel доставало табличку шаблонов. Из шаблонов вырезала иконки, потом получившийся шаблон как раз вставляла в строку с SQL-апдейтом, и всё это оно записывало в один файлик. На всё это я потратил буквально, наверное, полчаса, если не меньше. Нажал одну кнопку и получил на выходе файл в шесть с половиной тысяч строк со всеми нужными дополнениями, с полностью решённой задачей. Я просто взял этот файл и добавил в СББОЛ, чем решил срочную задачу.
Сколько ты, ещё раз, на это времени потратил?

Где-то полчаса.

Круто!

Угу. Ну там мы дольше ждали «влития» этого кода, бюрократию, встречи всякие. Именно после того, как я получил фактуру, и до того, как я получил в итоге на выходе все SQL-апдейты — где-то полчаса, да. Это называется «хорошо быть программистом». Я автоматизировал задачу, но эту задачу можно было решать руками. То есть брать каждый шаблон, из него ручками «вырезать» HTML-иконки, копировать, вставлять в SQL, SQLдобавить в файл. Но руками это было бы долго, поэтому я написал программку быстренько — она сама мне всё сделала.

Когда хобби стало работой, пришлось искать новое. Ты увлекаешься моделизмом. Что именно ты строишь?

Тут по-разному. Увлекаюсь я этим на уровне любителя. Я помню, у нас был митап на DCBro, когда ребята, наши коллеги, рассказывали про моделизм. Там они, конечно, на высоком, профессиональном уровне об этом говорили.

У меня нет какой-то прямо цели постройки чего-то там достоверного, я собираю по настроению. Есть из пластика автомобили, тоже гоночные, у меня много Lego. Я люблю Lego. Это не совсем моделизм, но много у меня его. Очень люблю серию Technic, у меня есть практически все модели большие. Маленьких нет, именно большие, почти по полметра есть некоторые модели, есть промышленная техника. Это тоже автомобили, всякие краны и так далее.

В последнее время я занялся строительством деревянных кораблей. Вот я буквально на днях уже заканчиваю первую модельку свою деревянную — это небольшой кораблик, ботик Петра Первого. Из «потешного флота» Петра Первого, на котором он вроде как учился под парусом ходить. Там моделька в небольшом масштабе, деревянная, с парусами — все дела. Ну и следующий тоже планирую взять какой-нибудь деревянный корабль.
Как ты их экспонируешь?

К сожалению, никак. Они просто стоят на полках. Мне важен процесс сборки.

Насколько глубоко ты можешь упасть в кроличью нору Википедии? Сколько часов длилось максимальное падение?

Даже не вспомню, но много. Если взять какой-нибудь рабочий день, начиная от завтрака, поездки на электричке туда, поездки на электрички обратно — я могу всё это время читать Википедию. Понятно, что это не каждый день. Но если попалась какая-то интересная тема, я могу читать очень долго и не только Википедию. Это также могут быть познавательные статьи. От червей в земле до кораблей в космосе — мне интересно практически всё. В плане, узнать что-то новое и интересное.

Ты хочешь построить своими руками дом. Ты уже купил участок, но есть ли у тебя проект дома?

Нет. Только-только я планирую этим заняться. Частично, почему эта идея родилась. Как раз со времён Formula Student у меня остались достаточно крепкие навыки по работе с автоматизированными системами проектирования. Всякие AutoCAD, SolidWorks есть, она не совсем популярная, но полезная тоже программа. Дом не в плане прямо какой-то каменный — деревянный дом, небольшой такой. Дачу даже скорее, летний домик. Я планирую заняться проектом тоже самостоятельно, используя навыки, которые я приобрёл за свою жизнь. Как-то так. Один этаж, одна-две комнаты.
Строить тоже планируешь полностью своими руками?

Да.

Что обязательно должно быть в этом доме?

Тут не знаю.

Может быть, камин или сауна?

Да нет. Обязательно — терраса. Чтобы дом был не просто какой-то квадрат. Выйти посидеть на улицу, допустим, на дождь посидеть посмотреть. Камин — может, да. Но основное — наличие веранды у дома. Ну и комнат в нём.
Блиц!

Макларен или Ferrari?

Ferrari.

Веб или мобильная версия СберБизнес?

Мобильная.

Ферстапен или Хэмилтон?

Ферстапен.

Лучше жалеть о сделанном или о несделанном?

О несделанном.

Java или Python?

Java.

Офис или удалёнка?

Две через две.

Кофе или чай?

Чай.

Фронтенд или бэкенд?

Бэкенд.

Android или iOS?

Android.
С любовью, Цифровой Корпоративный Банк!