Как работают ИТ-специалисты. Савва Михалевский, 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, Redux как модель, Flowtype для вывода типов. Дальше только Facebook, который все это создает. Мы пользуемся атомарной версткой и сумели создать собственное решение для этого. И сейчас это решение доступно в open source. Вы уже можете начать работать с ним.

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

    Не люблю шум.

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

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

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

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

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

    Около 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#. Понимание базовых принципов разработки, знание паттернов — как проектирования, так и интеграции — сформируют осознанный подход к созданию систем.
    • +10
    • 8,4k
    • 7
    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 7
    • 0
      Вы уж меня извините заранее если я не прав, но честно говоря «Как вы завтракаете? Овсянка с молоком. Уже очень много лет только так.», это перебор
      • +2
        Почему?
        • +1
          Ах ну да, то что он кушает овсянку с молоком, отлично дает понять, то как он работает как IT-специалист, где можно почитать полную версию с невошедшими вопросами?
          • 0
            Понятно. Я уж было испугался, что с овсянкой что-то не так.
        • +1
          Интервьюер явно тренировался на маленьких детях. У них тоже все время спрашивают
          «А как тебя зовуууут?»
          «А сколько тебе гооооодиков?»
          «А что ты сегодня кууууушал?»
          • 0
            Ага, какой стул у нас был сегодня? Мерзко.
        • +1
          >Книга JavaScript: The Good Parts Дугласа Крокфорда. Очень маленькая книжка по основам языка Java

          Коммент про интеллектуальные способности тех, кто не отличает Java от JS

          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

          Самое читаемое