Надежность: качество релизов

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

Пусть у вас в эксплуатации находится сложная и развестстая система сервисов, обеспечивающих функционирование вашего продукта. Даже если ее не трогать (вообще убрать руки с клавиатуры) она долго не протянет. Но мы же постоянно норовим нанести пользы и причинить добро. А потому катаем разного рода релизы по 50+ раз в неделю (это не преувеличение, это количество релизов только бекендов Еды за прошлую неделю).

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

Например, сделать в ci-пайплайне автоматическое нагрузочное тестирование микросервиса в изолированном load-окружении перед каждой выкладкой. Если ваш сервис поработает хотя бы 10-15 минут под полной нагрузкой, у вас будут шансы увидеть намного больше, чем при функциональном тестировании - обычные тесты не смогут спровоцировать корки (сегфолты), утечки или проезды по памяти. Вы сможете убедиться, что утилизация ресурсов и тайминги ответов не ухудшаются vs прошлый релиз. Что вы нигде не наворотили с алгоритмической сложностью, сделав вложенный цикл или выбрав неудачную структуру данных. Да, внедрение требует усилий. Да, нужно поддерживать патроны (запросы) в актуальном и релевантном состоянии. Да, отсутствие проблем в релизе это не гарантирует. Но это хорошая солома, которую лучше подстелить.

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

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

Ну и понятная, но не очень простая в реализации вещь - кататься лучше маленькими кусочками. Чтобы не было принципа "одно лечим - другое калечим". Разбиение приложения на модули, уход от монолитов (не только на беке - с фронтами та же история), сокращение импакта изменений, изоляция блоков - залог более крепкого сна после выкладки. Различные bdui-подходы этому тоже помогают. Впрочем, тема bdui намного шире, про нее стоит как-нибудь поразгонять отдельно.
498 просмотров · 8 реакций Открыть в Telegram · Открыть пост на сайте
Mercedes-Benz Panamera WRX

Что общего у Mercedes-Benz W124, Porsche Panamera и Subaru Impreza WRX? Во-первых, они все классные. А во-вторых, про них меня попросили рассказать подробнее в комментах к посту про мой автопуть

Mercedes-Benz W124. Легенда и живая классика. Эстетика 90-х, притягивающая взгляды ценителей и не только. Автомобиль с душой и характером, комфортный и благородный. В нем чувствуется какая-то внутренняя интеллигентность, а на ходу она больше напоминает небольшой дорогой катер. В конце концов, получаешь удовольствие от самого факта обладания ей. В ней качественные материалы, монументальная тяжесть и фишечки, которых не ожидаешь от 90-х (например, ИК-ключ или автоподача ремня).

Мой экземпляр был 1995 года, купе-хардтоп, в состоянии "булочка" (не "музей", но вид имеет). Притом я за ней ездил в Питер - именно там нашелся интересный вариант. Были сомнения, доеду ли я на ней до Москвы, поэтому в дорогу были запасены: все жидкости, набор инструментов, вэдэшка, скотч, стяжки, насос и многое другое. Однако, ничего не пригодилось. И в последствии машина показала себя надежным агрегатом, хотя внимания и требовала. Впрочем, как и другие мерседесы - сначала довозила до пункта назначения (в отличие, например, от Эскалейда, который меня трижды подвел в самые неподходящие моменты - если хотите эти кул-стори, пишите в комменты). Главное - избегайте моторов на каеджетронике.

Porsche Panamera. Тоже катер, даже более премиальный, но еще и быстроходный. Редкий компромисс между комфортом и драйвом. С одной стороны, это пятиметровая баржа на пневме с потрясным качеством салона и материалов. Реальный премиум, на голову выше большой немецкой тройки. С другой - это все-таки Порше, и 400-сильный V8 отлично сочетается с отточенным шасси. Машина управляется превосходно (по меркам двухтонного бегемотика) и дает много удовольствия за рулем.

Мой экземпляр 2012 года был куплен полтора года назад меньше, чем за 3 миллиона рублей - на мой взгяд, очень неплохое вложение. Даже на пробеге чуть за 100 тысяч, состояние прекрасное, машина имеет лютый запас прочности. Хотя обслуживание недешево - за год тысяч 200 она вполне может просить. Главное - не берите из-под горячих ребят, которые на них ураганят и плохо обслуживают. Лучше воспользоваться подбором и обязательно проверять движок с эндоскопом - они склонны к задирам.

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

Мой экземпляр был 2001 года - так называемый, "лупатый". Естественно, синий. Разумеется, на золотых дисках (правда, только летних). Первым делом поменял лавку на высокую от sti (да еще и с распорками в духе wrc). Вторым - сделал подсветку под днищем в духе форсажа и need for speed. Непременно поставил blow-off. Выря вполне хватает, сти - даже перебор. Увы, машина пала в неравной борбе с бетонной стеной развязки ТТК в условиях гололедицы, поворота, уклона, обратного бенкинга и хреновой липучки.
415 просмотров · 8 реакций Открыть в Telegram · Открыть пост на сайте
Трудности перевода

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

Я все чаще встречаю в разных местах фразы типа "запустили каталог готовых промтов", "self-service аналитика с конкретными промтами", "поделились промтами", "отладили промты и стало хорошо" и так далее.

Это что же получается, та самая штука, которая должна понимать нас с нашей естественной речью, для которой не нужно обладать специфичными знаниями, и которая чуть ли не мысли читает - она на самом деле нормально (корректно) работает только с выверенным до запятой запросом? А если сформулировать мысль хоть чуточку иначе - выдает фигню и галлюцинирует? Как так то?)

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

Ну как переход от ассемблера к сям ("ого, можно самому не мувать регистры!") или от сей к го/джаве ("ого, можно не выделять и не освобождать память!"), так и тут - "ого, можно не писать руками for, офигеть".

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

В общем, магии снова не случилось. Никакого вайба.
568 просмотров · 23 реакций Открыть в Telegram · Открыть пост на сайте
Стратегия надежности (3/3)

Проекты, задачи, процессы:

Качество релизов:
- автоматические стрельбы по сервисам тира А в ci-пайплайне при каждой сборке (поможет отловить снижение производительности из-за неаккуратных изменений в коде, корки и утечки, снижение капасити, повышение таймингов)
- регулярное нагрузочное тестирование в продакшне танком (читающие сценарии) и виртуальными заказами (цикл заказа) (поможет контролировать капасити системы в целом в реальных условиях)
- автоматизация тестирования, близкая к 80% (снижает человеческий фактор, повышает полноту регресса)
- модуляризация, флексизация (bdui-механика), микрофронты (позволят кататься меньшими кусочками и не ломать смежную функциональность)

Предотвращение инцидентов из-за потенциально известных проблем:
- снижаем SLA на блокирующие action-item-ы к инцидентам (позволит снизить вероятность рецидива)
- держим SLA по дьюти (обращения пользователей и коллег) first-touch&full-resolve и ZBP blockers (ибо любой дьютик или багрепорт - потенциальный предвестник инцидента)
- регулярные учения -дц (помогает находить валенки на пульте в тепличных условиях)
- автоскейлер (помогает автомагически держать нужное капасити для cpu-bound сервисов с быстрым стартом)
- помогаем партнерам быть стабильнее (детали - <censored>)

Снижение зависимостей:
- <тут было несколько пунктов про вынос из некоторых сервисов той функциональности, которая нужна на разных этапах пользовательского пути, чтобы меньше компонент упирались в один сервис, предоставляющий нужные всем данные>
- регулярно проводим учения хаосом в проде для сервисов тира Б (поможет найти неочевидные зависимости)

Улучшаем реагирование:
- повышаем alerts uptime (чтобы не было слепоты к алертам)
- держим тримап (инструмент визуализации алертов) зеленым (также для снижения слепоты)
- автопротоколы там, где их еще нет (+эскалация)
- растим обзервабилити клиентских ошибок (детали - <censored>)

Ускоряем купирование:
- автооткат в случае проблем, как минимум для престейбла (ускоряет откат проблемного релиза, снижает человеческий фактор)
- проводим учения по восстановлению сервиса (поможет отработать навыки координации и траблшутинга для дежурных)
- ускоряем старт сервисов, которые поднимаются слишком долго (позволит быстрее откатываться и докидываться)
- инструкции на случай типовых поломок - фолбеки, способы митигации (поможет быстрее найти нужный рубильник)
- возможно, попробуем AI для определения руткоза и/или способов купирования

Снижаем импакт:
- тыквы (продуктовые фолбеки и деградации вида "хорошая мина при плохой игре")
- наведем порядок в дизастерах и авто-деградациях (сейчас там есть точки роста)
- мета-конфиги для быстрого включения дизастер-режимов в различных системах (автоматизация синхронного включения режимов деградации в разных частях системы)
- точность биллинга (детали - <censored>)
478 просмотров · 5 реакций Открыть в Telegram · Открыть пост на сайте
Стратегия надежности (2/3)

Манифест:

Как гласит девиз МЧС, "Предупреждение, спасение, помощь".
Так и с надежностью - инциденты нужно предотвращать, купировать и выносить из них уроки.

Цель.
- 99.95% в заказах по атласу (внутренняя система детекта аномалий). 99.99% rps-uptime по сервисам tier A (сервисы, влияющие на цикл заказа).
- Соответствие тира критичности и тира надежности сервисов по модели 9999 (внутренняя классификация тиров надежности и требования к ним).
- Фокус на спасение заказов на более поздних стадиях, когда в случае потери будут большие инсентивы (сопутствующие потери на компенсации).

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

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

Помощь.
Достичь успеха можно только направленными совместными усилиями команды.
Важно, чтобы команды друг другу в этом помогали. Платформа - продукту. Продукт - платформе. Взаимозависимые команды - друг другу.
455 просмотров · 1 реакций Открыть в Telegram · Открыть пост на сайте
Стратегия надежности (1/3)

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

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

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

Кстати, если вы классно умеете делать такие штуки, го к нам! https://yandex.ru/jobs/services/eda или пишите в предложку (или личку @jkennedy)
Доверьте работу профессионалам

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

В закулисье Формулы-1 я разбираюсь чуть хуже, чем в медицине (Drive to survive я посмотрел только 5 сезонов против 8 в House M.D.), но все же докопаться было особо не до чего. А участие реальных действующих лиц из Ф1 в фильме и вовсе считаю прекрасным режиссерским ходом.

А знаете, почему им это удалось? Потому что со-продюсером фильма выступил Льюис Хэмилтон, 7-кратный чемпион Ф1. Доверьте работу профессионалам!

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

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

Главное - не давайте бекендерам делать UI/UX, даже для админки ;)

Это я к чему? T-shape - это хорошо. Fullstack - уже, обычно, не так хорошо. Некомпетентность - совсем плохо. Используйте свои сильные стороны, чтобы нанести пользу, даже за пределами своего основного проекта. А там, где вам не хватает хардов - не всегда получится залить все софтами, призовите на помощь более компетентного спеца.
462 просмотров · 19 реакций Открыть в Telegram · Открыть пост на сайте
Распределенный бог

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

Через это объясняется и отсутствие монокаузальности в наших действиях. Вот стоишь ты на кухне, занеся газету над мухой, в желании ее прихлопнуть. Кто виновен в неизбежной смерти насекомого? Ты, который не любит мух? Почтальон, принесший газету? Издание, выпустившее номер? А может, сама муха, залетевшая не в то окно? Ты с газетой в руке - это режущая кромка истории, а меч судьбы целиком так огромен, что никому его не увидеть. Это весь космос. Нет единопричинности, есть конъюнктура момента.

Та же философия применима к понятию счастья. Мы все хотим быть счастливы. Если разобрать эту интенцию до конца, мы желаем вот чего: чтобы нам немедленно стало хорошо. Другого счастья не бывает, потому что не бывает другого момента времени. Но как ни старайся, невозможно гарантированно приехать в точку под называнием "счастье" в результате лишь собственных усилий. Хотя бы потому, что в каждом нашем миге участвует весь остальной мир. А мы над ним не властны.

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

Свобода - тоже в принятии. Прими все, что происходит в эту секунду с тобой - ибо это и есть воля божья (того самого, распределенного). Как только ты сделаешь так и расслабишься, ты поймешь, что здесь и скрыта единственная доступная человеку свобода. Почему свободу называют "волей"? Да потому, что свобода и есть полное принятие воли бога/вселенной/космоса как своей. Любое несогласие в этой волей карается немедленно и жестоко, и кара заключается в ощущении, что ты несвободен и несчастен. Не-счастье всегда сделано из борьбы за то, чтобы текущая секунда была какой-то другой. Не такой, как есть. Просто позволь происходящему происходить. Оно будет происходить и без твоего позволения.

И, на всякий случай, отмечу, что это все не про достижение какого-либо результата (в работе, карьере, личной жизни). Там мотивация и механика совершенно иная. Это лишь о своем мироощущении на пути к цели. Если ты все делаешь правильно, и провидение вселенной тебе благоволит - у тебя все получится. А страдать по пути - ну такое.

(Инспирировано (и частично процитировано) произведениями В. Пелевина)
511 просмотров · 20 реакций Открыть в Telegram · Открыть пост на сайте
Автопуть

Меня все же попросили рассказать, каков был мой путь в автомобилях. Что ж, погнали!
- Первой у меня была Nissan Almera 2004. Полторашка, механика - для первой самое то. Очень приятная машинка в своем сегменте.
- Потом захотелось чего-то нового, прям из салона. Так появилась Skoda Octavia 2012 1.8. Хороший агрегат, по сей день служит моему другу.
- А я пересел на новую Audi Q5 2014 дизель, потому что потянуло на премиум. Это идеальный автомобиль, на ней моя жена ездила аж до 2023.
- Жена училась водить, купил ей Mazda 2 2009 1.3 MT. Пока доучивалась, я катался сам. Веселая малышка, даже на MRW погоняла.
- Мне ауди наскучила, отдал ее жене, сам пересел на BMW 325 2006 на N52B25. Поселился в автосервисе, подружился с эвакуаторщиком.
- Надоело жить на сервисе, поменял на Toyota Camry 2006 3.5. Очень надежно и очень комфортно. Но очень скучно. Слишком скучно.
- Чтобы было весело, взял Subaru Impreza WRX 2001. Как положено, синюю, на золотистых дисках. Высокая лавка, подсветка днища. Разбил(
- После субарика снова захотелось в комфорт. И теперь - по-серьезному. Mercedes S-klasse 2001 - вышка. Ломался, но сначала довозил.
- Допом к мерсу взял турбовый Mitsubishi Eclipse 1999, как в форсаже и NFS. Угарнул по автозвуку. Но автомат все портил.
- Во время пандемии продал мерс и эклипс, а потом познал америку - Cadillac Escalade 2010. Но он меня трижды подвел, за что был продан.
- Познаем мир дальше - Infiniti FX37s 2010 в красивом бронзовом цвете. Стильно, быстро, но управляемость и колейность - мама дорогая!
- Увлекся дрифтом, взял Lexus IS 1999 (aka toyota altezza) и оторвался по полной - свап на 4л UZ и мкпп, полный обвес как у Дамира - лють!
- Комфорта не хватало, докупил Lexus LS460L 2008. Оказывается, мерс S-класса не такой уж крутой) LS просто восхитителен. И надежен.
- Потянуло на янгтаймеры, докупил Mercedes W124 1995 купе в отличном сохране. Чистый кайф и уважение на районе гарантированы.
- В 2022 делал ремонт, денег не хватило, пришлось продать Теззу, LS и 124(( Пересел на ВАЗ 2109. Лучше, чем на метро. Больше плюсов нет.
- Доделал ремонт, купил Toyota Cresta 1989. У самурая нет цели, есть только дырявый выхлоп и просевшие пружины. Но JDM в сердечке.
- JDM intencifies - взял кей-кар Honda N-box 2017. Угарная вещица, всем рекомендую. Но по трассе больше 110 ехать не хочет - мотор-то 0.6л.
- Чтобы ездить на дачу, докупил Toyota Celica 2000. Типично дачная тачка, да? Зато веселая, 200 сил на механике, едет бодро! А потом...
- Жене разбили ауди, пришлось продать селику, чтобы купить Mercedes A-klasse 2018. Сам тоже немало на ней катался. Но жене не зашла.
- И тут вылетает объява - Chrysler New-Yorker 1989. Бордовый, на бордовом велюре, слепые фары. Как не взять? Но нюансов у ровесницы - ой.
- Возвращаемся к премиуму - Porsche Panamera 4S 2012. Меньше, чем за 3 мульта, ты получаешь и скорость, и роскошь - очень нравится.
- Но подростковые гештальты сами себя не закроют. Mercedes G500 2003. Разумеется, переодетый под 63рест. Тачка ужасна, но это феномен.
- О, кабрика же еще не было. Mazda MX-5 2019. Про нее уже писал выше, в посте про покатушки на трек-дне MRW. Она прекрасна.
Продолжение следует...

Здесь я супер-коротко что-то обозначил про каждую машину, но если вы хотите про какую-то из них подробнее - пишите в комменты)
А чуть подробней про некоторые, про свое отношение к авто, и почему у мужчины в моменте должно быть 3 тачки, я рассказывал в подкасте.
570 просмотров · 34 реакций Открыть в Telegram · Открыть пост на сайте
Бизнес-план

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

У свежего ремонта, в котором никто не жил, очевидно будут "детские болячки". Только пожив несколько месяцев, их можно выявить и устранить.

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

И я должен за это еще и больше платить? Ну уж дудки. Предлагаю иначе - это вы (арендодатель) мне платите, чтобы я пожил у вас в свежем ремонте и обкатал его. А когда квартира будет готова к заселению живого человека - с него и берите деньги. Ладно, у меня, на самом деле, своя квартира есть. Но идею готов подарить читателю. А то ишь, повадились драть деньги за сырой продукт.
502 просмотров · 13 реакций Открыть в Telegram · Открыть пост на сайте
Зирвак как платформа надежности

Готовил в субботу плов на мангале, и вот что подумал. Знаете, что общего у плова и хорошего продукта? Платформа.

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

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

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

Без моркови плов - не плов. Без метрик/мониторингов/алертов/графиков продукт - не продукт. Просто не надо таким заниматься.

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

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

С рисом все в целом понятно. Тут можно звать продактов и пилить фичи.

Охапка дров - продукт готов!
478 просмотров · 36 реакций Открыть в Telegram · Открыть пост на сайте
О дипломированных специалистах

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

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

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

В-третьих, опыт. Если у вас в универе есть какие-то проекты, или, тем более, вы помимо пар делаете что-то полезное на кафедре, этот опыт полезен. Умение запускать и доводить до ума какие-то проекты, даже учебные, в плюс. Опыт работы в команде (иногда в учебных проектах бывает и такое) - тоже в плюс. Просто факт, что вы немного потрогали разные темы и технологии, поможет вам в дальнейшем. Например, я в универе в рамках одного из курсов писал простенькую игрушку на Qt. Спустя несколько лет мне нужно было принимать решение о выборе технологии, и я уже знал некоторые плюсы и минусы Qt, что изрядно помогло.

Можно ли получить все это без академического образования? Конечно, можно. Самообучение и реальный опыт могут заменить ВУЗ в каком-то объеме. Я даже знаю некоторых CTO без корочки (и очень даже крутых!). Но мое мнение - чтобы все это заменить, нужно быть либо очень талантливым, либо очень упорным и дисциплинированным. В массе - все же профильное образование является сильным подспорьем на старте карьеры.

А те, кто вкатывается в IT без универа, зато после курсов "С++ за 21 день" и всерьез думают, что они моментально стали супер-айтишниками - ну удачи, чё. С наскоку тут успеха не добиться. Хотя с этими вашими вайб-кодингами и курсорами теперь накодить что-то, с пяти метров выглядящее работоспособным, может любой гуманитарий. Правда, такая фигня получится... Но об этом я уже размышлял на заре этого канала.
534 просмотров · 30 реакций Открыть в Telegram · Открыть пост на сайте
И снова про алгоритмы

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

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

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

И закончим трудностями адаптации визуала к сложным данным. Например, вы пробовали в календаре отрисовать 5 частично пересекающихся встреч так, чтобы это оставалось читаемым? Или, скажем, задача визуализации графов с топологической сортировкой («А вызывает Б, значит А должно быть левее Б») и динамическим добавлением новых вершин так, чтобы пересечений линий было поменьше.

А вы спрашиваете, зачем алгосы на собеседованиях на фронтов. Не важно, какой путь выбрали вы - перекладывать жсоны или красить кнопки, алгосы ftw! Пишите в комментарии, как вы на фронтах применяете алгоритмы и структуры данных!
488 просмотров · 10 реакций Открыть в Telegram · Открыть пост на сайте
О пользе караоке

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

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

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

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

Отдельно отмечу, что многие могут себе позволить петь, только изрядно набравшись. Не будем рассуждать о вреде алкоголя, это и так всем понятно. Так вот хорошая тренировка - это с каждым разом начинать петь под все меньшей мухой, чтобы в итоге начать без стыда и зазрения петь трезвым. Попробуйте! (Авторский метод Сергея Г., ему тут респект и лавры.) Кстати, ровно этим мы занимались на бизнес-тренинге на прошлой неделе всей большой командой. Дарю вам бесплатную идею для старта корпоратива. Главное - делать это с очень серьезным лицом.
498 просмотров · 22 реакций Открыть в Telegram · Открыть пост на сайте
NaN. В предыдущих сериях.

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

Кстати, если вам заходит то, что я пишу, будьте добры - поделитесь каналом с друзьями/знакомыми/коллегами.
Только так канал будет расти и развиваться, а я ценю релевантную и читающую аудиторию (потому не прибегаю ко всяким мутным схемам накрутки подписчиков).
Заранее спасибо, люблю вас!

Важный дисклеймер (есть в закрепе)

Рабочее:
5. Олды тут?
12. Надежность
15. C++
19.1. Коммуникации (1/2)
19.2. Коммуникации (2/2)
22. Чеклист здорового тимлида
24. Один день из жизни разработчика
28. Об алгоритмах на собеседованиях.
32. iOS и его друзья
35. Вредные советы для стажеров.

Про ИИ:
2. Минус-вайб
3. Нас всех заменят?
4. Промт-инженеры.
7. Будущее ИИ

Про тачки:
6. Вне работы
14. Про китайский автопром
17. Электрички
25.1. Японцы делают вещи (1/2)
25.2. Японцы делают вещи (2/2)
33. В поисках траектории.

Ворчанье:
0. Вместо вступления
8. Офис
9. Не-офис
23. Этот мир чертовски ускорился
26. О времена, о нравы!
29. Курьеры бывшими не бывают.
31. О разнообразии видов.

Мотивационное:
10. Стресс
21. Как влиять на будущее*?
34. Монополия

Философское:
1. Колонка
11. Есть ли у программы душа?
20. Нас обманывали?
27. Верите ли вы в зеленых человечков?
30. Старый друг лучше новых двух?

Про путешествия:
13. Смена декораций
16. О пользе отпуска
18. Кыргызстан

Ну а подкаст лежит ТУТ
699 просмотров · 22 реакций Открыть в Telegram · Открыть пост на сайте
35. Вредные советы для стажеров.

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

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

2. Ни в коем случае не спрашивай про ожидания от тебя в целом, и уж тем более - про образ результата по задаче, которую тебе дали. Иначе руководство подумает, что ты вообще ничего не понимаешь, и зря тебя взяли на стажировку.
(А на самом деле, как говорится, "без четкого ТЗ результат - ХЗ". Проговорить скоуп обязанностей и ожидаемую степень самостоятельности - это гигиенический минимум. Иначе можно закопаться в том месте, где подразумевалась помощь ментора)

3. Если задача кажется тебе слишком сложной - молчи, иначе подумают, что ты безнадежен. Если задача кажется тебе слишком простой - тем более! Иначе нагрузят еще пачкой, лучше потяни ее недельку, как будто так и надо.
(А на самом деле, не стесняйся делиться фидбеком по задачам - что заходит лучше, где застреваешь. Это поможет ментору адаптировать задачи под твой ритм. Так ты быстрее вкатишься и раскроешь свой потенциал)

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

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

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

7. Не обсуждай личное. На работе есть место только работе. Веди себя как робот. Тем более, что руководитель ведет себя так же.
(А на самом деле, в любой команде главное - это люди. Мы не роботы, нам не чуждо ничто человеческое. Стоит сразу вливаться в коллектив, знакомиться с ребятами, обрастать полезными связями).

И помни, что стажировка очень коротка. В случае успеха, уже через 3 месяца ты станешь штатным сотрудником, от которого мы ожидаем проактивности, самостоятельности, нацеленности на результат. Нужно уметь работать в условиях умеренной неопределенности. Умение коммуницировать с коллегами для достижения результата - тоже навык, который надо качать. Четкий план "делай раз, делай два" бывает не всегда, нужно уметь добыть необходимую информацию, а при необходимости - переобуться в воздухе. И всему этому лучше начинать учиться с первых дней стажировки. Тогда, при должном усердии и мотивированности, все получится.
542 просмотров · 21 реакций Открыть в Telegram · Открыть пост на сайте
34. Монополия

Если вы думаете, что, став монополистом, можно расслабиться - как бы не так. Даже если вы доминируете в своем сегменте рынка, вы должны расти. Остановившись, вы проиграете (ну если полный коммунизм еще не наступил). А как расти, если вы уже №1? У кого отбирать долю? Очевидно, у непрямых конкурентов. То есть у тех, с кем вас даже особо не сравнивают, когда выбирают продукт.

Гугл (в мире) конкурирует не с другими поисковиками, а с привычками людей, чтобы быть top of mind не только в задачах поиска. Газпром конкурирует не с другими газовыми компаниями, а с фондовыми рынками. Яндекс Такси конкурирует с общественным транспортом. Яндекс еда - с привычкой готовить дома (впрочем, Еда и так не монополист, так как своя доставка ресторанов и магазинов занимает большую долю рынка).

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

К чему я все это? Эти строки для утреннего поста я пишу из вагона ночного поезда Москва - Санкт-Петербург, который в моей голове в этот раз (и примерно впервые) выиграл в конкуренции с самолетами. В том числе, благодаря УТП в виде гранд-империал-люкс-купе с собственным туалетом и душем (ну не могу я с поезда приехать на работу без душа и с немытой головой). Оказывается, бывает и такое. Отдельный прикол в том, что это как раз не РЖД, а частный поезд, но и у РЖД такие люксы, вроде бы, теперь появились. Но пойнт к том, что тут не РЖД конкурирует с Гранд Экспрессом, и не Аэрофлот с S7, а ж/д с авиа.

И казалось бы, что тут могло поменяться за последние пару десятков лет? А оно меняется, хотя в своих сегментах есть очевидные лидеры. Ж/д делают новые вагоны, не сильно уступающие в комфорте отелям. Аэрофлот запустил шаттл (рейсы строго раз в полчаса с упрощенным изменением рейса в пределах дня). Спрос рождает конкуренцию. А конкуренция - двигатель прогресса. Не останавливайте развитие, даже если кажется, что свой кусок пирога вы уже отъели. А чтобы расти с высокой базы, нужны экстра-усилия и драматическое расширение сферы влияния.
444 просмотров · 14 реакций Открыть в Telegram · Открыть пост на сайте
33. В поисках траектории.

- "Вам сколько сессий?" - спросила девушка за стойкой. Я немного помялся, а потом выпалил - "Три!". Я не был уверен, что я выдержу три сессии, все же год не катался. Я не был уверен, что машина выдержит три сессии, ибо сток, и на треке я ее еще не проверял. Но чувство, что половина сезона уже бездарно потеряна, жгло и подгоняло.

"До начала следующего заезда 5 минут" - раздался голос из громкоговорителей. Машины послушно выстроились на пит-лейне. Я огляделся - заряженные порше, прокатные эмки, невнятные хот-хэтчи, и даже прототип. Черт, вот это пелетон. Оно и понятно - трек-дней в этом году мало, поэтому воскресным вечером сюда стянулись петролхэды всех мастей, от овощей типа меня до серьезных гонщиков. Будет потно. Главное - успевать замечать в зеркалах прототип и не лезть под него, иначе - ой!

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

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

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

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

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

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

К концу третьей сессии сил не остается ни у меня, ни у машины. Но Миата показала себя превосходно, я перегрелся раньше. Такой рулежки и контроля я на кузовных машинах еще не испытывал (самое близкое - shortcut 527, он великолепен). Истинное единение кожаного мешка и тонны железа в поисках границы дозволенного, и чуть за пределами законов физики. Аригато годзаимас, Мазда-сан! До встречи на разгоне!
503 просмотров · 35 реакций Открыть в Telegram · Открыть пост на сайте
32. iOS и его друзья

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

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

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

Так чем же iPhone/iOS лучше андроида? Да примерно всем, да простят меня красноглазые друзья с рутом и непорезанным NFC.

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

Во-вторых, вниманием к деталям. Тот самый look&feel, который и сам Apple превносит в каждое действие со своей продукцией, и разработчикам приложений под ios транслирует как немаловажную ценность. Из недавнего - то, как в свежей версии "прогибается" граница экрана при нажатии на кнопку включения - ну это же чистый восторг, хотя мелочь уровня "зачем тратить время на такую ерунду". Но из такой ерунды складывается опыт пользователя.

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

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

А я пару раз, задумавшись о собственной объективности и поддавшись на аргументы вида "да ты что, андроид уже не тот, что был в 2010", пробовал слезть с яблочной иглы и пересаживался на андроид, и каждый раз довольно быстро возвращался в уютный мир скевоморфных пони и look&feel-единорогов, ворча о том, насколько все через одно место сделано в этом вашем ведроиде. Так что стоим на своем и с нетерпением ждем очередную смену радиуса кривизны углов на будущем айфоне (или чем там они отличаются от предыдущих).
700 просмотров · 18 реакций Открыть в Telegram · Открыть пост на сайте
31. О разнообразии видов.

А помните времена, когда сотовые были разные? На всякий случай переведу для зумеров: сотовыми раньше называли мобилки, а слова смартфон почти никто не знал (и чаще их называли "коммуникаторы"). Когда было много производителей (nokia, siemens, alcatel, panasonic, ericsson, другие). Когда было много форм-факторов (раскладушки, слайдеры, роторы, qwerty-клавиатуры). Когда все пытались выделиться необычной трубкой. Когда дизайн телефона был чем-то важным (опустим тот момент, что половина пользователей скрывала его кожаным чехлом на молнии, если вы вообще можете себе такое представить).

А сейчас что? Безликие черные кирпичики и гонка за количеством гигабайт, гигагерц и количеством камер (уже даже не мегапикселями). Пара жалких попыток flip/fold от самсунга. Уныние да и только. Я сочувствую нынешним продавцам сотовых, потому что работа у них стала безумно скучная. Может, кстати, поэтому сейчас почти не осталось салонов сотовой связи - все, что не ушло в интернет-магазины, ушло в крупные магазины бытовой техники или салоны операторов. А я знаю, о чем говорю, потому что сам торговал сотовыми в переходе.

Да, до Яндекса я был продавцом-консультантом в салоне сотовой связи. Сначала в вестибюле станции метро Текстильщики, потом - у метро Люблино. Как так получилось? Как обычно, почти случайно. В нулевые, когда многообразие телефонов было на пике, я изрядно увлекался этой темой. Я шарил в безграничных модельных рядах трубок, интересовался новинками, каждый месяц бежал за свежим каталогом Связного (помните такое?). На первом курсе, когда у меня случалось окно в парах, я шел в МедиаМаркт в Рамстор Капитолий и долго бродил между рядами, разглядывая витринные образцы. Так как зимой было жарко ходить в куртке, я ее скидывал в локер. А человека в футболке, бесцельно бродящего по рядам, частенько принимали за консультанта и просили помочь с выбором. Я поначалу отказывался, объясняя истинное положение дел. Потом от скуки перестал отказываться и начал консультировать людей. А потом задумался, почему мне за это не платят?

Так я попал в Беталинк. Была такая сеть салонов сотовой связи. Бета мне очень нравилась своей философией. В отличие от, например, Евросети, где главная ценность была "впарить неликвид, а потом еще и чехольчик к нему!", в Бете нас учили исходить из потребностей покупателя и продавать ему ровно то, что ему на самом деле нужно, чтобы он потом к нам вернулся. Думаю, потому Беталинк и разорился, не пережив кризис 2008 года. В Бете серьезно подходили к обучению сотрудников, притом не только по хардам, но и по софтам - у нас были курсы по НЛП, нас учили быстро разбираться в людях, находить индивидуальный подход (нам было запрещено подходить к людям с фразой "вам чем-то помочь?" - мы должны были подобрать уникальную фразу, чтобы покупатель обратил на нас внимание, а не просто привычно отмахнулся). Кстати, эти навыки в дальнейшем пригодились и в Яндексе, особенно на пути к позиции руководителя.

На выпускном экзамене нас проверяли так, чтобы мы могли ответить даже на самый каверзный вопрос клиента. Например, был вопрос, на который правильно ответил только 1 человек из группы (конечно же, я). Предположим, клиент имеет тариф мобильного интернета (gprs, уже не wap!) 10 центов за 100Кб (да, цены были в долларах). И вот он едет в метро и сидит с телефона в ICQ (тогда это было в диковинку, но уже случалось). И вот за поездку он вроде насидел буквально на 50Кб, в списали почему-то 50 центов (как будто он насидел на 500Кб!). Почему так случилось? Разгадку я напишу в комментарии завтра утром, но первый, кто в комментах правильно ответит, получит от меня сердечко в реакции!

Ну а дальше - в универе прошел семестр по С++, и я понял, что пора искать работу по специальности. И (как обычно, почти случайно) попал в Яндекс. Конечно же, с небольшим понижением в деньгам, потому что в Бете я был уже мидлом, а в Яндекс пришел стажером. Но, вроде, не прогадал. Об этом как-нибудь в другой раз.
503 просмотров · 4 реакций Открыть в Telegram · Открыть пост на сайте
30. Старый друг лучше новых двух?

Как и любой дед, я достаточно консервативен. Однако, периодически специально стараюсь себя переломить и попробовать что-то новое. Съездить в новое место, попробовать новое блюдо, пообщаться с новыми людьми - без проблем.

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

Потому что там я "дома". Знакомые бармены, знакомые specialities, полное доверие бармену при заказе "удиви меня" (это вообще иногда смертельный номер). Даже надпись на спине формы бармена родная ;). Хотя вот недавно добрался до нового заведения perfect bars team - Ruc's Heaven. Что ж, годно, но ребятам еще надо немного наладить все. Зато они могут удивить сидровым вермутом собственного приготовления.

Позволю себе выразить рекомендасьон самым любимым и проверенным местам:
- Цветочки (ул. Некрасова) - потрясающие вариации на гимлет - "Довлатов", "Шисо-гимлет", "гороховый гимлет";
- Полторы комнаты (ул. Маяковского) - лучшая дымная "Кровавая Мэри" на диком западе;
- Джин-тоник (Литейный х Невский) - лучший выбор джинов, но лучше избегать вечеров пятницы и субботы - будет громкая музыка;
- Ой бар (Ломоносова) - специализируются на dry martini и устрицах;
- Ultramen (наб. Фонтанки) - шикарный рамен и колоритные коктейли.

Ну и раз уж начали, и про еду тоже:
- Smoke BBQ (ул. Рубинштейна) - тот самый брискет!
- United Butchers (ул. Восстания) - роскошные стейки;
- Trappist (ул. Радищева) - вафли и бельгийское пиво;
- Chuck (ул. Гороховая) - стейки и ребра;
- Holy Ribs (ул. Жуковского) - ребра и стейки ;)

Отдельной строкой будет чебурешная У Ларисы - зайти туда по пути из бара в отель уже стало нерушимой традицией!

Не готов утверждать, что могу составить конкуренцию авторитетному Ultima Guide от Яндекс Еды, это лишь мой личный топ.
А чтобы вам было удобней сохранить эту памятку себе, собрал для вас коллекцию "Куда сходить" в Яндекс Еде -
https://eda.yandex.ru/user-collection?id=1b15ca98-3542-4755-8822-31e130f45242

А какие у вас любимые места в Питере?

Не является рекламой. Чрезмерное употребление алкоголя вредит вашему здоровью.
731 просмотров · 25 реакций Открыть в Telegram · Открыть пост на сайте
29. Курьеры бывшими не бывают.

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

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

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

Зато для курьеров Еды мы расстарались на славу. И глушение gps уже почти не мешает корректному определению положения, и indoor-навигацию по ТЦ запустили, и маршруты строятся с учетом способа передвижения (включая велосипеды/самокаты). Да что уж там, мы ведь даже свой велосипед создали (не в том смысле, что еще один фреймворк или БД, а натурально - электровелосипед для курьеров). Потому что от этого зависит эффективность логистики, а это важно для бизнеса и для самих курьеров.

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

Поэтому я люблю наши выходы "в поля". Мы периодически командами разработки, продукта, операций устраиваем догфудинг - идем на день покурьерить, чтобы прочувствовать на своей шкуре все нюансы работы нашего сервиса от лица курьеров. И каждый раз приносим оттуда тьму идей, что еще можно улучшить или починить. Кстати, давно что-то не ходили, да и на байке мне пока не довелось покататься. Надо бы запланировать.
540 просмотров · 34 реакций Открыть в Telegram · Открыть пост на сайте
28. Об алгоритмах на собеседованиях.

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

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

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

В-третьих, есть косвенная польза в проверке мотивированности кандидатов. Если человек для попадания в Яндекс не готов потратить недельку-другую на литкод - может, он не так уж сильно к нам хочет? А мне бы хотелось, чтобы к нам шли решительные и мотивированные кандидаты с горящими глазами. Подход "я уже достаточно крутой, берите меня какой я есть" может сказаться и в дальнейшей работе, когда окажется, что сотрудник не готов прилагать усилия для достижения целей, потому что "он уже достаточно крутой", и просто придя к нам работать как бы сделал нам одолжение. Тут я, в первую очередь, говорю о стажерах, джунах и мидлах, с сеньорами ситуация чуть другая (ну и большинство из них может нормально пройти алгоритмическую секцию без особой подготовки).

Ну и в-четвертых, это все миф и враки. Мы уже давно ушли от, признаться, скверного подхода нескольких однотипных алгоритмических секций, оставив таковой лишь одну. А остальные секции собеседований проверяют исключительно прикладные навыки - работу с ООП, многопоточкой, тестируемостью кода, архитектуру и system design, опыт работы со сложными техническими проектами, cultural fit, знание релевантных платформ и умение использовать это знание для достижения целей.

Это я все к чему - если вы давно хотели работать в Яндексе, но боялись завалить алгосы, стоит все же попробовать. Немного усилий - и все получится! Го к нам - https://yandex.ru/jobs/services/eda или пишите в предложку или личку @jkennedy
1 038 просмотров · 25 реакций Открыть в Telegram · Открыть пост на сайте
27. Верите ли вы в зеленых человечков?

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

Что я имею в виду: во вселенной запросто могут оказаться принципиально другие формы жизни или разума. Кто вообще сказал, что инопланетное существо должно быть существом в привычном нам понимании? Это у нас жизнь - это форма существования белковых тел. А "там" - может, это вообще волна? Или заряд. Или какое-то неведомое нам метафизическое явление, у которого нет ручек, ножек, огромных глаз и приплюснутого черепа - вообще нет тела как физического вместилища жизни/разума.

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

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

Вариантов масса, и я очень сомневаюсь, что мы с инопланетянами совпадем по достаточному количеству факторов, чтобы взаимодействие (или хотя бы обнаружение) было возможно. Да, мы не одни. Но рассчитывать, что к нам прилетят зеленые человечки на летающей тарелке и расскажут нам, как жить дальше - я бы не стал. Будем полагаться на себя.
639 просмотров · 16 реакций Открыть в Telegram · Открыть пост на сайте
26. О времена, о нравы!

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

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

Вот на каких догмах нас растили? "Я - последняя буква в алфавите". "Надо - значит, надо". "Делу - время, потехе - час". "Наша цель - коммунизм". Интересы общества ставились выше личных, в цене были люди скромные, но результативные. Многие дети 80-х и ранее были несколько "недолюбленные" (я, к счастью, на это пожаловаться не могу), потому что родителям приходилось пахать на трех работах, а дома ждали стирка (руками), уборка (без робота-пылесоса), готовка (на кухне коммуналки). Времени и сил заниматься воспитанием детей попросту не было. Функцию воспитания ценностей в детях брали на себя различные государственные органы - пионерское движение, школы, комсомол и так далее. А государству всегда нужны послушные и скромные работяги.

А нынешняя молодежь росла с несколько иным восприятием своего "Я", которое больше напоминает англоязычное "I" (пишется и ощущается с большой буквы). Им важно быть в комфорте и гармонии с собой. Они не готовы поступаться своими требованиями (например, к условиям труда) ради общего блага. Они считают, что по праву рождения заслужили безусловное счастье, а весь мир им должен лишь потому, что они классные. Вчерашний стажер хочет зарплату в 300, потому что он нам нужнее, чем мы ему (что не совсем всегда так). Пороть их надо!

Так откуда это у них взялось? Ну кроме очевидных отличий сытых нулевых от голодных 80-90-х. Все просто - мы сами им это вдолбили в головы. Мы сами им все детство рассказывали, какие они замечательные, и почему они достойны лучшего (справедливости ради, мне в детстве тоже задавали такие же положительные установки, но оно как-то правильней сработало). Родители зумеров уже имели возможность читать книжки по детской психологии и пытаться разобраться, как нынче модно воспитывать детей.

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

Поэтому я своего сына стараюсь воспитывать чуть иначе. Я делаю упор на идее, что для достижения успеха нужен большой и упорный труд, даже если иногда я могу казаться слишком строгим. Он оочень способный (и вообще потрясающий), но самодисциплину и привычку к усердию нужно вырабатывать с детства. С джунами я напрямую уже давно не работаю, но им такой мессадж тоже не помешал бы. Вот в наше время нужно было из кожи вон лезть, чтобы доказать свою состоятельность. А сейчас не все считают "зеленую" оценку на перформанс ревью хорошей. Бейзлайн у вас сбился, господа! Но о ревью - как-нибудь в другой раз. А пока - respect your elders!
586 просмотров · 22 реакций Открыть в Telegram · Открыть пост на сайте
25.2. Японцы делают вещи (2/2)

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

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

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

Однако, на озере Кель-Суу даже Секвойя спасовала бы, поэтому мы пару десятков километров преодолели на лошадях. Я до поездки надеялся, что у них там есть подготовленные УАЗики для заброски, и даже обсуждал выбор между лошадями и УАЗиком. Встреченный аргумент "да ну, УАЗик трясется и воняет" на поверку оказался несостоятельным - оказывается, лошадям эти проблемы свойственны как минимум в той же степени. Только лошади оказались еще и не самым быстрым транспортом, в добавок лишенным крыши и печки (sic!). В общем, верховая езда - не мое, а лошидиные силы я предпочитаю в исполнении ДВС. Как говорится, "больше, нафиг, никогда".

В итоге, мы за неделю проехали 2200км, из которых лишь примерно половину - по асфальту. Ёлка показала себя превосходно, но тут никто и не сомневался - это же божественная Тойота. А мораль такова - я на 100% уверен, что современные машины, особенно, прости господи, китайские, не выдержали бы одной лишь нашей поездки, они бы просто развалились на части, а ёлку, у которой в этом прокате мы явно не первые, по итогу надо было просто помыть и чуть перетряхнуть сайлентблоки. Японцы делают вещи!
441 просмотров · 23 реакций Открыть в Telegram · Открыть пост на сайте
25.1. Японцы делают вещи (1/2)

Как уже выше писал, я провел позапрошлую неделю в отпуске, путешествуя по Кыргызстану. Организовывал всю поездку сам, и перемещался по стране тоже сам. Разумеется, на тачке. Без машины там делать нечего (впрочем, я все равно везде беру машины, потому что только авто дает тебе максимальную свободу в выборе марштура, графика, темпа).

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

Свой выбор я остановил на Toyota Sequoia второго поколения, благо в Кыргызстане это довольно распространенный автомобиль. Расскажу вам немного про эту ёлку и то, куда она нас завезла.

Достался нам чудный экземпляр 2008 года с пробегом 383 тысячи километров. "Ага, обкатку прошла" - подумал я. Машина оказалась почти полностью исправна - не работала только понижайка. Полный привод и блокировка межколесного диффа работали, кондей работал, что еще нужно?

Кстати об энерговооруженности. Пару раз выручал важнейший принцип джиперства: едешь на минимальном инвентаре, а уже когда застрял - подрубаешь что-то типа понижайки или блокировок. Потому что если у тебя уже включен весь арсенал, и ты застрял, больше включать нечего. В итоге 95% ехал просто на заднем приводе. Полный потребовался раз 5. Блокировка межосевого диффа - 2 раза. Сзади у ёлки самоблок. Понижайка не пригодилась, и хорошо, ибо она была неисправна)

Однако, на высоте чувствовалось, насколько машине тяжело. На перевалах выше 3500 метров над уровнем моря (а мы добирались и до 4000) кислорода в воздухе явственно недостаточно для нормальной работы атмосферного двигателя. Турбо/компрессор хоть могут нагнать побольше давления воздуха, а атмо откровенно сдувается. Благо, для 5.7 V8 сдуться вполовину - это все еще около 200 сил, чего хватало, чтобы вскарабкаться в гору.

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

Зато ходовка - просто песня. Шарашить по грунтовкам стабильные 70-80 мало кому дано. Был один грейдер, позволяющий ехать и 90-100. Подвеска секвойи, похоже, тоже исповедует принцип "больше скорость - меньше ям", перелетая их по касательной. Но надо внимательно смотреть за более глубокими ямами и распрыгом - иначе удар, отбой, больно.

У меня даже на четвертый день появился четкий признак качества дороги. Если на 75 км/ч телефон периодически отрывает от magsafe-крепления, значит дорога хреновая. Пока держится - валим 75 км/ч)

И по жиже прет превосходно, несмотря на довольно потрепанную АТ-шную резину (all terrain). Было лишь одно место, где я пожалел. что машина не на МТ (mud terrain). И еще одно, где нас по жиже чуть не стащило на край обрыва из-за поперечного наклона дороги. В целом, для полностью стоковой машины - проходимость впечатляющая.
381 просмотров · 21 реакций Открыть в Telegram · Открыть пост на сайте
24. Один день из жизни разработчика

Пару дней назад меня для будущего деврельно-брендового мероприятия попросили описать 1 день из жизни разработчика в нашей команде. Что ж, раз написал - пусть и тут полежит)

9:30 Доброе утро, герой! Ты пришел на работу. Чуть раньше, чем обычно, потому что сначала надо сходить в офисный спортзал - зарядиться энергией на день.

10:00 Вот ты налил кофе (есть еще какаоварка, но это - на полдник!), сел на стул Herman Miller, открыл новенький макбук на м4 и начал с медитации на метрики. Потому что если на метриках непорядок - план на день нуждается в корректировке. Но все ок, алерты не вспыхивали (а им можно доверять), можно до дейлика посмотреть пару пулл-реквестов парней.

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

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

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

14:00 О, а уже обедать скоро. Не беда, сейчас все закажем, притом с оплатой по бейджику и доставкой на рабочий стол. В столовую всей толпой ходили вчера, сегодня - день курочки из Кентукки.

15:00 Вернемся к фиче. Правда, к этому моменту выясняется, что концепция поменялась - нужно срочно браться за другую задачу. Что ж, потребности бизнеса превыше всего. Переобуваемся, фигачим новую задачу.

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

18:00 Охапка дров - PR готов! Отправляешь на код-ревью своему лидеру компетенций, потому что решение получилось несколько спорное, пусть рассудит самый экспертный парень на деревне. Внутри команды тоже глянут, но тут нужно второе мнение. Останется только тыкнуть в ci/cd, дальше все само собой случится.

18:05 А пока надо забежать на "3 амиго" - обсуждаем с продактом и тестировщиком следующую фичу, ведь ты будешь ее техлидить. Штормим корнер-кейсы, прикидываем какие тесты можно автоматизировать теми или иными методами из пирамиды тестирования. Снапшотными тестами тут не отделаться, придется попыхтеть над интеграционными, иначе точно где-то ошибемся.

18:30 Близится вечер. Ты прикидываешь, что завтра надо бы запланировать техничку - пришла пора порефачить тот модуль, в котором уже черт ногу сломит. Техноквота - это святое, забивать нельзя. Да и у самого руки чешутся - кому захочется работать в таком коде? Хоть ты сам же его и написал годом раньше. Сразу и начнем.

19:15 Пожалуй, на сегодня хватит. Ты размышляешь, поехать ли домой, или пойти с ребятами поиграть на бильярде на третьем этаже. А может, запереться на полночи в переговорке и рубиться в коднеймс до хрипоты - каждому свое.

19:30 Ты доволен собой - дежурных тикетов на тебе не осталось, фичу толкнул, метрики в порядке, алерты зеленые. А рядом - любимые коллеги травят байки за чашкой чая. Но завтра будет еще круче - ведь завтра синк гильдии, и можно будет пофантазировать о светлом будущем, набросить на вентилятор, обменяться мнениями о новом фреймворке техплатформы. А в пятницу на ретро выскажу все, что накипело, а на разборе инцидентов надо не забыть спросить у девопсов, как откатываться еще быстрее. Движ!
453 просмотров · 21 реакций Открыть в Telegram · Открыть пост на сайте
23. Этот мир чертовски ускорился

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

На работе. Все постоянно пытаются все успеть. Встречи по 15-25 минут подряд, десятки задач в день, сотня переключений контекста - подумать некогда. Найти в календаре непрерывные пару часов, чтобы над чем-то вдумчиво поработать, почти нереально - все приходится делать урывками и кусочками. Дедлайны, коммитменты, гринлайты. На все нужен one-pager, больше информации не все готовы воспринимать. Все бегут - и мы бежим. Такова конъюнктура момента.

Клиповое мышление. Всем подавай быстрый и динамичный контент. Все смотрят рилсы и шортсы, потому что внимания на >1 минуты уже не хватает. Или ритм жизни такой, что свободного часа подряд не найти. Хотя это и в моем поколении уже проявляется - пересматривал несколько лет назал советского Шерлока Холмса с Ливановым и Соломиным и понял, что он слишком медленный для меня - все эти долгие планы и мхатовские паузы смотрятся нелепо ("ну, ну, и что дальше было? давай скорее!").

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

В коммуникациях. Почту перестали читать (соответственно, и писать). Блоги уступили место микроблогам. Чаты - микрочатам (?). Small-talk-и - tiny-talk-ам (вместо обсуждений погоды уже чаще происходит диалог в духе "че как?" - [кивок]). Тот же elevator pitch появился во многом из-за того, что больше свободного времени ни у кого нет.

Даже в автомобильном мире. Раньше 280 сил считалось дофига, а разгон из 7 секунд - пушка. Сейчас же 1000 сил перестают удивлять (хотя эти электрические силы во всяких сусевенах какие-то неправильные), а быстрым считается разгон за 3с. Ну куда вам столько? Я все еще считаю, что лучше та машина, которая при разгоне до 80 дает ведро адреналина, чем та, где веселье начинается далеко за пределами ПДД.

Раньше. Было. Лучше. Давайте хотя бы иногда наслаждаться моментом.
424 просмотров · 28 реакций Открыть в Telegram · Открыть пост на сайте
22. Чеклист здорового тимлида

Наткнулся на шпаргалку, которую ровно год назад закидывал в свои команды. Некоторые пункты характерны для конкретного момента и этапа развития сервиса/команды в этот момент, но некоторые - вечны. Это короткий свод характеристик так называемого Technical Excellence, он не претендует на 100% полноту и не затрагивает организационные/продуктовые/бизнесовые требования (и не является полной team maturity model). Буду рад, если кому-то оно окажется полезным.

---

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

- наша команда практикует подход "3 амиго" перед началом работы над новой фичей
- наша команда пишет автотесты на новые фичи (может, не на все ТК, но значимо)
- в моей зоне ответственности нет неразобранных тикетов СИБ, а критичные чинятся сразу же
- на нашей доске задач полный порядок - все задачи актуальны, статусы корректны, задачи не висят в одном статусе неделями
- мы следим за TTM на регулярных встречах с продуктом и прикладываем усилия по доталкиванию эпиков, прежде чем начинать новые
- SLA на full resolve по дьютикам (обращения пользователей, партнеров, коллег) выполняется для 80+% тикетов
- у нас нет открытых дьютиков старше 2 недель
- количество задач на разработку из дьютиков не растет, а снижается или флэт на комфортном уровне
- мы работаем по ZBP - решение о фиксе принимается в пределах недели, баги чинятся за месяц (хотя бы 80+%)
- у нас нет просроченных экшн-айтемов по инцидентам и нет неразобранных инцидентов старше недели
- на тримапе (визуализация алертов) мои квадратики никогда не горят просто так, а если один и горит, то не больше пары дней
- утилизация всех ресурсов моих сервисов в зеленой зоне (включая БД и балансеры)
- все реально критичные алерты приходят в чат дизастерс (в идеале - еще автопротоколы), и на них настроена телефонная эскалация
- у нас сходятся спринты
- у наших сервисов нет постоянного паразитного фона 5хх или несемантических 4хх

Зона опциональных факторов, наличие которых дает плюсик в карму:
- тайминги наших ручек/экранов устойчиво снижаюся
- у нас есть регулярное автоматическое нагрузочное тестирование
- в нашем стриме баг-ликадж 12% или ниже, мы всей командой способствуем снижению пропуска багов
- мы заехали в варден (инструмент обзервабилити надежности) и получили девяточный тир надежности А (не путать с тиром критичности)
- ребята в команде осваивают T-shape скиллы
- у нас в логах мало ошибок, а те что есть - по делу
- нам прилетает мало алертов, а те что есть - по делу
- мы перешли на 1-недельные спринты и нам по кайфу
- мы написали документацию по контрибуторству в наши сервисы и наладили процесс иннер-сорса

---

За этот год мы отказались от некоторых критериев (например, от метрики баг-ликаджа, так как на маленьких абсолютах она стала шуметь), автоматизировали контроль за другими (например, настроили алертинг на деградацию таймингов), добавили новые требования к системе (более четкие SLO на availability по тирам критичности, оцифрованный alerts uptime, стали более плотно трекать прогресс по автоматизации тестирования). Но в целом - культура Technical Excellence только усиливается.

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

P.S. Если вы хотите работать в такой инженерной культуре - го к нам! https://yandex.ru/jobs/services/eda или пишите в предложку или личку @jkennedy
879 просмотров · 13 реакций Открыть в Telegram · Открыть пост на сайте