Хабрахабр

«Мы это решение сделали, блин, в срок!» — 10 вопросов программисту, выпуск 5

Продолжаем «Берлинские выпуски». Сегодня на вопросы отвечает Александр Сарайкин (hrenod), который помогает компаниям из Европы и США налаживать инфраструктуру.

Начал работать на аутсорсе на немецкую компанию. Александру 31, он учился в аспирантуре в Пензенском Государственном Университете по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», но не закончил ее, потому что было не очень интересно. В итоге осел в компании SourceStream и постепенно из программистов переместился в DevOps c фокусом на инфраструктуре, сервисах Amazon и других облачных провайдеров. Подучил немецкий, перебрался в Берлин, затем попал в стартап, где проработал около трех лет. Сейчас там надпись cloud solutions architect. Должность на визитке придумывает для себя сам. Тем не менее продолжает писать для внутренних проектов на PHP, а если клиенту нужно помочь — разберется в коде Ruby или Python.


Александр и питон

1. Расскажи о фиче, которую ты реализовал и которой гордишься.

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

Это успешно запустили в Японии, потом в Европе, а теперь и в Штатах. BMW Group решила от этого избавиться, чтобы ты с карточкой одной «заправки» мог заправляться на любой другой.

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

Это, наверное, единственный раз в моей карьере, когда удалось. А горжусь я тем, что мы это решение сделали, блин, в срок!

2. А теперь — про самый лютый факап.

История о том, как я научился ставить точку с запятой в начале команды — чтобы она не сработала. На всякий пожарный. Тот случай меня научил так делать. Я был еще программистом, а не инфраструктурщиком. Мы что-то делали прямо на проде. Я хотел скопипастить условия для удаления каких-то записей. А в конце этой копипасты был перевод строки, и команда применилась еще до того, как я успел что-то добавить. В общем, продакшн-база пострадала. Но, слава богу, была копия!

Но удалось исправить за час. Для меня время тянулось очень долго, мне начальник писал: what are you doing?

3. Опиши свое рабочее пространство: от кресла и монитора до сред программирования и любимых утилит.

Я чаще всего работаю на выезде у клиентов, и мне в принципе по барабану, где сидеть. Тебе звонят и говорят: срочно! И тут уже не важны условия. У всех такой трэш творится. Могут быть ручки у кресла отломаны. И два дня в неделю, которые ты работаешь, воюешь за свое кресло: приходишь, отбираешь его, а на следующей неделе его опять нет.

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

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

Приходится иногда брать Маки — протестировать, что у остальной части команды автоматизация будет работать как надо. Работаю я в основном на Линуксе, Ubuntu. Однажды мне нужно было запустить хитрое решение на Kubernetes, а потом оказалось, что еще и под Windows это нужно запустить. Тот же Docker чтобы запустился с нужными mount’ами. Пришлось разбираться, как поднимать что-то в Azure.

Поэтому для программирования я использую IntelliJ IDEA. Пишу на Java, Scala, Node.js, Python, Bash… На чем угодно. Причем у нас все по-взрослому — не community, а купленная лицензия.

У меня целая куча клиентов, и везде нужен SSH-доступ на сервера. И еще есть классная тема, которую я всем советую. SSH-ключи по каждому клиенту я собрал в Keepass, и он эти ключи автоматически загружает в агент, когда ты анлочишь базу. Для каждого из клиентов я, естественно, создаю свой набор ключей и паролей. Получается, что закончил работу, залочил базу, и все ключи обратно свернулись. То есть на диске они у меня никогда не сохранены.

4. По какому принципу ты выбираешь работу? Стек, продукт, бытовые условия, деньги?

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

Смотрю, чтобы он мне был полезен в будущем. По стеку я, конечно, выбираю.

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

Если клиент работает в американской временной зоне, я говорю, что могу работать вот в такие часы, а в остальное время — нет. А основной фактор, наверное — это время. Хотя бывало, что я в офис каждый день был к 5 утра четко, потому что очень переживал за запуск. Дело в личном удобстве, мне нужно организовать в течение недели время так, чтобы не приходить на работу сонным.

Если ваши ожидания совпадают, можно нормально работать. И еще важный момент — чтобы клиент тебя понимал. Но я, конечно, продолжаю работать, пока они не найдут мне замену. А если от тебя ждут, что ты будешь быстрее отвечать, больше времени на работе проводить, быстрее закроешь задачу — то я обычно сразу говорю: почему бы вам не поискать того, кто в этих вещах лучше себя проявит?

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

Возможно, я всеми этими вещами уже долго занимаюсь, поэтому к технологиям привык. Но я однажды покупал себе новый комп — это был Lenovo X1 Carbon. И я так расстроился, когда мне самому пришлось писать драйвер для fingerprint-сканера! Дело не в высокой цене ноутбука. Lenovo себя зарекомендовала как бренд для девелоперов, гиков. И тут ты покупаешь их ноут, а Linux не видит половину устройств, и тебе надо что-то самому придумывать. Причем я на форуме читал, что этот сканер отпечатков пальцев поддерживается, а вышло, что нет.

Я к нему вписался, тоже накодил что-то и собрал свои звезды на гитхабе. Оказалось, я не один такой, и какой-то чувак взялся делать драйверы для этой серии устройств. Если не только мне помогло — это классно!

6. Где лучше перенимать чужой опыт — в вузе, на конфах, на хабре? Еще где-то?

У меня все-таки специфическая область, где я ищу решения инфраструктурных задач. Думаю, основные знания появилась со своих проектов. Когда ходишь по конференциям, тебе все продают свои решения, которые «шикарно взлетели». Ты набираешь примерно сто вариантов, но пока все не попробуешь сам, никто не скажет, какой лучше.

Если у тебя предметная область предполагает event sourcing cqrs, то ты ищешь на Хабре event sourcing cqrs. А в языках программирования какие-то паттерны, возможно, лучше описываются в статьях. Там, наверное, чуть поменьше «переменных», чем в инфраструктуре.

7. Будь у тебя неограниченные ресурсы (время, деньги, мощности, люди), каким проектом ты бы занялся?

Я бы попробовал сделать то, что приносит больше фана людям. Над такими вещами уже работают: тот же VR или SpaceX. Звучит прикольно. Хотел бы сделать то, что может даже не нацелено на получение прибыли. Возможно, что-то либерализующее коммуникации.

И это, конечно, совершенно другой рынок. Еще я слышал про компании, которые занимаются разработкой молекул на продажу — для конкретных целей в медицине и других областях. Только если я на изучение своей профессии потратил 10 лет, тогда там сколько понадобится? Я в этом ничего не понимаю, и не знаю насчет инвестиций, но интересно было бы посмотреть, как это работает изнутри. Пятнадцать?

Я меняю специализацию примерно каждые пять лет. Вообще меня всегда интересует вопрос «что дальше». И вот вроде уже пора.

8. Как ты отдыхаешь? Что делаешь кроме работы?

Проблемный вопрос. Кроме работы я обычно беру себе еще какую-то работу. Но стараюсь общаться с людьми, ездить в другие страны. Когда ты выбираешься из привычной среды, общаешься с новыми людьми — вот это круто. Почему-то получается, что все равно оказываешься рядом с айтишниками. Но даже если тебя окружают 70% айтишников, людей с похожими взглядами на твои окажется максимум 5%. Будет столько разных мнений, что найдется, о чем поговорить.

Дроном учился управлять. Активный отдых — прикольно: все хочу в Альпы (благо рядом), но что-то никак — в основном куда-то в тепло езжу. Прошел обучение езды на мотоцикле, но права так и не получил. Занимался стрельбой из огнестрела в «Объекте» и даже сдал зачеты для вступления в IPSC.


Телефон — не только рабочий инструмент, но и открывашка, если правильно подобрать чехол

А иногда меня все это утомляет, и тогда я предпочитаю тупо поспать дома.

9. Расскажи про 3 любимые книги — учебную, научно-популярную и художественную.

  • Учебную литературу я не читал, по-моему, лет пять. Но когда проходил собеседование в ThoughtWorks, я читал книгу Фаулера, который там работает, по-моему, до сих пор.

    Их не успевают издать, а уже что-то новое появилось. В офисе у нас лежат, конечно, книжки типа «PHP3», но их никто не читает, потому что они устаревают очень быстро. Любую. Хотя многие считают правильным положить себе на стол книжечеку О’Рейли какую-нибудь. Еще бы с закладкой положили! Если ты Scala-разработчик, то надо положить книжку по Scala.

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

10. Если прямо у тебя на глазах в ИИ проснется сознание, что ты ему скажешь?

Был такой классный фильм «Военные игры». Там компьютер пришел к выводу, что единственно правильное решение — это не играть. Так что я бы подкинул ИИ такую наводку. На всякий случай.

Это наоборот все интересно и прикольно. А если серьезно, то я таких вещей не опасаюсь.

Вопрос от предыдущего гостя

Осознай ты себя бессмертным или не стареющим, преодолевшим стандартные 70 лет раза два – три, как бы ты продолжал жить?

Думаю, набрав богатый жизненный опыт, я постарался бы тратить время на что-то по-настоящему важное, а не всякую ерунду, которой занимаюсь сейчас.

Бонус: задай вопрос другому разрабу

Предложи стратегию прокачки после первых 5 лет работы программистом. Что дальше?

Предыдущие выпуски

Теги
Показать больше

Похожие статьи

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

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

Кнопка «Наверх»
Закрыть