Евгений Рубилов

Евгений Рубилов

Неделя
May 31, 2021 → Jun 6, 2021
Темы

Архив недели @ERubilov

Понедельник


Доброго всем времени суток! Меня зовут Женя и я работаю в команде Kotlin. А еще хочу строить дома на деревьях. Так что на этой неделе поговорим и про работу и про хобби)

День 1. Последовательный путь в IT. Мой опыт День 2. Как JetBrains и Гугл про Kotlin разговаривают День 3. Как я сломался, когда пытался понять что Kotlin - это продукт День 4. Отдых от работы День 5. Флудильня День 6. Купил участок. Что делать? День 7. Буду постить фоточки

Про путь в IT. Началось всё до банального просто...

Шарится в компах я любил с детства. Помню настраивал на винде кастомные темы для окон, звуки подменял на разные экшены и всё в таком духе. А потом всё слетало нах, если при инсталляции игры от Фаргуса не снимал пачку галочек

С 9ого класса пошел на компьютерные курсы, и там 3 года подряд взахлёб: основы ПК, 3D max, компьютерные сети, программирование. И так застрял на этих курсах в ИТМО, что в общем-то выбор ВУЗа для поступления был очевиден.

Мы всей группой свято верили, что учат нас на программистов. Но оказалось, что мы все поступили на преподавателей информатики для высших уч. заведений. Тот день был новостью для многих. Но ничего смерились. За всё историю группы нас было 34 человека. Выпустилось только 7

Как говорил мой препод по педагогике: "Хочешь что-то понять — начни это преподавать". Так, с 3его курса я вёл занятия, на которых учился еще сам школьником. Преподавал я детям, так что объяснял на пальцах сложные вещи. Заодно и сам разбирался как устроен IT мир.

На 5ом курсе один из преподов с кафедры предложил поработать QA в компании QuickOffice. Это офисный пакет под iOS и Android. Вернее в аутсорсе, который на них работал. Так я попал в свою первую IT компанию с печеньками, обедами, ДМС и остальными благами. Это был шок

Всего тестировщиком я проработал год. Пол года из которых был QAA. Делали бота, который читает логи из ADB и в зависимости от контекста идёт дальше по тесту. Тесты были не оч гибкие и я сделал мини-функции, которые через билдер собирались практически в любой сценарий.

После случилось моё знакомство с компанией Google: они купили QuickOffice, а я попросился в разработчики, прошёл испыталку и так началась моя android карьера. Было круто думать, что я работаю на гугл, это давало невероятную бодрость, но у медали две стороны...

Спустя год Google решил перетянуть всё разработку к себе, а от услуг конторы в которой я работал отказаться. Так меня выкинуло на рынок, где не работа искала меня, а я искал работу. После пачки шишек, которые набивают все, кто ищут работу впервые, появилась она

FirstLine software — аутсорсинговая компания недалеко от м. Петроградская. Тогда были популярны фитнес-браслеты и компания работала над проектом умных часов и софта к ним. Задача была писать приложение ко всем существующим фитнес-трекерам, нагнать людей, а потом выпустить часы

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

MobileUp — работы было много, за день через меня проходило до 4х проектов. Но там я вернулся в коллектив, там было весело и очень по-домашнему. Скажу, что опыт там был действительно крутой: научился читать много кода, быстро въезжать в происходящее, быстро фиксить (читай костыль)

В Wrike мне потребовалось около года, чтобы выпилить из себя аутсорсный подход к разработке. Там я почувствовал что такое продукт в целом и понял, что хочу больше связать свою жизнь с ним. Рокетсайнса не было, но глубокое изучение android и enterprize подход оказались интересными

Я любил продукт и хотел сделать его лучше. Регулярно предлагал какие-то идеи, был активистом, что-то пилил в отрыве от работы, и наконец, после внутреннего хакатона идей (типа питчинг стартапа) я понял, что назад для меня дороги нет и что теперь я хочу стать product менеджером.

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

Еще было сложно делегировать работу. То есть отдать её человеку и не лезть. А вообще работа нервная. Программистом было по-спокойнее как-то. И ясности было больше. А тут куда ни плюнь - гипотеза, которую нужно проверять, и всё не точно, а примерно. В общем неопределённость

Спустя 5+ лет я ушел в JetBrains, а конкретно в Kotlin. Для меня это была интересная возможность совместить опыт разработчика с продуктовым. А работать предстояло с сегментом Android, так что вообще сказка.

Закончу тем, что отвечу на один из популярных вопросов: многие спрашивают как попасть в JetBrains? Отвечаю, откликаетесь на резюме и проходите собесы) Не теряемся, завтра расскажу как выглядит андроид организация гугла и о нашей дружбе с ними. Готов к вопросам, если они есть

🔥Тред #1

Вторник


JetBrains и Google ведут сотрудничество довольно давно. Всех деталей истории я не знаю, зато в курсе, что происходит сейчас. Как PM в Android моя работа не только понимать состояние комьюнити и его запросы, но и еще общаться с гуглом. Начну с того как выглядит общение

Новые топики начинаются в основном с менеджеров, которые концептуально договариваются кто и что друг от друга хочет и в какой форме мы/они можем это предложить. Как канал связи используется Gmail

Следующая точка общения — это Slack. В наш корп аккаунт приглашены single-channel пользователи, которые все находятся в ext-канале. Обычно там задают только технические вопросы. Не понимаю как, но работает это хорошо, ибо вопрос всегда находит свой ответ и делает это быстро

Так же есть регулярные встречи: общая, чтобы обсудить голосом какие-то вопросы и частные, типа перфоманса IDE, гредла и т.д. Активность чаще со стороны Google, а это влечёт за собой их культуру: каждая встреча должна иметь агенду и митинг до полу часа. Знаете — это оч продуктивно

Вообще они там все котятки — очень вежливые и аккуратные. Все вопросы ставятся в форме не "дайте" или "мы хотим", а "нам нужна помочь/поддержка, что мы можем сделать, чтобы получить результат?" И JB в этом смысле такие же. Я был приятно удивлён когда заонбордился в Kotlin.

С технической точки зрения Google (Android) активно работает с 3мя направлениями Kotlin Компилятор Качество работы IDE плагина Сборка проекта Конечно в гугле гораздо больше команд с которыми идёт диалог, но я попробовал обобщить их по направлениям.

Такое тесное взаимодействие как бы намекает, что Google не просто адаптирует язык под Android, но ещё и заинтересован в его развитии. Для тех, кто не в курсе есть Kotlin Foundation (kotlinlang.org/docs/kotlin-fo…). Вообще мы бы хотели его развивать и привлекать больше компаний/партнёров

Темы для общения - Compose - Перфоманс IDE плагина - Android Studio - Маркетинг (d.android.com и общие активности) - Команда документации, в т.ч. API который генерится через github.com/Kotlin/dokka - Gradle + Android (+KAPT) - KSP - Аналитика по проектам Это основное

Кстати про аналитику и "Большого Брата": - Всё что можно максимально анонимизируется - Чтобы получить от Google данные типа "сколько проектов используют Gradle" нужно пройти лигалов с ответом "а как эти данные будут использоваться?" - У JB не прямого доступа к данным работы с AS

Вообще тема данных сложная. Из-за правовых аспектов мы не можем легко обмениваться информацией с Google. Это притормаживает продуктовую работу, и потому интервью с пользователями, опросы в twitter и включённая галочка про отправку анонимной статистики в IDE очень для нас важны

Финалочка 🏁 Вопрос: откажется ли Google от Kotlin в пользу Dart? Конечно у меня нет ответа, но я думаю так: пока размер приложения будет коррелировать с его скачиваемостью, а нативный UI с ренетшеном в приложение — я буду спокоен за Kotlin на Android устройствах. Всем добра) 👋

🔥Тред #2

Среда


День 3 До Kotlin, продуктом для меня было то, что имеет кнопочки или что-то что можно потрогать. О том как менялось моё восприятие когда я въезжал в Kotlin и почему компилятор (и не только) — это отдельный продукт. Погнали 🏎️

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

Первый взгляд на Kotlin был очень туннельный: языковая конструкция — фича, их взаимодействие между собой — UC, а доступ к ним — UI/UX. То есть достаточно иметь дизайн языка и подсветку в IDE. И почти сразу как я начал работать я понял как же я ошибался. Но обо всём по порядку

Начал я с того, что должен был исследовать сегмент Andorid и понять есть ли блокеры для его принятия. Тут пошли первые изменения в мозгу: аутсорсу дорого переучивать разработчиков, программы в ВУЗах чаще на java, junior выбирают ЗП, а не язык, и т.п.

То есть первая осознаночка: что у каждого свой контекст и свои проблемы, а значит и ценность язык несёт каждому свою. Одна из проблем: недостаточное обоснование почему Kotlin. Тут щёлкнуло, что это про онбординг, про маркетинг, а значит funnel, который можно измерять и улучшать.

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

И в итоге они заинтересованы в улучшении каждого шага, а их много: - Открытие проекта - Отзывчивость IDE - Удобство читать и писать код - Гибкость и простота конфигурации проекта - Скорость сборки - Читаемость ошибок/логов - Работа с VCS - Навигация по коду - Кастомизация IDE ...

У каждой из этих штук есть сценарии использования, которые вариативны от контекста компании. Классные продукты уделяют много времени классному сервису. Например документация, или support, или такая глобальная вещь как community и экосистема.

Продукт не висит в воздухе. В случае с Kotlin, чтобы стать ценным, нужно закрыть звериную долю сценариев, и только тогда он начнёт жить. Машина может быть сколько угодно быстрой, технологичной, красивой. Но если у неё постоянно спускает колесо, то поклонников буде не много

Другая моя проблема была привычка смотреть на revenue. Я как-то привык подвязывать свою работу на активных пользователей, сегментировать по типу подписки, стараться привязать это к деньгам. А тут open source продукт + и вопрос: сколько денег принесли trailing commas. Ну вот как?

В какой-то момент ко мне пришла кажется очень простая и при этом полная мысль: "чтобы понять продукт и его роль нужно понять его пользователей." Через понимание сегментов мне стала видна роль каждой подсистемы в Kotlin, а так же влияние языка на программирование во всём мире

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

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

И да, в мире есть ребята, которые хакают исполняемую среду под себя и бывает, что хотят нормально общаться с этими хаками. Поэтому они хотят расширять компилятор через плагины. Так что вполне себе сегмент и с большими проблемами. Вот как это сделал Google d.android.com/jetpack/compose

🔥Тред #3

Четверг


Тема WLB хайпанула на отечественном пространстве 4-5 лет назад. В те дни я был страшным трудоголиком и очень нервным (чуете связь?). При этом увлечения в свободное время у меня были всегда. Сегодня расскажу как переключаюсь и свои правила работы/жизни. Может сделаю опрос Вжух🏎️

В интернете пишут, что важно планировать. Но в моей системе координат это не было синонимом "выполнять задуманное". Планирование — это намерение, но не всегда всё идёт по-плану. Так вот планировать я умел, а вот говорить "нет" неожиданностям — нет. Из-за этого и выгорал

Было ощущение, что у меня с балансом жизнь/работа порядок: увлечения были и я их не пропускал, работать оч нравилось и на всё хватало сил и времени. То есть как бы всё круто. Но нет. В том темпе было много задач снаружи, и не хватало времени на посмотреть внутрь. А стоило бы

В итоге круговорот событий посадил меня на поезд инерции и потащил. Сойти с такого поезда мне помог вопрос "чтобы что" (читай 5 whys). Важно, чтобы в ответе было что-то выгодное для меня: укрепление соц. отношений, доход, веселье, покой. Короч делать что угодно, но помнить о себе

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

Отдых - это смена обстановки. Как мышцы в долгом напряжении не могут эффективно работать, так и человек занимаясь однообразной работой устаёт Отключай работу (вкладки в браузере, нотификации) Меняй деятельность. Для меня это работа руками (расскажу как к этому пришёл)

Работа в IT дола мне хороший стабильный доход. Я начал инвестировать его в себя для поиска себя: - Несколько прыжков с 🪂 - 🏍️ права - Занимался🥊 - 3 года танцев🕺 - 📻Курсы радио ведущих + год на радио - Научился 🎸 - Поборол страх 🌊 - Научился ездить на 🐎 - и по мелочи

Я это всё к тому, что хотел найти занятие по душе, а всё не находил. Почему - поезд инерции. Получив доступ ко всем этим штукам я начал пробовать их без ответа "чтобы что?". И не скажу, что было плохо, лишь отмечу, что чего-то не хватало. И начал это искать.

Взгляд внутрь Отлавливать свои чувства негативные и позитивные чувства Разобраться почему реакции именно такие Научиться говорить нет на ситуации которые вызывают негатив Делать короткие итерации, чтобы видеть результат

Всё это нужно для того, чтобы понимать то чего кайфую и что не нравится (скрам ретро, если хотите). Через это понимание приходит понимание себя, которое я обернул в следующие слова: "день прошёл хорошо, если я смог выразить себя" Такой вопрос хорошо ставит меня на рельсы себя

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

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

Финал 🏁 У меня есть список правил, который перешёл в привычку. Каждое из правил — это результат анализа (почти) каждой негативной ситуации. Теперь видя какие-то маркеры я применяю правило и чётко действую по нему без повторного анализа ситуации. И это не подводит никогда
notion image

🔥Тред #4

Пятница


5ничка!🤘 Сегодня хочу МНОГО диалогов на супер разные темы. Но вдруг вы не хотите учавствовать? Если позволите, закину опрос! Не стесняемся, отвечаем
🤔 84.0% Я тут почитать
🤔 16.0% Готов поболтать, а о чём?
🤔 0.0% Готов предложить тему

Топик №2 "Как я положил прод". ИМХО тема просто забавная на почита/поделиться. Кажется нет одинаковых сценариев, но есть интересные истории. Ща вот расскажу свою

Не положил, но неприятно. Работал QAA. Надо было ботом ползать по файловой системе. Для этого в коде в одном месте нужно было прокинуть доступ к ней. Прокинул без проверки на null, а тестили с картой памяти. Так и зарелизили. Вообще я тогда очень испугался, думал уволят.

Другой раз у HTTP клиента вызвал вместо cancel() текущего реквеста закрытие всего клиента. После релиза все, кто отменяли реквест (а UX был такой, что это подразумевалось) получали сломанное приложение. Клиент был очень злой. А я долго рефлексировал на тему что я плохой кодер

Тема 3 Ехали на йогофестваль.Была только точка на карте,маршрут не проложить.Из подсказок только"у большого дерева налево,второй поворот за муровейником"

Ночь,темно.Встречаем посреди леса машину.Выхожу спросить дорогу,из машины вываливается парень и говорит что я не туда приехал,но добавляет:"спроси у Мишы,он сидит в машине"

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

А какие странные приключения случались с вами на отдыхе?)

Экстрим - это опасно. Когда второй раз прыгал с парашютом, меня упаковывали минут 20, потом инструктор на меня посмотрел, и говорит "это что за ...ня?" Переодел парашют. А когда он раскрылся, стропы спутались и я летел вниз быстрее, чем планировал. Распутал пока летел

🔥Тред #5

Суббота


День 6. О том как я пытаюсь стать данником в Карелии. И о том, что бесполезно планировать то, в чем ничего не понимаешь.
notion image

Где-то в сентябре 2020, когда летний отпуск провалился по известным всему миру причинам пришло время себя развлекать иначе. Началось все с того, что я посмотрел на Ютубе шоу Пита Нельсона или дома на деревьях.

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

Летом 2020 я хотел пойти в летную школу где-то в Чехии, чтобы получить европейскую лицензию летчика. Накопил денег, но так их и не потратил. А в небо все ещё тянуло. Вот и я подумал, что можно строить дома ближе к небу. Так я сохранил идею и полностью сменил план

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

В общем как начать строить? Нанять строителей, но тут нужен контроль. Строить самому, но где-то надо жить. Где? - палатка - бытовка - нанять строителей, но тут нужен контр.... Стоп, это уже было. Выбор пал на палатку и я не прогадал. Фура с бытовкой не прошла бы на участок

КАМАЗ со щебнем разбил мне дорогу, потом приехала машина с деревом и разбила, то что не разбил КАМАЗ. А потом я нанял ребят, которые делают дороги. Они просто уничтожили остатки и сказали, что надо подождать пока просохнет земля, а потом можно делать дорогу.

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

Задача была обеспечить максимально комфортные условия. И в целом это почти удалось. Почти, потому что ещё предстоит решить проблему с комарами и мошками. Тут их много. Кроме жизни возвел небольшой строительный лагерь: укрыты материалы и шатер для работы.
notion image

ЗЫ: не натягивайте тенты на палки, если не умеете это делать. Сильный ветер все сорвёт и материалы намокнут.

Строительство и интернет - вещи несовместимые. Если вы попробуете найти строй базы Сортавала, то вы не найдете ничего. А их тут три. Я этого не знал и вез дерево из Питера. Вообще стройка это любопытно. На ремонт квартиры и потратил Х денег и год времени (дизайн + работа)

Площадь квартиры 40м². Мой участок 28400м² Мне это число уложить в голове не просто. Но если подумать сколько нужно дорожек, сколько косить травы, а ещё хочется сажать плодовые деревья... Это занятие на фулл тайм на всю жизнь мне кажется.

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

🔥Тред #6

Воскресенье


День 7. Фоточки. Буду постить про то, как идёт обустройство.
notion image

Для жизни купил палатку для кемпинга. Она большая - Она тяжёлая Ее не везде можно поставить, потому что ровных мест такой площади мало. Вообще есть правила постановки палатки. Я почти все их смог учесть
notion image

Быт внутри почти налажен. Почти, потому что это все же не квартира, всех условий нет, потому бардак частенько
notion image
notion image
notion image
notion image

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

Ещё одна задача - это гигиена. Маст хев. Туалет купил био, и палатку к нему. Работает прекрасно, условия считай как в городе. Он есть на фото с большой палаткой А ещё сделал душ. Назвали "Очищение"
notion image

Говорю сразу: она в полном порядке. А теперь про фото. На заметку: собака короткошёрстная, городская. Два этих фактора намекают на то, что на укусы насекомых может начаться аллергия. Не паниковать. Можно дать табл, а можно просто переждать, отек сходит где-то за 30 мин
notion image

Вообще дорожные работы иногда приводят к фичам. Так у меня теперь участок на скале, а вокруг ров. Остаётся наслаждаться этими временными окончаниями и фантазировать на средневековые темы
notion image

Почти финал. Заведи себе дачу, и у тебя всегда будет чем заняться. Да просто траву косить раз в 2 недели, потому что зарастает все. Ходить по такой местности может быть опасно: змеи, кочки, клещи. В общем вписался: это и проект и процесс, который и развития требует и поддержки
notion image

🔥Тред #7
Финал Главное в хобби — кайфовать. И каждый кайфует от чего-то своего. Мне нравится лес, слушать птиц и смотреть на закаты. Так что я пошёл за своими желаниями. Если думаете о чём-то подобном, то welcome в гости: посидим у костра, всё расскажу Телега @Rubilov или LinkedIn Чао
notion image

Ссылки