Size: a a a

2021 January 23
FEDOR BORSHEV
Что думаете, стоит пробовать?
Анонимный опрос
8%
Забей
15%
Попробуй
24%
Попробуй и сделай стрим
20%
Попробуй, сделай стрим и я на него приду
33%
Я брюква
Проголосовало: 2073
источник
2021 January 25
FEDOR BORSHEV
#вопрос Как пережить факт того, что ты упёрся в «умственный потолок», то есть понимаешь, что мозг не справляется с бОльшим количеством информации?

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

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

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

А ещё про потолок развития мы говорим в нашем с Антоном подкасте, эпизод «Куда дальше?».

Задавайте свои вопросы на fedor@borshev.comfedor@borshev.com
источник
2021 January 27
FEDOR BORSHEV
Фронтендер и Питонист

Мы с Саматом открыли две новые вакансии.

1. Питонист, который любит хороший код на Django. Вы будете работать в upmarket.cc и делать классный сервис статистики.
2. Фронтендер на vue.js. Вместе с вами мы перезапустим snob.ru.

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

Напишите пару слов о себе на fedor@borshev.com. Если мы не знакомы лично, то попросим вас сделать тестовое задание.
источник
2021 January 29
FEDOR BORSHEV
В комментах к посту «меньше тратить → больше зарабатывать» были ребята, которые почему-то решили, что я топлю против сбережений. Попробую прояснить свою позицию.

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

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

У меня финансовая подушка — основное и первичное направление расходов: в сбережения я перевожу часть денег с каждого поступления и вам советую. Если ещё так не делаете — почитайте хотя бы Т—Ж.
источник
2021 February 01
FEDOR BORSHEV
Асинхронная архитектура 2.0

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

В прошлом году я случайно забрёл на митап по Ruby, и офигел от одного из спикеров — чувак очень просто и понятно рассказывал про CQRS. Мы познакомились с Антоном Давыдовым лично, я пригласил его работать в iGooods, где мы сделали классный биллинг для курьеров с его архитектурой. Антон даже помог нам писать код и вести проект! С тех пор мы с ним делаем Липовый Туман, а сегодня — запускаем курс.

За 4 недели мы расскажем об архитектуре больших систем. Курс полезен всем, кто имеет отношение к проектированию ПО. Даже если вы джун, который сейчас пилит монолит в маленьком стартапе, вам будет полезно понять, как разделять требования между сервисами и как затем выстраивать взаимодействие этих сервисов между собой — мышление проектировщика позволит вам писать более понятный и изолированный код.

4 недели, 8 видео-уроков, q&a и личные консультации на самом дорогом тарифе. До конца недели скидка 10% по промо-коду P0PVG
источник
2021 February 03
FEDOR BORSHEV
Замечания — это не твои достижения

Иногда сталкиваюсь с ребятами, которые любят давать замечания вида «может, кнопку повыше передвинем?» или «давай тут цвет сделаем зелёным?». Вроде они и ответственность за результат не несут, и «британку» не оканчивали. А замечания дают.

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

Чуваки, это неправда! Если вы не в состоянии убедительно объяснить, чем именно ваша замечательная правочка улучшит результат, лучше оставьте её при себе.
источник
FEDOR BORSHEV
pmdaily
Асинхронная архитектура 2.0

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

В прошлом году я случайно забрёл на митап по Ruby, и офигел от одного из спикеров — чувак очень просто и понятно рассказывал про CQRS. Мы познакомились с Антоном Давыдовым лично, я пригласил его работать в iGooods, где мы сделали классный биллинг для курьеров с его архитектурой. Антон даже помог нам писать код и вести проект! С тех пор мы с ним делаем Липовый Туман, а сегодня — запускаем курс.

За 4 недели мы расскажем об архитектуре больших систем. Курс полезен всем, кто имеет отношение к проектированию ПО. Даже если вы джун, который сейчас пилит монолит в маленьком стартапе, вам будет полезно понять, как разделять требования между сервисами и как затем выстраивать взаимодействие этих сервисов между собой — мышление проектировщика позволит вам писать более понятный и изолированный код.

4 недели, 8 видео-уроков, q&a и личные консультации на самом дорогом тарифе. До конца недели скидка 10% по промо-коду P0PVG
На тарифе «всё включено» мест больше нет.
источник
2021 February 05
FEDOR BORSHEV
12 факторов: сервисы — это подключаемые ресурсы

Если попросить джуна настроить отсылку почты, он вполне может впасть в крайность и вызвать /usr/sbin/sendmail. Если попросить сделать файловое хранилище, то он сделает папочку /home/app/files.

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

Более продвинутый джун уже знает про SES и S3: он затянет в приложение их официальные либы, решив существенную часть проблем. Но не все: к примеру, на openshift уже не смигрируешь, да и на локальной машине отладка и тестирование сильно усложнится — нужно будет либо мoкать хождение в амазон, либо на каждый тест, который, скажем, генерит юзера, класть его аватарку в облако.

Продвинутые ребята рассматривают такие зависимости как внешние ресурсы, поддерживая для них полноценные абстракции. К примеру, в джанге складывают файлы через storage api и django-storages, а почту шлют через django-anymail. Поменял переменную окружения — и вот уже файлы складываются на рамдиск вместо s3, а почта шлётся через sendgrid вместо postmark.
источник
2021 February 08
FEDOR BORSHEV
Липовый Туман: почему мы ничего не успеваем

Вышел новый эпизод Липового Тумана: вместе с Антоном говорим об эмоциональной стороне того, почему мы ничего не успеваем, обсуждаем механику продуктивности и делимся опытом. Как обычно, материмся и говорим обо всём, кроме заявленной темы — касаемся строителей, делегирования и биткоинов.

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

Слушайте везде (18+): SoundCloud, Apple, Яндекс.Музыка, Google Podcasts, Castbox, Spotify, RSS
источник
2021 February 09
FEDOR BORSHEV
Опенсорс и страхи

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

Второй страх был посложнее — «а вдруг найдут дырку и украдут деньги?». С этим страхом мне помогла вера в людей (спасибо всем, кто репортит баги!) и эффект Неуловимого Джо.

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

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

Жквери, холст, масло. Зато у нас теперь есть рассрочка.
источник
2021 February 10
FEDOR BORSHEV
Pug vs Markdown

Всё забываю написать — у меня недавно вышел холиварный совет. Я там ругаю новый редактор «Дела» Модульбанка за то, что они заставляют нормальных людей писать заклинания на Паге вместо понятного текста в маркдауне.

А что вы думаете? Паг или маркдаун?
источник
2021 February 12
FEDOR BORSHEV
12 факторов: экспортировать сервисы через порты

Когда-то, когда сайты модно было делать на ПХП, конфигурация среды размазывалась буквально везде. Какие-то редиректы можно было настроить в .htaccess, логирование нужно было настроить в конфигурации Apache, версию самого Apache нужно было выбрать через контрольную панель хостинга. Сайт, написанный под один хостинг, мог не заработать на другом — где-то ПХП был подключён как модуль Apache, а где-то — через FastCGI, и это требовало разной механики работы с заголовками.

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

Сейчас принято делать приложения, которые хостят себя сами. На node.js так было с самого начала — попробуйте найти хоть один проект, который имеет веб-интерфейс и не содержит внутри простого HTTP-сервера на express.js. У Java такая практика тоже принята давно — там испокон веков существуют Jetty и Tomcat (а сейчас наверняка что-то более модное).

Ну а если пишете на чём-нибудь скриптовом вроде питона, обязательно включите в докер-образ uwsgi\gunicorn — пусть ваше приложение просто выставляет наружу порт, обращаясь к которому можно получить все нужные сервисы. Так вы не только упростите деплой и масштабирование, но и сделаете возможным всякие интересные интеграционные штуки вроде возможности прогнать браузерные тесты относительно свежесобранного приложения прямо в процессе CI.
источник
2021 February 15
FEDOR BORSHEV
Самый простой способ передачи знаний между программистами — это совместное программирование. Я очень хочу делиться знаниями о разработке, поэтому уже год веду образовательные стримы с лайвкодингом на ютубе. Вместо стандартной жвачки вроде «учим джанго за 1 час» или «зарплат питон-программистов» я показываю настоящую разработку коммерческого кода — с боевыми задачами, фейлами и непонятками, а также хорошими практиками вроде CI/CD или TDD. Обычно я пишу код для своей школы или для наших с Саматом клиентов, которые на это согласились.

Вот пара видосиков вам для затравки:

- Докеризуем Django-приложение
- Введение в TDD
- Пилим подарки для интернет-магазина

Подписывайтесь на ютуб или почитайте подробнее про мои стримы тут. Если есть пожелания для новых стримов — пишите в комменты.
источник
2021 February 17
FEDOR BORSHEV
Предчуствовать жопу

Один из основных скиллов проджект-менеджера — предчувствовать жопу. Жопа — это когда через неделю релиз, а у тебя ещё ни фига не готово. Или когда работа по задаче идёт уже 3 дня, а заказчик до сих пор не утвердил бизнес-требования. Или когда на важном проекте работает один программист, и у него уже целую неделю какое-то плохое настроение.

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

Не ждите, пока жопа случится на вашем проекте, — предупредите её и предотвратите.
источник
2021 February 19
FEDOR BORSHEV
12 факторов: хранить состояние вне процесса

Запущенное приложение не должно рассчитывать на внутреннее состояние процесса. Когда-то было принято хранить на диске буквально всё. Кроме сессий в /var/tmp, нормальной практикой было сжимать загруженные в админку изображения в момент их запроса. Типа запросил пользователь фоточку товара 400x400, а у нас в кеше есть только 200x200 — идём в оригинал, сжимаем его в 400x400 и сохраняем на диск. Другим пользователям уже отдаём кешированную версию. Думаю, не нужно рассказывать, чем это плохо, если вы читали мои предыдущие посты про 12 факторов.

Такой подход до сих пор проскакивает в маргинальных инструментах вроде django-webpack-loader: эта штука собирает JS в момент запроса и сохраняет где-то на диске. Конечно же, если вы деплоите JS, который почему-то не собирается, вы об этом узнаете не в CI, а от пользователей, которым прилетит неработающий бандл.

Не делайте так. Все преобразования выполняйте в процессе CI, а промежуточные данные храните в отдельных сервисах — данные в базе, сессии в кеше, а картинки где-нибудь в S3.
источник
2021 February 23
FEDOR BORSHEV
В рамках курса по асинхронным системам, который, кстати, стартует уже в следующий вторник, мы сделали классный материал, которым я хочу поделиться отдельно.

Это — простая памятка из 7 карточек о том, как говорить с бизнесом.  Если вы ещё только учитесь проджектовой работе, или вы — программист, который хочет вылезти за рамки привычного написания кода — обязательно посмотрите у нас на сайте. Чтобы получить карточки, мы попросим вас оставить почту, спамить потом не будем.
источник
2021 February 24
FEDOR BORSHEV
На 100%

У меня есть простой жизненный принцип — я всё делаю на 100 процентов.

Если работаю — я не отвлекаюсь. Если не получается не отвлекаться — перестаю работать. Если прихожу на встречу, то я — на встрече, а не в почте/телеге/айфоне.

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

Если я болею, то не работаю. Если чувствую себя плохо и не получается работать — значит, я болею.

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

Тут всё просто: если я думаю о работе, находясь на вечеринке, то плохо от этого и вечеринке (меня на ней нет), и работе: решения, скорее всего, я приму дерьмовые.
источник
2021 February 25
FEDOR BORSHEV
Завтра в 15:00 с Марьяной Онысько, Натальей Бабаевой и Крис Вазовски говорим о self-employed.

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

https://www.joinclubhouse.com/event/myyAJLRO
источник
2021 February 26
FEDOR BORSHEV
Отдавай заслуги, участвуй в поражениях

В последнее время стал замечать за собой, что, когда говорю о косяках, всегда пользуюсь множественным числом: «Мы забыли вычитать текст перед отправкой» или «Мы забыли покормить кота». А когда говорю о победах — говорю в единственном числе: «Ты классно сверстал письмо» или «Хороший код ты написал».

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

Вообще, это продолжение главного армейского принципа, который я когда-то давно услышал от одного из руководителей: «ругай лично, хвали публично». Я бы сформулировал как «отдавай заслуги, разделяй поражения».
источник
2021 March 02
FEDOR BORSHEV
Что-то я давно не рассказывал вам о фейлах, исправлюсь пожалуй и расскажу, как мы готовили контент к «Асинхронной архитектуре» (кстати, сегодня старт, ещё можно впрыгнуть).

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

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

Так вот, на «асинхронной архитектуре» я это проморгал — не заметил, когда в наш с Марьяной уютный и пустой чатик добавилось ещё двое ребят: Ваня и Антон. Чат тут же превратился в обычный рабочий чат, когда ты просыпаешься, а там уже 50 сообщений на непонятную тему, и ты не знаешь, что из этого имеет отношение к тебе, и что со всем этим делать.

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

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