Size: a a a

2021 April 30
FEDOR BORSHEV
12 факторов: дев как прод

Когда я только начинал разрабатывать на джанго, я радовался, как клёво она абстрагируется от баз данных: можно, к примеру, при разработке или в CI использовать sqlite, чтобы было быстро, а на проде — postgres. Делать так я перестал сразу же после того, как у меня упал прод из-за регистра символов в названии какой-то сущности: постгрес был case-sensitive, а sqlite — нет.

Или представьте, что на проде у вас используется Amazon SQS как сервер очередей, а локально и на стейджинге вы используете Redis. Если вы вдруг поставите версию celery, в которой сломан какой-нибудь редкий кейс с SQS, но эта ошибка не воспроизводится в вашем Redis, думаю, вам будет весело.

Поддерживайте весь тулинг одинаковым — пишите для программистов длинные docker-compose, которые содержат максимально близкую копию прода. Если деплоитесь в облака, не стесняйтесь брать localstack.
источник
2021 May 05
FEDOR BORSHEV
Смотрите, куда мы с Саматом докатились
источник
FEDOR BORSHEV
У нас с Федей вчера был очень трудный разговор. Мы решили, что готовы делать аутсорс-разработку для наших клиентов. То есть у нас появилась новая услуга — мы разрабатываем сайты и приложения без передачи программистов клиенту. Текущие услуги запуска проекта с передачей команды внутрь и по аудиту и улучшению существующих команд разработки — никуда не делись, добавилась ещё одна услуга.

Причины две:

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

2) Не всем клиентам нужна своя внутренняя команда разработки. Часто клиент хочет запустить первую версию продукта, проверить гипотезу и только в случае успеха будет нанимать программистов на постоянку.

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

Что это значит практически?

💼 Для клиентов: можно нанять нас на разработку MVP, а уже потом заказать у нас себе найм команды внутрь, по необходимости. Пишите мне в личку. Очередь из клиентов на 3 месяца вперед, но оно того стоит.

🛠 Для программистов: мы открываем большой найм в команду «Федя и Самат». Много разных проектов, технологий, бизнес-задач и непременно высокий уровень качества. Стек — python и js. Пишите Феде на fedor@borshev.com.

Ух.
источник
2021 May 10
FEDOR BORSHEV
#вопрос как продолжить заниматься любимым делом (например музыкой), если оно интересно только тебе, т.е. не приносит денег и лайков?

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

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

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

Ну а если вы честно признаётесь себе, что безрезультатное хобби — это лучшее вложение времени — вам очень повезло.

Каждый понедельник я отвечаю на один чётко сформулированный вопрос. Пишите на fedor@borshev.com.fedor@borshev.com.
источник
2021 May 12
FEDOR BORSHEV
Как рассказать о компании в вакансии

На курсе «Стать Тимлидом» в одном из уроков у нас есть домашка — написать вакансию для своей компании. Одна из самых частых ошибок — невкусный шаблонный рассказ о компании.

Конечно, «динамично развивающихся» давно уже нет, но вот «Проптех для b2b в США» или «Финтех-стартап с мировыми амбициями» — вполне ещё встречаются. Понятно, что кандидату эти заклинания не говорят ни о чём — он скорее откликнется в компанию, которая занимается чем-то понятным, к примеру делает самый большой в России поисковик или самое лучшее в мире банковское приложение.

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

Говорите о своей компании так, как будто вы сидите в баре.
источник
2021 May 14
FEDOR BORSHEV
Гайд по pytest

Я редко публикую здесь ссылки, но иногда попадаются вещи, которые приводят меня в восторг. Недавно наткнулся на полный гайд по pytest — https://stribny.name/blog/pytest/

Это дока пайтеста, изложенная простым человеческим языком: прямо то, что нужно, если вы только изучаете тестирование и уже написали свой первый асёрт.

Описана почти вся экосистема — из того, что я активно использую, нет только про pytest-django, pytest-env и pytest-freezegun чтобы мокать даты. В остальном — настоятельно рекомендую.
источник
2021 May 17
FEDOR BORSHEV
#вопрос Можно ли на собеседовании выяснить не только теоретические знания претендента, но и то, насколько быстро он деливерит задачи от 0 до 100?

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

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

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

Подробнее о двух неделях читайте мой старый пост.

Каждый понедельник я отвечаю на один чётко сформулированный вопрос. Пишите на fedor@borshev.com.fedor@borshev.com.
источник
2021 May 19
FEDOR BORSHEV
Письмо самому себе

Из ГТД я вынес для себя три вещи: ежедневные обзоры дел, пустой инбокс и письма самому себе.

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

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

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

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

Раньше для для отсылки писем я пользовался программой на айфоне, которая так и называлась — Mail to Self. Однако со временем пришло понимание, что каждый клик понижает вероятность того, что мысль будет записана. Особенно Mail to Self страдала, когда хотелось отправить себе скриншот или фотографию.

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

Бот, кстати, бесплатный и открытый, так что если вы ГТД-шник — смело пользуйтесь: @selfmailbot.
источник
2021 May 21
FEDOR BORSHEV
Не требовать, а создавать контекст

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

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

Если у вас нет такого контекста, вы по большому счёту ничем не отличаетесь от прораба из курса «Самому не проще» — вроде и делаете дела, но стоит вам отвернуться, как рабочие уронят ванну и криво приклеят плитку. Так и до сна в обнимку с телефоном и отпуска с ноутбуком в рюкзаке недалеко.
источник
2021 May 24
FEDOR BORSHEV
#вопрос Как расти ПМу в агентстве, если цель — работа в крупной технологической компании? Какие скиллы качать, чтобы быть привлекательным на этом рынке?

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

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

Каждый понедельник я отвечаю на один чётко сформулированный вопрос. Пишите на fedor@borshev.com.fedor@borshev.com.
источник
2021 May 26
FEDOR BORSHEV
Камера, микрофон и интернет

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

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

Не пожалейте денег, потратьте 3000 рублей на нормальную камеру, гарнитуру и хорошего провайдера: подняв качество связи, вы заработаете гораздо больше денег на работе, так как будете быстрее делать рабочие дела, не отвлекаясь на технические проблемы.
источник
FEDOR BORSHEV
Заканчивается второй поток Стать Тимлидом, и у нас появились силы на новые учебные материалы.

Чему хотите обучиться до конца года?
Анонимный опрос
15%
Профессиональный рост меня и команды
13%
Принятие решений
12%
СI/CD
11%
Как себя вести в конфликтных ситуациях
11%
Как распиливать монолиты
7%
Хочу на следующий поток Стать Тимлидом
9%
Хочу на следующий поток Асинхронной Архитектуры
23%
Я морковка
Проголосовало: 3235
источник
2021 May 28
FEDOR BORSHEV
Кто отвечает за то, чтобы ПР оказался в проде

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

За то, чтобы ПР оказался на проде, отвечает не QA, не релиз-инженер, не тимлид, не твой коллега, чей код тоже надо катить, не проджект, не ревьюер, не CTO, не твой отдел, не продакт, не я, не соседний отдел, не сисадмин и даже не Мартин Фаулер.

За то, чтобы докатить твой ПР до прода, отвечаешь ты, и спрашивать за это будут с тебя, без исключений.
источник
2021 May 31
FEDOR BORSHEV
#вопрос Расскажи, пожалуйста, про своё отношение к тайм-трекерам. Есть демократичные варианты типа RescueTime и Toggl, а есть жёсткие типа Стахановца. Хотелось бы узнать твоё развёрнутое мнение на этот счёт.

Приватные тайм-трекеры вроде RescueTime или встроенный в iOS ScreenTime — вполне ок: они позволяют понимать, на что уходит день за компьютером. В них можно найти ответы на вопросы вроде «почему я до сих пор не выучил pandas? (потому что тупил в ютуб)» или «почему мой блог никто не читает? (потому что ты раз в неделю садишься, пишешь один пост 4 часа подряд, а потом бросаешь)».

Публичные тайм-трекеры, то есть те, где результаты видит кто-то, кроме тебя, — это дно.

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

Для работодателя это дно потому, что бизнесу выгоднее покупать сделанные задачи, чем часы, потраченные на сидение за компьютером. Кто ценнее — сотрудник, который закрывает задачи и сабмитит 6 часов в неделю, или сотрудник, который не приносит ничего, но сабмитит 10 часов в день?

См. также набор советов о бюрошном «ресурсе».
источник
2021 June 02
FEDOR BORSHEV
«Дороже значит лучше»

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

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

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

Кстати, точно так же, как от денег, качество выполняемой работы не зависит и от возраста. 20-летний чувак за Х денег может делать гораздо больше качественной работы, чем 30-летний за 5Х.
источник
2021 June 04
FEDOR BORSHEV
Тупое правило: никогда не хардкодь креденшелы

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

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

Используйте переменные окружения, Vault от Hashicorp или любой другой способ хранения конфигурации. Но ни в коем случае, даже локально, не записывайте свои секреты в код — они в любом случае попадут в мастер.
источник
2021 June 06
FEDOR BORSHEV
Друзья, я подцепил модный диагноз. Получилось обидно, т.к. я специально потратил время на прививку, но видимо не сработало — вот уже неделю сижу дома с жуткой слабостью, без запахов и вкусов, пцр-тест положительный.

В ближайшую неделю постов на канале скорее всего не будет, не скучайте.
источник
2021 June 07
FEDOR BORSHEV
Тут Самат в Москву приехал! Приходите к нему на открытую запись подкаста
источник
FEDOR BORSHEV
​​Я наконец-то приехал в Москву и 10 июня у нас будет открытая запись подкаста! Мне волнительно, потому что обычно, мы говорим с гостем 2 часа и вы слышите только 40 минут, которые выберет и смонтирует редактор, а тут вы увидите и услышите всё. Также мы планируем классный афтепати. Покупайте билеты по ссылке, приходите в ДК Рассвет в 19:30 в четверг и давайте встречаться :)

Теперь о теме записи. Современный телефон невозможно представить без приложения карт. Карты — одна из так называемых «киллер-фич» современного смартфона. Яндекс.Карты, Гугл-карты, Эпл-карты — все их делают мега-корпорации с сотнями инженеров и миллиардами инвестиций. Приложение maps.me работает без интернета лучше, чем все эти гранды, а научилось это делать на годы раньше. Maps.me основали инженеры-выходцы из гугла в 2011 году, в Минске. Вот с одним из этих инженеров мы в четверг и поговорим.

Гость нашей открытой записи — создатель maps.me Юрий Мельничек. Юрий крутой инженер и успешный инвестор. Разберемся, какие технические трудности мешали сделать оффлайн-карты, как ребята их преодолели и как еще умудрились заработать. Приходите, будет весело!
источник
2021 June 11
FEDOR BORSHEV
Джуны — это инвестиции

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

Дело в том, что работа с джунами — это инвестиция. С небольшой вероятностью (по моим ощущениям, 5–10 процентов) джун может «выстрелить» — за полгода-год стать достаточно сильным разработчиком. В таком случае я получу полноценного компетентного исполнителя за короткий срок и небольшие деньги — главное, не забывать и самому приходить к нему с повышением зарплаты до рыночной.

Основной вопрос, который я себе задаю, собеседуя джунов, — верю ли я, что этот человек может выстрелить за год? Кстати, именно поэтому я не беру людей с вайтишных курсов — на мой взгляд, вероятность «выстрелить» напрямую связана с умением прочитать хотя бы 1–2 книги по профессии.
источник