Илья Таратухин

Илья Таратухин

Темы
Неделя
Nov 16, 2020 → Nov 22, 2020

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

Понедельник


Всем привет! На этой неделе с вами Илья Таратухин (@darkilfa). Работаю в @vkontakte, считаю что культура гораздо важнее навыков.

О чем я бы хотел поговорить на этой неделе? Для начала хочу рассказать немного о своем опыте, затем хотел бы обсудить проблемы найма в IT (нужен взгляд с обоих сторон, конечно же). К середине недели можно поговорить о выборе технологий и инструментов.

Дальше я хочу обсудить с вами профессиональное развитие (хард/софт скиллы, личный бренд, вертикальный/горизонтальный рост). И закончить хотелось бы на теме отдыха от работы, нормализации психического здоровья и хобби.

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

Пора уже рассказать о себе! Давайте для начала разберемся с "привилегиями". Мне "повезло" родиться "белым цисгендерным мужчиной", но не повезло это сделать в Новосибирске. Но тут конечно как посмотреть, хоть и холодно, зато в городе отличная IT-тусовка.

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

Не смотря на то, что я рос в довольно криминальном районе города, мне очень нравилось учиться, так что к 10-му классу я не скололся, а поступил в замечательное заведение — Лицей НГТУ, спасибо ему за крутой опыт и возможность завести много крутых знакомств!

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

Учился я на АВТФ в НГТУ. В то время (2004-й год) в моем окружении особо не возникало вопроса: "Нужно ли высшее образование?", всем было очевидно, что "Нужно конечно!". Проблем с поступлением у меня особо не было, первые два курса тоже давались легко.

Где-то здесь я начал фрилансить и делать сайты на PHP за деньги (до этого подрабатывал эникеем по сарафанному радио). Мне казалось, что у меня обязательно должен быть свой фреймворк на PHP, меня дико воротило от верстки и необходимости рисовать дизайны, я был вебмастером.

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

Самое классное — это различные тусовки, причем в основном не айтишные. Кругозор это очень полезно на длинной перспективе, знакомства помогают развивать "личный бренд", а так же это все помогает не поехать кукухой (или поехать).

Помимо тусовок, во время обучения в ВУЗе, ты учишься продавать результаты своей работы. Вот мои одногруппники нашли лабы старших ребят по унылому предмету, вот мы из этого что-то слепили, а вот мы пытаемся своей бригадой это продать преподу. Не напоминает работу в корпорации?

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

С первой работой как-то так и получилось. Я делал верхний уровень АСУТП для шахтной вентиляции, катался в командировки в Кузбасс и был 20-летним сотрудником в маленькой компании с офисами без кондиционеров среди 35-летних ребят, которых жизнь уже немного потрепала.

Там я писал на C++, C# и потом на Java, но руководствовался лишь теми знаниями, что были получены во время обучения (то есть так себе программировал). Ах да, было это на 4-м курсе и я продолжал получать высшее образование, но уже начинал сомневаться в этой затее.

И где-то в районе 5-го курса мои социальные связи выстреливают. @2gis зовет твитерских на экскурсию в новый офис (чтобы нанять комьюнити менеджера во Flamp на самом деле), я прихожу, удачно знакомлюсь с Темой @kudzev и через пару собеседований выхожу джуном.

Это было прекрасное время! Маленькая дружная команда, интересные задачи и самое главное — ментор! Спасибо @illbullet, он тогда неплохо помог мне упорядочить всю информацию, что была у меня в голове и научится писать осознанный код с паттернами, абстракциями и прочими SOLID и DRY.

Это были прекрасные 5.5 лет. Сначала мы врывались во фронтенд с бекендным бекграундом, потом прикручивали knockoutjs, затем писали свой фреймворк. И где-то на середине этого пути случилось то, к чему я стремился где-то внутри: я стал тимлидом.

К этому времени я уже довольно давно участвовал как в собеседованиях, так и в продумывании архитектуры, но тут потребовалось как формировать команду, так и планировать ее работу (читайте и отчитываться перед компанией тоже).

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

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

Хотелось переехать поближе и как-то так совпало, что мне написали ребята из @wrike и мы друг другу как-то сразу понравились. Был переезд в Санкт-Петербург, новая команда, смена JS на Dart и старт в роли обычного разработчика - возможность передохнуть от тимлидства.

Отдых был недолгим и вскоре я обнаружил себя руководителем команды, которая занимается развитием UI-kit. Это были очень холиварные времена, особенно если учесть что продуктовым командам надо побыстрее, а половина разработчиков пришла из .NET и им UI не хочется заниматься вообще.

Груз ответственности становился все больше, я начал теряться в процессах, словил легкое выгорание и тут @Chaptykov сдал меня эйчару ВК. Я пришел на собеседование, оно как-то оч быстро пролетело и я даже от тестового умудрился отбрехаться.

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

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

Через пару месяцев я уже забыл о том, как круто было писать на Dart, неплохо ориентировался в кодовой базе и подходах разработчиков, но от легаси иногда хотелось плакать. Очень радовался, когда можно было пилить фичу на React!

И спустя некоторое время это случилось опять. "Илья, а не хочешь ли ты заняться инфраструктурой?" На тот момент уже довольно много всего хотелось полечить, так что я согласился.

Для начала мы наладили нормальный сбор js-ошибок с использовании Raven.js от Sentry с сохранением текстов ошибок и стектрейсов в clickhouse. Затем начали причесывать сборку, переносить js код под webpack.

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

Начиная от устройства в 2ГИС и до текущего времени я всегда вписываюсь в любые активности: выступление на конференциях, организация стендов и прочее. Во-первых, это тусовочка, полезные знакомства и личный бренд. Во-вторых, это клевый мерч.

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

Что же я представляю из себя, как специалист в 2020? Мне 31 год, я работал в 3-х крупных IT-компаниях, активно писал на JS, Dart, TS. Много ковырялся как в кишках Angular, так и в кишках React. Все еще не определился, нравится ли мне тимлидство и готов ли я завязать с кодом.

А давайте ка сделаем небольшой опрос! Что думаете о высшем образовании?
🤔 52.5% Учился, полезно!
🤔 32.8% Учился, бесполезно!
🤔 6.2% Не учился, фигня!
🤔 8.6% Не учился, жалею!

Надеюсь, я не слишком сгустил краски, но вот в этом докладе попытался рассказать о состоянии фронтенда и его эволюции vk.com/video-14741532…

🔥Тред (Илья Таратухин)

Вторник


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

Можете рассказать про свои родные города в плане старта для IT? Какой город оказался хорош тем, что предоставил отзывчивое комьюнити, а какой дал хорошего пинка под зад?

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

Климат. Летом либо дожди, либо жара. Осень очень короткая (красивые желтые листья быстро опадают). Зима начинается довольно рано, удерживает свои позиции до последнего: сугробы под под 2 метра ну и от -10 до -35 за окном. Поэтому весна длинная, холодная и довольно грязная.

В целом, погода располагает долго сидеть за своим "комплюктером". А так же располагает к тому, чтобы спланировать свои перемещения заранее. Можно предположить, что поэтому 2ГИС получился таким хорошим, но причина скорее в проектировании города.

Новосибирску сильно не повезло с ребятами у власти, поэтому в городе без карты невозможно ориентироваться очень давно. Мне кажется эта картина Васи Ложкина прям про Новосибирск. instagram.com/p/CHpbnC8AhSF/ (Можете еще видео ФБК глянуть про Нск, если еще не).
notion image

Еще про Новосибирск часто говорят: "оооо, у вас то целое метро есть!". Но оно очень скромное и строится по станции раз в 10 лет. В целом, весь общественный транспорт в городе достается в наследство от Мск и Спб со всеми вытекающими.

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

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

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

Но не все так плохо. Наверное многие слышали про Новосибирский Академгородок? Так вот, еще в 90-х в его институтах появился NSCnet (свой Интернет с выходом в глобальную сеть). nsc.ru/win/nsc-net/ns…

Так что Интернет в Нск появился довольно рано, но при этом был довольно дорогим. Это неплохо подстегивало местных провайдеров развивать как внутренние ресурсы, так и качество сети. После переезда в Спб я прям скучал по сервису и тарифам от @sibset и @2090000ru

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

Еще в Новосибирске были те самые пираты. Есть такой рассказ "Дневник тестировщика", уверен, что многие его читали samlib.ru/b/brigadir_j_a…, так же у него есть продолжение samlib.ru/b/brigadir_j_a…. Действие там как раз происходит в Новосибирске и основано на реальных событиях.

У меня нет опыта жизни в другом городе и я не могу сделать выводов, на сколько IT движ в Нск был активным в 00-х и 10-х, но давайте посмотрим на крутые IT компании, что можно считать Новосибирскими? 2ГИС, Parallels, ЦФТ (они делают очень много банковского софта), Alawar, Xored...

Как по мне, то для города с населением в 1.5 млн человек, что находится в 3К км от Москвы весьма неплохо. Сейчас же в городе открылись офисы таких крупных компаний, как: Яндекс, Сбер, Тиньк, JetBrains, Контур, Магора, НГС разросся после покупки и еще невероятное количество студий

Почему же в Нск такое развитое IT? Есть несколько ВУЗов с хорошими техническими специальностями: НГТУ, НГУ, СибГУТИ, выпускники которых собрали изначальное комьюнити и показали, что в IT интересно и денежно. На самом деле не обязательно выпускники.

Довольно частая история, когда курса после 2-го студент разочаровывается в системе образования, открывает свою игровую/веб студию и нанимает бывших одногруппников, как те выпустятся.

🔥Тред (Илья Таратухин)
А давайте ка сделаем небольшой опрос! Что думаете о высшем образовании?
Как раз дозрел опрос и результаты получились довольно интересные. Но реплаи примерно совпадают с моим мнением: ВУЗ не дает знаний, он дает навыки для получения знаний и существования в обществе, что неплохо помогает срезать углы не только в начале карьеры. twitter.com/jsunderhood/st…

@jsunderhood Студентов-программистов в моем родном Магнитогорске активно хайрят две местные компании, но условия у них довольно сомнительные. Комьюнити нет от слова совсем. Я пытался сам собирать мини митапы, даже ходил в компании в поиске площадки, но не срослось. Так что только удалёнка
Из подобного знаю про Екатеринбург: там балом правят Яндекс и Контур, поэтому все местные ребята умеют в БЭМ, а местные вебстудии сидят на стеке Яндекса twitter.com/Windrushfarer/…

Я бы хотел завтра рассказать о своем взгляде на выбор технологий и инструментов, но пока можете начать накидывать в реплаи истории успешного использования не меинстримовых технологий/инструментов

Среда


Как и обещал, сегодня будет день о выборе технологий и инструментов. Давайте начнем с того, когда вообще приходится делать этот выбор и какие могут быть последствия ошибки? (спойлер: скорее всего необратимых последствий не будет).

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

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

С пользователями все понятно: нам нужны технологии, которые помогут реализовать отзывчивый интерфейс и выбить хотя бы 90/100 в Лайтхаусе. Тут нам иногда придется подумать об SSR, и хорошо бы об a11ly. Хотим выходить за пределы одного языка? Сразу учитываем i18n и l10n.

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

О чем еще стоит подумать? На сколько этот будет долго жить? Если это разовый спецпроект под какое-нибудь событие, то можно даже не подключать линтеры, писать на чистом js (если вам вдруг так удобно), смело пробовать новые подходы и технологии (ну, если сроки позволяют).

Если это потенциальный долгострой, то тут у нас 2 варианта: сделать MVP по схеме выше и после проверки гипотезы все переписать с нуля, или же подойти к вопросу основательно: выбрать типизируемый язык, настроить очень строгие линтеры, работать в CI/CD пайплайне с первого коммита.

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

С пользователями разобрались, что же важно для команды? Обычно это субъективные предпочтения касаемо языков и фреймворков. Правила для линтера и определенные подходы (с DI или без, например) тоже можно отнести в субъективную историю. Тут самое важное - понять хотелки команды.

Ну и добавить немного диктатуры, потому что демократия хороша для понимании всей картины, но чертовски сложна для принятия решения, можно пару месяцев правила для линтера выбирать. Берете наиболее близкий вам конфиг, модифицируете под 80% ожиданий команды и разбираетесь на ходу.

С пользователями разобрались, команду порадовали, а как теперь учесть интересы бизнеса? Бизнес любит когда быстро, бесплатно и масштабируемо. Как можно влиять на быстро и бесплатно плюс минус понятно, а что такое масштабируемость?

@jsunderhood Пример из опыта: решили писать проект на mithril.js потому что маленький бандл это хорошо. Спустя год выяснилось что бизнес хочет темную тему, a11y, больше компонентов, а наша маленькость бандла им вообще никак не нужна. Мораль: внимательнее изучать бизнес-требования
Уже подоспел хороший комментарий twitter.com/justboriss/sta… Ребята от бизнеса никогда не смогут вас сразу рассказать о том, что им надо. Почему мы сразу на сказали про темную тему? Так это же само собой разумеется, вон даже macOS из коробки такое умеет!

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

Планируется ли наращивать команду? Как активно планируется это делать? Выбор велосипедов или нишевых технологий может заметно влиять на найм, вам придется искать специалистов, которые готовы разбираться в продукте самостоятельно, ведь на SOC нет готовых решений проблем.

Многие кандидаты даже не будут читать вашу вакансию, если там нет заветных слов React, Angular, Vue, Svelte, а рекрутер из агентства не сможет смаппить вашу вакансию на резюме кандидата.

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

Момент о котором не все велосипедостроители задумываются, но про который спрашивают себя опытные кандидаты. А через 1-2-3-5-10 лет я буду нужен на рынке после работы в этой компании? Хорошо если речь только о фреймворке, а если в компании свой диалект JS?

2.У продукта видится потолок по части наращивания функционала? Если потенциал продукта хороший, то вскоре вам понадобится решать проблему тесноты репозитория для 100 разработчиков. А какие веселые деплои бывают, когда все команды пытаются затолкать фичи в прод до конца квартала!

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

А может бизнес сразу готов выкладывать результаты в опенсорс? Это дает преимущество для всех: разработчикам красивый гитхаб профиль и уважение, а бизнесу экономия на CI.

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

Что еще я не упомянул?

@jsunderhood Давайте быть честными, многие разработчики при выборе фреймворка или вообще не думают или думают только о своём удобстве.
Именно эту мысль я и хотел выразить, просто пытался сделать это аккуратно, а то звучит довольно обидно! twitter.com/SanichKotikov/…

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

Для начала надой пойти и спросить коллег, вдруг эта задача решена, а вы не в курсе? Совет выглядит слишком очевидно? Но почему-то этим шагом часто пренебрегают, а потом в проекте появляется 5 разных реализаций одной функции. Решения еще нет? Идем дальше.

Тут нам предстоит искать баланс между весом библиотеки, ее функциональностью и перспективностью (активность авторов на гитхабе, количество пользователей). Ну и еще на плече будет сидеть маленький дьявол и говорить "используй moment, всегда же так делал раньше!"

Функционал библиотеки можно оценить по документации, перспективность по гитхабу и частоте релизов, остался размер. Почему вообще размер библиотеки так важен для нас? ну подумаешь 10Кб или 100Кб. Но только вот на 20-й библиотеке это уже будет 200Кб или 2Мб. А 20 это не предел.

Как замерять размер? Могу порекомендовать вот этот ресурс bundlephobia.com и смотреть на MINIFIED размер, потому что нам библиотеку надо не только скачать, но еще распарсить и выполнить. Если вы поняли, что библиотека тяжеловата, то можете посмотреть на аналоги.
notion image

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

@jsunderhood Тут стоит учесть для какого сегмента проект. Если это кровавый энтерпрайз, а продукт планируется для внутреннего использования из-под интранета, то весом можно условно пренебречь. Был опыт, когда оптимизировали оптимизировали, а конечному потребителю достаточно было,чтоб работало
Этот момент я что-то упустил, да, если заказчик внутренний и у него нет выбора, то можно и понаглеть. Правда если у вас код приложения под 50-100Мб получается, то браузер может тупо начать крашиться. twitter.com/Elusive_Joe/st…

@jsunderhood Можно всегда иметь библиотеку на 2 Кб, но на 60 секунд в рантайме. И библиотеку на 40Кб, но на 100мс рантайма. Не при инициализации, конечно, а при вызовах функции и т.п. И часто рантайм важнее размера.
Хороший момент, который я почему-то опустил как само-собой разумеющийся. Но возможно я просто не натыкался на подобные комбинации компактности и плохого рантайма. А есть наглядные примеры? twitter.com/nikmostovoy/st…

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

Вот загорелись вы тем, что хотите писать например на Elm? И тут есть несколько вариантов после того, как вы соглашаетесь. Через полгода интерес пропадает, перегорание, разочарование. Ну ок, можно вернуться в предыдущий стек. (Ну или вообще уйти из программирования)

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

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

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

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

🔥Тред (Илья Таратухин)
pic.twitter.com/KKCqdMUUP5
Ну как-то так и может до 50мб приложение вырасти twitter.com/annyalimova/st…

Четверг


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

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

Когда ставку одобряют, я иду к рекрутерам и говорю: а помогите ка нанять человека, вот описание вакансии, хочу джуна/миддла/сеньера, вот эти навыки ключевые. И жду. Бонусом сам пощу вакансию, кидаю в тематические чаты, где обитаю, если там это считается приемлимым.

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

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

"Привет! Меня зовут Илья, и я хочу работать у вас, потому что мне нравится ваш продукт (даже купил подписку на 5 лет)! Я вдохновляюсь сложными задачами по фронту, но составления запросов в БД вгоняет меня в депрессию. >>

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

Хотел утолкать в один твит, по получилось на два. Лучше всего модифицировать сопроводительное письмо под конкретную позицию, тогда вы с большей вероятностью вызовите интерес у потенциального работодателя. Что отобразить в резюме? Проекты, над которыми вы работали раньше.

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

Бывают очень бодрые кандидаты и с ними довольно просто общаться, считаю что сам к таким отношусь. Но правда с такими кандидатами есть один нюанс, все собеседование ты пытаешься понять, не лапшу ли тебе на уши вешают, или он действительно на столько крут? Но это скорее исключения.

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

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

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

Спасибо за рассказ о твоем опыте, как ты смотришь на то, чтобы порешать пару технических задач? Нам важно увидеть твое рассуждение, чтобы понять на сколько глубоко ты успел погрузить в JS и CSS. Со многими вещами не сталкиваешься до возникновения определенных задач.

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

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

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

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

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

Что происходит после интервью? Если нет очевидного решения вроде "он крутой!" или "зеленоват для нашей вакансии", то мы стараемся сравнить с текущими сотрудниками или другими кандидатами. Если нет однозначного понимания, то мы приглашаем кандидата на лайвкодинг. Помним про стресс

Это история часа на два, когда кандидату предстоит решить более-менее серьезную задачу и рассказать ход мыслей интервьюверам. Раньше было принято давать тестовое, но оно многих отпугивает и кандидаты просто пропадают. И я их понимаю!

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

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

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

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

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

Вот мне HR Таня из Райка написала очень персонализированное письмо и мне сразу захотелось узнать, классно ли там работать! А то открываешь почту, а там "Компания из S&P 500 ищет программиста программировать", ну и сдерживаешься чтобы спамом не пометить (а многие и помечают).

Но ладно, у нас же канал про фронтенд. На что я буду смотреть, при выборе работодателя? У меня, как и у многих, есть ряд загонов на эту тему, но основных 2: в общем случае это не должен быть финтех и не должен быть аутсорс, но исключения возможны.

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

Почему не аутсорс? Я люблю, когда я на одной стороне с заказчиком, когда он всегда доступен и настроен на конструктивный диалог. Аутсорс это лотерея в этом плане, но если вы хотите быстро прокачаться, поднять денег или релоцироваться, то условный EPAM это вполне себе выбор!

С деятельностью компании разобрались, что дальше? В тематических чатах, где могут быть сотрудники этой компании, например SpbFrontend для Питера, можно спросить, есть ли кто из этой компании? Что нравится, что нет?

Какую информацию я жду от рекрутера? (Сейчас будет немного доковидный взгляд) Как компания относится к эпизодической удаленке, что они думают про мои ЗП ожидания, тусят ли сотрудники во внерабочее время. Все остальное можно уточнить на собеседовании.

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

Потом техническая часть и все как в тумане. Если это было собеседование на английском по скайпу, то все как в тумане еще на пару часов и голова вообще не варит.

Что я пытаюсь узнать о компании, когда мне дают право голоса? На сколько нормированный рабочий день, как выбираются технологии, правила для кодстайла. Как устроен процесс, много ли встреч. Есть ли возможность выбрать технику. Часто ли увольняются сотрудники? А по какой причине?

И тут часто могут слиться и сказать "нет, почти не увольняются". Когда в компании штат 300+ человек, то они точно увольняются с некоторой регулярностью! А ведь можно ответить "Бывает, вот Вася 5 лет проработал, но решил релоцироваться, ушел в Гугл техлидом". И ты такой сразу: мм!

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

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

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

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

🔥Тред (Илья Таратухин)

Пятница


@jsunderhood о как далёк ты от финтеха :) правильный финтех - это ежедневные релизы, гибкость и потрясающая скорость реакции и частота итераций, мгновенная концентрация всех ресурсов в одной точке при необходимости, море дофамина (правда не без кортизола), а люди - в шортах и майках
Я рад, если ошибаюсь! А это прям про серьезный финтех, а не про криптостартапы сейчас? twitter.com/zxovq/status/1…

Еще лет 5 назад, на собеседовании было принято узнавать: а кандидат развивается? Не стоит ли на месте? Поэтому часто встречался вопрос "откуда вы получаете знания?". Ну и все такие давай про банду четырех рассказывать и конференции, где были. Сейчас это актуально, или поменялось?

Для меня в определенный момент это тоже касалось очень важным, на всех IT-мероприятиях я старался обсуждать только профессиональные темы и рад был пообщаться с известными специалистами на условном Highload++. Но в какой-то момент новые знания перестали легко залетать в голову.

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

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

Но это про так называемое развитие вглубь, а что делать с кругозором? Как узнать, что вышел очередной перспективный фреймворк? Я пробовал подписываться на рассылку хабра, реддита, медиума итак далее, но по факту у меня на них нет времени (или если честно, то просто влом).

Зато я подписан на телеграм каналы, такие как Defront (t.me/defront) от Саши @myshov, Вебня (t.me/webnya) от Сережи @chicoxyzzy, и Веб-стандарты (t.me/webstandards_ru) от @pepelsbey и @dark_mefody.

Иногда читаю чаты @spb_frontend и @gopiterjs, но эта история больше полезна для новичков. Одним из самы эффективных оказывается чат с бывшими коллегами (некоторые и нынешние в общем то). Он совсем не про технологии, а больше покекать или посраться, но иногда узнаю прям стоящее.

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

В прошлом году поехал на @jsconfeu, но почти все доклады поделились на чтение документации со сцены и обсуждение различных проблем в сообществе. Но организация конечно была очень крутая и больше всего меня поразили ребята из @LiveJS_network.

У нас внутри 2 раза в год проводятся хакатоны. Очень люблю их за возможность попробовать новую технологию и разнообразить рабочую рутину. Довольно познавательно было поучаствовать в хакатоне с другой стороны: в прошлом году мы представляли кейс от ВК на @hackJunction в Хельсинки.

Меня удивил сам формат: нет жюри, команды делают peer review и вносят результаты в голосовалку, потом из финалистов победителей выбирают зрители. Кейс делали как команды из России, которые отлично знают что такое ВК, так и ребята со всего мира, что вообще про ВК не слышали.

И ты вроде приехал про свой кейс рассказать, но вот уже помогаешь разобраться как с нашим АПИ работать, а теперь ребята споткнулись об Реакт и ты им про setState рассказываешь. А потом тусишь на афтерпати в местной крафтовой пивоварне. В общем 10/10, рекомендую!

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

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

О, я же самую главную мысль забыл сформулировать! Если вас устраивает текущий уровень, ваша ЗП, задачи и работа она только для денег, то не гнаться за тем самым развитием, это тоже нормально!

🔥Тред (Илья Таратухин)

Суббота


Чем занимаетесь сегодня? Уверен, кто-то работает. Активно, или пассивно (это когда смотришь сериальчик, а сам думаешь как же ту багу побороть) это уже другой момент. Хочу сегодня поднять тему гигены труда и психического здоровья.

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

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

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

Мои наблюдения показывают, что чаще всего выгорают люди, которые искренне переживают за продукт: как со стороны привлекательности для пользователей, так и с точки зрения технической составляющей. Если вы привыкли делать какую-то работу с 9 утра до 18 вечера, то вы в безопасности.

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

Уже заволновались? Можно попробовать пройти вот этот тест psytests.org/boyko/burnout-…. Летом он показал мне довольно серьезную стадию выгорания, но кажется я просто психически стабильнее, чем средний фронтендер и мне это почти не мешает.

Что вообще делать для того, чтобы избежать выгорания? (Или хотя бы оттянуть этот момент.) Во-первых, не брать на себя слишком много ответственности. Чем больше дедлайнов висит на вас, тем ближе выгорание. Чем чаще при проблемах на проде в 3 часа ночи звонят именно вам, тем хуже.

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

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

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

Как этому научиться? Не знаю, возможно вам поможет терапевт. С мой стороны, я не один раз был виновником хештега #вкживи и видел, как на @tjournal появлялись новости с упоминанием моих косяков.

Что же еще может способствовать выгоранию? Токсичное окружение! Когда вам итак живется не сладко, а вокруг люди, что подчеркивают любые ваши косяки, говнят на работодателя и индустрию, то жить становится совсем не сладко.

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

Что еще важно? Сохранения режима труда и отдыха! Тут я регулярно делаю ошибки. Мне нравится концепция про мозготопливо, с помощью которой @cartmendum рассказывает об особенностях работы нашего мозга. Так вот, экономьте ваше мозготопливо и вовремя прекращайте работать.

Чем больше мы перерабатываем, тем хуже работаем и эта штука имеет накопительный эффект. В России переработки иногда считаются нормой. Слышал, что в штатах в этом плане еще жесче. Так что если не можете ничего с собой поделать, то можете рассмотреть Западную Европу и Скандинавию.

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

Англия где-то по-середине и очень сильно зависит от того, где находится головной офис компании и кто у руля. Про страны бывшего СССР ничего не скажу, но подозреваю что ситуация от РФ не сильно ощущается. Подозреваю, что большинство читателей, как и я, живут в РФ, что нам делать?

Государство не просто так дало нам 28 дней отпуска и вагон праздников. Многие коллеги из США могут позавидовать нам! Есть правда нюанс, наши отпускные дни могут быть записаны на выходные, когда мы берем длинный отпуск, а по ТК РФ надо брать один непрерывный отпуск от 14 дней.

Тут я конечно же порицаю @ru_epam, потому что их система не позволяет взять отпуск так, чтобы из 28 8 дней не попало на выходные. И говорю огромное спасибо @mailru, что я могу распоряжаться своими отпускными днями так, как хочу.

Что же делать со всем этим счастьем? Лучший выбор - максимально сменить остановку и уехать подальше, но и на дачу тоже подойдет (времена сейчас особенные). Рабочие чаты лучше не смотреть, да и вообще в телефон не залипать.

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

Вообще, радикально переключать фокус помогает и в рамках обычной рабочей неделе. Допустим у вас 2 раза в неделю скалодром в 19 вечера. Это отличный повод вовремя закончить работу и переключиться. На самом деле, скалодром может легко заменить хоть книжный клуб.

Чем больше ваше хобби отличается от работы, тем полезнее для вашего психического здоровья. А физическая активность полезна и для здоровья обычного.

🔥Тред (Илья Таратухин)

Воскресенье


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

Я люблю ходить в кино и залипать в сериалы. Для меня это история эпизодическая (иногда накатывает и не могу оторваться от сериала, а иногда могу и за месяц ни одного фильма не посмотреть).

Как-то в ожидании выхода "Мстители Финал", мы решили пересмотреть все фильмы и сериалы вселенной. История конечно на любителя, но я люблю крупные вселенные в фильмах, сериалах и видеоиграх.

Кстати о видеоиграх. Этим я тоже грешу, сейчас играю на PC, PS4 и Nintendo Switch. Не ожидал, что Switch так плотно войдет в мою жизнь, но это действительно удобный формат консоли с отличными играми.

Очень люблю читать! Это у меня с детства, причем сейчас я одновременно читаю "Плоский мир" Пратчетта и фентезийные серии от не очень известных авторов на сайтах для самиздата. С книгами у меня как с фильмами и я вечно бросаюсь из крайности в крайность фильмы/книги/видеоигры.

Летом я люблю кататься на велосипеде. Причем не люблю это делать в одиночестве и стараюсь это делать в компании единомышленников. Но это были все, что доступно всем. Чем же интересным я занимаю свободное время?

Зимой это горные лыжи. Вид спорта, который доступен не в каждом регионе и в Санкт-Петербурге с ним довольно печально. Приходится брать отпуск и ехать кататься. Обычно это либо Шерегеш, который можно совместить с посещение родственников в Новосибирске, либо 2 долины во Франции.

Очень люблю путешествовать, особенно автопутешествия. Возможно эту любовь мне привили родители, в 2002-м мы ездили на машине из Новосибирска в Сочи, было оч круто!

Пока денег у меня было не много, но была машина, я путешествовал по Сибирским городам, когда доход стал позволять — перешел на путешествия по Европе на арендованных машинах. Разница в комфорте конечно колоссальная.

Но в любом случае это очень круто прочищает мозги и дает кучу впечатлений (и контента). Если окончательно поеду кукухой, то куплю бус, переделаю под кемпер (хочется конечно VW California, но денег жалко) и отправлюсь в длительное автопутешествие.

Ну и завершить хочу относительно новым для меня увлечением, про которое можно пошутить что это только для тех, кто зарабатывает 300К/сек, но на самом деле это относительно доступный вид досуга. Речь о яхтинге.

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

К лицензии прилагается довольно тяжелая зависимость от нового увлечения. Причем тут есть несколько форматов и яхтинг вполне может стать летним хобби, если в вашем городе есть парусные тренировки. Знаю, что с этим точно все хорошо в Москве и Санкт-Петербурге, спасибо "Силе Ветра".

Помимо выходов с парусом на пару часов можно выбрать еще два варианта провести время на яхте. Первый это тот самый, который обычно рисует воображение при слове "яхта". Перемещаться между живописными гаванями, купаться и пить Апероль-Шпритц.

Но есть еще один не самый очевидный. Можно поучаствовать в недельной регате, коих проходит достаточно и принять участие может каждый, для этого даже особых навыков иметь не надо. Главное — найти команду и опытного капитана со спортивным прошлым (и возможно настоящим).

Это буря эмоций, спортивный азарт и множество тем для обсуждения с командой, а у ж каким вкусным вечером кажется Эфес! В общем, 2 недели на яхте помогли мне неплохо привести голову в порядок, передохнуть от работы и соц сетей, в телефон заглядывать не было никакого желания.

Так что, если я таки решу поехать кукухой, то у меня появился второй вариант: купить яхту, основательно подготовить ее и отправиться в кругосветку.

🔥Тред (Илья Таратухин)
Неделя подходит к концу, спасибо вам за нее! Надеюсь, что не создал впечатление пьяного бати со своими байками, а так же что вам был интересно читать не про технологии, а про подход.

Ссылки