Как работают ИТ-специалисты. Савва Михалевский, front-end архитектор Grabr

от автора

Мы продолжаем расспрашивать специалистов о режиме труда и отдыха, профессиональных привычках, об инструментарии, который они используют, и многом другом. Будет интересно выяснить, что их объединяет, в чем они противоречат другу другу. Возможно, их ответы помогут выявить какие-то общие закономерности, полезные советы, которые помогут многим из нас.

Сегодня наш гость — Савва Михалевский из Grabr:

К моменту окончания 9 класса школы я с трудом вычислял дискриминант. Сложные системы, квадратные уравнения, тригонометрия и тем более физика были для меня чужими, незнакомыми и страшными. В детстве я углубленно изучал иностранные языки. Все изменилось после 9 класса: на каникулах отец подарил мне «Delphi 5. Самоучитель программиста». Именно в этот момент «бомбануло», и я начал кодить со своим школьным другом. К моменту поступления в университет даже речи не было о какой-то гуманитарной специальности. Только физика и математика — только hardcore.

В 2008 году я окончил Санкт-Петербургский Политехнический Университет по специальности «Экспериментальная физика», сдал научную работу с непроизносимым названием темы, получил степень бакалавра и сделал первые выводы — физикой я точно не хотел заниматься.

Фундаментальная наука в России — это нафталиновые коридоры НИИ, растянутые свитера, протертые спортивные штаны и мизерные зарплаты ученых.

Еще с первого курса я работал тестировщиком и к моменту окончания бакалавриата неплохо знал SQL и Java. Перед поступлением в магистратуру я перешел на работу в небольшую телекоммуникационную компанию Astra Software. В 2010 году закончил магистратуру на факультете кибернетики и защитился по графовым моделям. Мою научную работу рекомендовали профессора из Академии наук для поступления в аспирантуру в Москве. После чего я еще 4 года занимался многомерными временными рядами с нечеткой логикой.

Все время в Москве я работал в банках: сначала в «Тройке диалог», потом в Сбербанке и уже после на Московской бирже. Там я создавал очень классный проект, построенный на больших данных. Был сам себе начальником и отвечал фактически за весь UI.

Болело только одно, и именно это отличает весь мой предыдущий опыт от работы в Grabr. В больших компаниях легко потеряться, слишком много людей, и ты находишься слишком далеко от клиента, не видишь результата и не понимаешь, как твой код меняет жизнь пользователей.

Чем занимаетесь в компании?

Grabr — это peer-to-peer платформа, где пользователи совершают покупки за рубежом и доставляют их с помощью путешественников. Сервис существует в форме онлайн площадки (grabr.io) и мобильного приложения для iOS. С одной стороны, наши пользователи имеют возможность покупать любые вещи за рубежом, с другой — зарабатывать в путешествии, доставляя покупки.

Моя миссия в этих процессах — создание и поддержание всего front-end. Сайт, приложение для iPhone и грядущий запуск версии на Android. Как раз сейчас мы готовим всю технологическую базу под это. Практически весь front-end Grabr построен на одном технологическом стеке. Что облегчает и поиск новых программистов в команду, и снижает количество ошибок. Здесь очень большой код-шеринг.

Одно слово, лучше всего описывающее, как вы работаете?

Одна фраза – «внимание к деталям». Именно на этом основан успех всей системы.

Сколько часов в сутки вы уделяете работе?

Работаю по 12-13 часов. Непосредственно в офисе я провожу от 9 до 11 часов, в зависимости от количества дел и моего желания все успевать.

Сколько часов вы спите?

Часов 7 по будням и около 10 по выходным.

Как вы завтракаете?

Овсянка с молоком. Уже очень много лет только так.

Что делаете по пути на/с работы?

На работу и обратно добираюсь на такси – это здорово экономит время, позволяя сосредоточиться и подготовиться к рабочему дню в относительной тишине. В дороге время от времени просматриваю Business Insider и технологические блоги на Medium. Но чаще всего я читаю сайты, которые предложил мне Google в ответ на какой-нибудь мой запрос – у меня в голове постоянно крутятся идеи, как имплементировать тот или иной функционал, и я ищу ответы на возникающие в ходе мысленного эксперимента вопросы.

Каким todo-менеджером пользуетесь лично вы?

Пользуюсь «тудушками» на iPhone. Мне очень нравится, как они синхронизируются с Mac. У меня есть пять категорий задач: домашние, рабочие, промежуточные и так далее. Все свои задачи я стараюсь загонять сразу же в этот todo-list.

Без каких приложений и сервисов не можете обойтись?

Не могу обойтись без Gmail и GitHub. В последнем вообще, кажется, собрана вся моя жизнь. Очень зависим от этого сервиса.

Каким таск-менеджером / issue-tracker’ом / репозиторием пользуетесь в компании?

Пользуемся тем же GitHub в качестве репозитория и там есть отличный issue-tracker. В команде также пробовали пользоваться Trello, но он оказался слишком рандомным для разработчиков.

Кто-то поспорит, но каждая команда выбирает инструмент под себя. Кому-то нравится JIRA, кому-то — Trello. Кажется, это Эйнштейн сказал: «Все должно быть просто, но не проще, чем нужно». Вот для меня GitHub — отражение именно этой истории.

Какие еще инструменты и ПО используете в работе?

Пользуюсь техникой Apple. Уже очень давно отказался от большого мощного компа на Windows в пользу компактного Mac.

В работе использую Terminal, Sublime, Sketch, IDE. Sketch открыл для себя только с приходом в Grabr. Наш дизайнер все рисует именно в этой программе. И сейчас, кажется, это самый удобный инструмент для верстки.

Вообще я сторонник платить за ПО. Мне кажется, когда платишь за софт, говоришь спасибо его разработчикам за потраченное время. Тот же Sublime ничего не стоит, только предлагает тебе внести любую сумму в поддержку проекта. И мне совсем не жалко тех же $30 за год использования крутого инструмента.

Если говорить про front-end в Grabr, то мы находимся тут на переднем технологическом краю — у нас React как renderer, Redax как модель, Flowtype для вывода типов. Дальше только Facebook, который все это создает. Мы пользуемся атомарной версткой и сумели создать собственное решение для этого. И сейчас это решение доступно в open source. Вы уже можете начать работать с ним.

Что вас раздражает больше всего, когда вы работаете?

Не люблю шум.

Какую профессиональную литературу вы бы могли порекомендовать?

Книга JavaScript: The Good Parts Дугласа Крокфорда. Очень маленькая книжка по основам языка Java, а больше знать не нужно.

Что предпочитаете: электронные читалки или бумажные книги?

В этом плане я ретроград – предпочитаю бумажный носитель.

Какую технику и почему вы предпочитаете на работе и дома?

Около 8 лет я проработал в крупном энтерпрайзе, а там балом правит Microsoft, поэтому волей-неволей приходилось ежедневно работать на Windows стеке. Последние лет 5 моим личным компьютером был Mac, и свои проекты я разрабатывал на нем. Когда я присоединился к Grabr, я полностью перешел на эту платформу, стал использовать Mac и для работы.

После покупки компьютера на Windows ты начинаешь с того, что переустанавливаешь систему, чтобы избавится от бесконечных антивирусов, оптимизаторов реестра и всей рекламной мишуры, которую туда напихали производители. Техника Apple, их софт и сервисы мне импонируют, потому что позволяют не думать о них – они просто работают «из коробки».

Мне нравится, как все синхронизировано через iCloud. Например, после покупки нового компьютера, достаточно залогиниться, чтобы вернуть все свои приложения и последние установки в них. Кроме того, все элементы экосистемы отлично подогнаны друг к другу и я не помню, когда последний раз был вынужден что-то настраивать.

Говорят, что под Mac нет полноценного софта для программистов – это не так. Существует множество средств разработки, от Sublime и Coda до таких комбайнов, как IntelliJ IDEA. И, что важно, они все очень красивые и ими приятно пользоваться.

Что вы слушаете, когда вы работаете?

Лучше всего я работаю в полной тишине. Но вообще люблю рок – Pink Floyd, Deep Purple и электронику, например Depeche Mode.

Какой лайфхак позволяет вам быть эффективнее?

Для меня написание кода – это творчество, создание чего-то осязаемого через упорядочивание символов на экране. Из этого отношения рождается перфекционизм, который, как известно, погубил много хороших проектов, вспомнить хотя бы Duke Nukem. Поэтому я вывел для себя понятие периода полураспада кода – это отрезок времени, за который мой код перестает мне нравиться. Если этот период слишком короток, то я явно не уделил коду достаточно внимания. Если период слишком длинный, то скорее всего, я неоправданно долго доводил код до совершенства и настал момент вспомнить принцип Парето. А вот поддержание средних значений, кажется мне наиболее эффективным.

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

Какой профессиональный совет на будущее вы можете себе дать?

Не становиться однобоким профессионалом. Многие революционные открытия и технологии создавались людьми, обладающими свежим взглядом, незамутненным традициями и догмами.

Что бы вы порекомендовали человеку, пытающемуся пройти тот же путь?

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

Если говорить о технических аспектах, то мне импонирует более основательный, фундаментальный подход, поэтому я рекомендую начинать изучение программирования со строго типизированных императивных языков, таких как Java или C#. Понимание базовых принципов разработки, знание паттернов — как проектирования, так и интеграции — сформируют осознанный подход к созданию систем.
ссылка на оригинал статьи https://habrahabr.ru/post/329436/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *