Ворчливый IT-дед
1.23K subscribers
283 photos
2 videos
1 file
66 links
Авторская колонка, в которой ворчит Дмитрий Александров (руководитель подразделения разработки в Яндекс Лавке).

По вопросам рекламы ... можете даже не писать, а то развели тут свою коммерцию, честным людям высказаться негде, все завалили рекламой
Download Telegram
Bar raising

Еще один тип секций, который я начинаю проводить - это Senior Bar Raiser. Отличительная особенность таких секций - я не общаюсь с кандидатом. Задача SBR - вдумчиво отревювить все остальные секции и вынести свой авторитетный вердикт.

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

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

Приведу несколько примеров ред-флагов, которые может усмотреть бар-рейзер в анамнезе кандидата:
- джоб-хоппинг (частая смена мест работы, на каждом месте <~1 года)
- в прошлом году кандидат уже собеседовался и прошел все секции крайне слабо, а в этом - очень хорошо -> подозрительно
- человек уже трижды проходил цикл собесов и стабильно валит какой-то вид секций (например, архитектуру)
- в коде секций остались ошибки, не замеченные интервьювером (не то чтобы я всегда перепроверяю код, но по многим задачам вижу сходу)
- задачи решены в упрощенной формулировке или неоптимально (например, не-инлайн в задачах, где интересно проверить работу с памятью, строками, итераторами)
- даны слишком простые задачи, а вердикт необоснованно высокий, а также прочие огрехи выставления вердикта вроде ложной импликации
- переоценка сложности/значимости проектов из опыта (кандидат очень уж красиво продал что-то несущественное, а интервьювер купился)
- неумение внятно объяснять свое решение (будь то решение текущей задачи на секции с кодом, или выбор технологии в разговоре про опыт)
- расхождения опыта и навыков (например, по резюме писал на с++ последние 10 лет, а на кодовой секции плавает в синтаксисе, объясняя тем, что давно на плюсах не писал)
- множественные упоминания различных интервьюверов о нечитаемости кода, либо его неоптимальности, либо неумении отдебажить - в целом любой некритичный огрех, повторенный трижды на различных секциях - это уже тревожный сигнал
- сквозящяя через все секции поверхностность, хаотичность, неуверенность, непоследовательность, сумбурность
- расхождения опыта, секций и профиля поиска (например, опыт на шарпах, нанимаем на плюсы, а секции проходил на питоне - вот как по ним судить?)
- скорость роста и перспективы (если кандидат с 15-летним опытом едва тянет на мидла - есть сомнения, что он дорастет до сеньора)
- недостаточность сигналов (например, вообще никак не проверяли архитектуру у сеньора)
И многое другое.

В целом, ни один из них обычно не является поводом для отказа. Но если их собирается штук 5, это точно повод нехило задуматься.
А мы продолжаем повышать объективность и прозрачность процесса собеседования. И если прошлый пост про TDD не убедил вас попробовать свои силы, вот вам еще один знак. А вакансии, по-прежнему, тут.
🔥10🤡95🤮4
Golang

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

Первое осознанное знакомство с этой штукой у меня случилось в 2016. Мы подумали, а что мы все пишем на плюсах, да на плюсах, давайте что-то еще посмотрим. Выбирал между голангом и растом. Посмотрел примеры hello world на обоих языках и решил, что раст слишком многословный, почти как джава. Гошка подкупила лаконичностью. Прошел за пару часов туториал, немного почитал, потренировался на кошках, и взялся писать свой первый продакшен-сервис на го. Почти весь сервис написал в самолете по пути в командировку, за 4 часа. На следующий день был уже в продакшне.

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

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

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

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

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

Зато для тех, кто уже связал свою жизнь с гошкой или планирует это сделать, 1 ноября в 13:00 в нашем офисе и онлайн пройдет Яндекс Субботник по go. Залетайте! В уютной атмосфере обсудим всё, что волнует Go-сообщество: от свежих релизов и инструментов до архитектурных решений и производительности сервисов.
🔥6👍421
Накопилось много постов и много новых подписчиков (добро пожаловать!), посему - Дайджест.
А я, тем временем, на пару недель пропаду в поисках вдохновения и нового контента для вас.

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

Предыдущий дайджест

Некоторые новости:
Привет, Лавка

Разработческое:
Архитектурное ревью
Надежность: предотвращение инцидентов из-за потенциально известных проблем
Надежность: реагирование
big tech night
Надежность: импакт
Пирамида потребностей вашего сервиса
Кто такие аналитики?
Про олимпиадное программирование
Golang

Менеджерское:
Игра с ненулевой суммой
Лидеры компетенций
Why so serious?
Воспитатели воспитателей

Про найм:
Буткемп, или как не толкаться локтями при найме
Найм зумеров в эпоху вайб-кодинга
Technical Deep-Dive
Bar raising

Автомобильное:
Зато на гарантии
Продам Mazda MX-5
Новый виток истории

#лёха_строит_бэху
Новая глава
Первый пункт плана
Ужин при свечах
"Ква", или почему не горят стопы

Путешествия:
Превозмогаем
Кабардино-Балкария
Традиция
tech tour городских сервисов Яндекса

Ворчание:
Энциклопедические знания
55.973146, 37.414863: Как починить "перебрасывание" геопозиции в iOS без регистрации и смс
Все, что нужно знать о поиске через чатгпт
Больше пикселей!

И отдельным пунктом пост с самым крутым текстом в истории этого канала, потому что его писал профессиональный писатель:
Back to USSR - интро от меня и авторский текст Кати
🔥96👍31
Со звуком "дзынь"

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

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

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

Так вот у е30, как миниум в моем экземпляре, был не-классный. Сразу возникло желание его поменять. И раз уж менять, то на что-то классное. Попался мне на глаза momo super grand prix - олдовый спортивный руль с деревянным ободом и перворированными спицами. Просто нравится. Значит - ставим.

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

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

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

П.С. Лайфхак: когда снимаете руль, гайку надо откручивать не до конца, а оставить ее на паре витков, чтобы когда вы таки сдернете руль со шлицов, он не отлетел по инерции вам в лоб - дергать там надо прям сильно.
🔥124🆒4
Highload++ 2025

На прошлой неделе в Москве прошла конфа Highload++. И я там был, кофе-кейтеринг пил, по усам текло... А, не, не то.
Прошло, на мой взгляд, хорошо. Организация на площадке - отличная. Подготовка - на уровне. Аудитория - супер. ПК и волонтеры - лапочки.

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

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

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

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

А вообще, выступать на конференциях - это классно. Спикер прокачивает навыки, аудитория получает контент. Даже если вам кажется, что ваш контент очевиден и не нов - всегда найдутся те, кому это было полезно. Главное, при подготовке доклада - почаще задумывайтесь над вопросом "а что слушатель может забрать с собой и как применить у себя", чтобы доклад не превращался в выставку достижений народного хозяйства в духе "смотрите, как я могу".
22👍11🔥1🙏1
Привет. Есть вопрос.
Hope this email finds you before
I do.
.
.
Короче, к сути.
Еще какая-то незначимая строка и норм.
<И вот тут уже суть вопроса>


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

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

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

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

П.П.С. Если что, фраза "Hope this email finds you before I do" - это случайная несерьезная гритинг-фраза, являющаяся шутливо-угрожающей аллюзией на классическую фразу делового имейл-этикета "Hope this email finds you well".
1254
Скрепы, православие, духовность...

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

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

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

Мои любимые примеры:
Nikian tyres -> Ikon tyres (производитель шин)
Vianor -> Ivanor (сеть шинных магазинов)
Nesquik -> Хрутка (тут я вообще выпал)
KFC снова носит имя Ростислава
Кокошник на логотипе Старс кофе у экс-русалки старбакса

А какие русифицирующие переименования позабавили вас? Добавляйте примеры в комментарии.
😁54
"Знал бы прикуп - жил бы в Сочи"

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

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

Строго говоря, люблю я не Сочи, а Сириус и Розу. Сам Сочи/Адлер все же имеет некоторый характерный колорит, который мне не близок. Вот и сейчас в конце октября провел 10 дней в Сириусе. Тут классный офис - тихий, размеренный. Классные кафешки - в 2019 мы даже дали кодовое имя "сулугуни" проекту, который тут запускали. Классная погода - в Москве уже противненько, а тут всегда приятно. Классная природа - море, горы, водопады и даже чайные плантации.

Вот мой топ мест, достойных внимания (точно многое забыл, но сходу так):

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

Развлечения:
- Сочи Парк (серьезно, не хуже диснейлендов-юниверсалов!)
- галереи старого краснополянского шоссе (нужно брать квадрики/багги)
- санаторий им Орджоникидзе (не знаю, как сейчас, а раньше надо было лезть через забор и убегать от охраны)
- поющие фонтаны в олимпийском парке (я к такому равнодушен, но ребенок в восторге, и они круче дубайских)

Поесть:
- ЛаТерраса (тот самый жареный сулугуни)
- Яблоки печем (колоритно)
- Fish bone (вкусно и не особо дорого)
- Техникум (Роза), Клёво (Сириус) - хоть и московские сети, там хорошо.

Отели:
- Сочи Парк Отель (хорошая инфра на территории)
- Brevis apartments (если все же в старом Сочи - топовый вид с верхних этажей)
- Mio apartments (очень приличные квартирки недорого)

А у вас какие рекоммендации по местам в Сочи?

И, конечно, всегда нужно брать авто в прокат. Мне уже много лет приходит на помощь легковушка-рф. Не реклама, правда классные ребята с супер-гуманным прайсом и человечным отношением к клиенту. У них автопарк по большей части состоит из старых недорогих тачек, но теплых-ламповых. Я успел у них покататься на Lada Largus, Hyundai H1, Chevrolet Uplander, Ford Explorer, Toyota Camry Solara кабриолет, Cadillac CTS, Opel Astra кабриолет и Renault Fluence.

В общем, съездите на недельку в Сочи, там кайфово.
23🔥8👍2
Этот ваш хваленый ИИ ничего не может

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

Мы тут с Лёхой думаем над внешкой нашей бэхи - то ли менять цвет, то ли оставить как есть, но добавить цветные акценты.

Попросил дать мне картинку конкретной модели авто в конкретном цвете. Рисует не тот цвет. Прошу поправить - отвечает "я не могу создавать изображения, зато могу помочь составить промт в другую нейронку". Что, блин? Это точно самая умная и универсальная модель? Вы можете себе представить в 00-х, чтобы поисковик на запрос "купить пластиковые окна в москве" вам отвечал "я такое искать не умею, но вот вам запрос покруче, дуйте с ним в другой поисковик - "+окна пвх|пластиковые +купить где:москва""?

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

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

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

П.С. Сегодня рубрику #лёха_строит_бэху пропускаем, так как не хватило времени позаниматься бэхой на этих выходных. В субботу был в командировке, а в воскресенье отмечали Лёхин ДР с семьей (кстати, ему стукнуло 8, можете поздравить в комментах, я передам).
🎉21😁6👍21🤯1💩111
Питон

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

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

А тут кто-то рассказал, что py3 с async-await и, соответственно, aiohttp на uvloop, в целом, в состоянии держать приличные нагрузки. Что ж, пришлось пробовать. Снова из соображений "а что это у нас все плюсы да плюсы", мы засучили рукава и за несколько дней создали сервис, названный котопсом. Кажется, вдвоем с Сашей. Думаю, он работает и по сей день (котопёс, не Саша. Хотя, Саша тоже работает).

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

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

Осенью какого-то там года (2018 или около того) я свалился с орви или гриппом. Лежу с температурой, сплю. Звонок - мониторинг. Еще звонок - коллеги. Спрашивают, а где котопес? В смысле где, в продакшне. А нету. Просто пропал. Сон при температуре 39, но нет - не сон. Оказывается, у оркестратора деплоя, действительно, была сломана функция удаления окружения в течение нескольких месяцев. И тут они ее починили. А она пошла разгребать очередь накопившихся задач. И просто удалила окружение, которое все это время было уже боевым.

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

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

А если вы уже и так клёвый - у нас есть вакансии питон-разработчиков.
1032