kamyshev.code
1.86K subscribers
40 photos
565 links
Архитектура, код, софт-скиллы и всё остальное. Вопросы, пожелания, комментарии — @igorkamyshev

https://kamyshev.me
Download Telegram
Акторы

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

Делаю пет-проект, намеренно переусложняя архитектуру акторами, читатю статьи, смотрю доклады. Вот парочка прямо хороших:

+ Моя жизнь с актерами
+ Написание масштабируемых и временами распределённых систем

#проектирование
Forwarded from FEDOR BORSHEV
«Ты сделал говно»

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

«Ты сделал говно» — это же самая обычная обратная связь. Когда коллектив видит говно, но не кричит о нём, его участники как бы соглашаются: да, у нас можно делать говно, и мы никого не будем учить делать неговно, пусть сами разбираются.

Представьте, если первоклассник принёс учителю решение, что 2 x 2 = 3, а учитель в ответ выражает просто мягкое неодобрение, но не говорит, что правильно будет 4? Математика никогда не откроется ребёнку как точная наука, скорее ощущение будет «ну, я что-то делаю, что-то, наверное, получается».

Когда я нанимаю людей, при первом же удобном случае провожу их через ситуацию «ты сделал говно»: ловлю на ошибке и подробно и спокойно разбираю её. Если новый сотрудник воспринимает такой разбор с благодарностью, значит, наши ценности совпадают и мы, скорее всего, сработаемся. Если злится, закрывается или доказывает мне, что никакой ошибки на самом деле не было, — вряд ли.

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

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

Мы сели и усиленно подумали 🤣 результатом стали некоторые глобальные цели команды, и небольшие «проекты» которые соответствуют этим целям.

На этой неделе расскажу подробнее 😌
Цели мы сформулировали в формате «мы верим, что так должно быть».

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

Но есть участки кода, которые совсем устарели. Например, у нас осталось немного кода на CoffeeScript. Поддерживать и развивать это нет никаких сил — мы считаем это легаси и при первой возможности выкидываем или переписываем.

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

#кейс
Случилось удивительное — я завел англоязычный твиттер

https://twitter.com/kamyshev_dev

Вдруг вам очень хочется читать мои твиты на английском 💁‍♂️
Другая наша цель — консистентность нового кода и архитектуры. Это нужно, чтобы снизить фактор автобуса в командах, упростить кросс-командные код-ревью, уменьшить время на адаптацию новых специалистов и в целом ускорить разработку. Превратить эту цель в проект сложно.

Мы пишем новый код в новом месте, и контролируем консистентность подходов автоматическими проверками — пишем кастомные правила для линтеров, которые проверяют, что все пользуются платформой одинаково.

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

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

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

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

#кейс
​​Ноябрьский выпуск подкаста!

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

Слушайте, пишите фидбеки 💙
О, там к посту кнопка комментов не приложилась, вот тут будет👇

Пишите фидбеки 💙
kamyshev.code pinned «​​Ноябрьский выпуск подкаста! Полина Гавра — самая главная по HR в лучшей компании на свете. Я никогда не встречал такой крутой HR-команды, как в Aviasales и очень хотел узнать как это работает. Мы поговорили про зарплаты, бенефиты, найм, увольнения, внутреннее…»
Астрологи объявили неделю подкастов 🤣

Сходил поговрить истории про собеседования 👇
Forwarded from Пять Франков
🎧 Подкаст #105

👨‍💻  Игорь Камышев — ведущий телеграм-канала @kamyshev_code, где он делится интересными заметками об архитектуре и коде — рассказывает, как попал в Aviasales и выработал иммунитет к собеседованиям.

Таймкоды
- [00:19] О себе
- [00:51] Путь в Aviasales
- [02:18] Другие собеседования
- [06:30] Сколько нужно собеседований, чтобы перестать волноваться
- [06:48] Было ли что-то общее у собеседований
- [08:38] Как отличить плохие задачки от хороших
- [12:05] Какие собеседования запомнились
- [17:52] Как понять, что компания тебе не походит
- [21:27] Как грамотно слиться с собеседования
- [22:57] Какая разница, где красить кнопочки? Как выбрать компанию
- [24:56] Взгляд с другой стороны: опыт найма
- [28:15] Эффективны ли тестовые задания
- [34:41] Что чаще встречается: вопросы или задачки
- [33:04] Что почитать или посмотреть перед собеседованием
- [36:03] Самое важное

🎧 Слушать подкаст на Anchor [37:36]
🎙 или в Apple Podcasts
или на любой другой популярной платформе.

Ссылки
- Канал Игоря: @kamyshev_code

Слушать еженедельный фронтенд-дайджест FrontoWeek.
Несмотря на коронокризис, мы растем и ищем целую кучу (ВОСЕМЬ!) фронтендеров в разные команды Авиасейлс.

15-16 декабря проведем инкридбл фронтенд хайринг ивент. В первый день — техническое интервью, во второй день — интервью с менеджером. По результатам сразу оффер (ну или не оффер, кек). Быстро, четко, кайф!

Ремоут-ферст, страховка, спорт, английский, зарплата в долларах и вот это все в комплекте.

Регистрируйтесь 💙

https://event.aviasales.ru
Ищу несколько фронтендеров-джуниоров для помощи в небольшом проекте 🤗 напишите мне, пожалуйста.
Набраны 👌
Продолжим историю про цели фронтенд-департамента Авиасейлс 🤗

Четвёртая цель ближе всего к людям — мы хотим использовать классные современные технологии.

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

> Например, один проект мы собираем через Gulp и вроде все хорошо, но gulp-sass не поддерживает кастомные имплементации sass. А node-sass умер и хотелось бы заменить его на dart-sass. Это причина, почему нам придётся отказаться от Gulp, хоть он и решает все наши задачи отлично.

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

#кейс
Четыре месяца у меня получалось делать ежемесячный подкаст 😞

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

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

С Новым годом 🎊
Я часто делаю маленькие статические сайтики и мне надоело каждый раз настраивать для них сборку. Поэтому я сделал темплейт — https://github.com/igorkamyshev/land-lord

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

Ставьте звездочки, пользуйтесь с удовольствием, приносите фидбеки 💙
Валя из Авиасейлс (мы работаем в одной команде) ведет замечательный канал — @valya_reads_issue

Там много интересных и полезных заметок 🤗
Я часто пишу как замечательно работать в Авиасейлс, но никогда не рассказывал как мы решаем, кто подходит на эту работу мечты. Пришло время это пофиксить!