будни

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

Раньше, покупка техники по работе приносила удовольствие. С каждым годом удовольствия чуть меньше.

Плохое планирование работы команды даже из 9 человек стоит дороже любой техники, а всё равно пугает меньше. Наверное, потому, что нет четкого point of no return.

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

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

Нам с Федей часто заказывают разработку медиа: в сентябре перезапускаем одно известное российское общественно-политическое издание и на днях начинаем работу над медиа для крупнейшего ритейлера.

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

- это и обычный сайт, в нем важно понимать, что подавляющее большинство просмотров будет с телефонов, а не с компьютеров, где обычно проверяют свой сайт сами редакторы:)
- и мобильные приложения — всё ещё удобнее иметь на рабочем столе иконку, это повышает открытия и прочитывания в десятки раз, ядровая аудитория;
- и разные системы доставки контента типа Instant Articles в Фейсбуке, Instant View в телеграме, Яндекс Дзен, Google News и другие — в них обычно нужно отдавать специальные RSS потоки;
- соцсети — чтобы не заливать посты в каждую соцсеть отдельно, а иметь единый центр управления полетами.

Сегодня я хочу поделиться советом про админку. Помню, мы произвели небольшой фурор в медиа-сообществе, когда в 2015 году рассказали про Монитор — внутреннюю админку Медузы. За годы он вырос в сложный и богатый инструмент, которым пользуется только одна редакция. К счастью, в 2022 можно получить 90% удобства и функциональности крутой медиа админки за 10% усилий.

Секрет в развитии headless CMS — это движки админок сайтов разной степени готовности. Помните про разделение на админку и пользовательскую часть? Речь ниже только о движке админки.

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

Яркий представитель первого класса, когда тебе дают сразу готовый продукт — это Contentful. Стартап стоимостью 3 миллиарда долларов, через админку которого управляют своими сайтами Disney, Atlassian, SAS и многие другие. Не удивляйтесь, крупные сайты компаний сравнимы с медиа.

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

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

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

Поздравим главного редактора с первым коммитом!

Из руководства без github-аккаунта осталась только Галина Викторовна. Challenge accepted.

Интересная идея — проверять кандидатов на собеседовании через чтение кода, а не через его написание.

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

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

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

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

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

Теперь с нетерпением жду новостей Forbes.ru о запусках. Меж тем, они расширяются, ищут хорошего бэкендера на пыхе, аналитика и smm-щика. Хотите работать в медиа с хорошей продуктовой командой, дельным руководством и офисом рядом с Белым домом? Пишите Наташе на [email protected]

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

«Лапша в бизнес-логике». Бизнес-логика в приложении — это цепочка вызова команд. Эти цепочки часто содержат больше 7 шагов. Это больше, чем человек может уместить в голове. Чтобы решить эту проблему, люди описывают цепочки в одном месте, последовательно: одна строчка — один шаг бизнес-процесса (пример на руби). В нашем проекте, сейчас, это не так. Логика бизнес-процессов кочует из файла в файл. Пример: … — в попытке отследить бизнес-логику платежей мы «прыгнули» по коду 11 (!) раз. Это бесчеловечно. …

Мне очень нравится, что мы с Федей привлекаем экспертов себе в помощь. Я уже писал об Антоне Давыдове, но если вдруг пропустили — вот его канал в телеге. Кайфую каждый раз, когда делаю что-то вместе с Антоном.

Шутки шутками, а я сегодня впервые за долгое время задеплоил код в продакшен.

Федя уехал в отпуск, Настя нашла баги в лендинге нашего медицинского помощника, а я склонировал репозиторий, запустил локальную копию проекта и поговорил с клодом. Потом запушил изменения и благодаря прекрасно настроенному CI/CD, всё само доехало на сайт.

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

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

Upd: добавил важный абзац в текст про компилятор, а то фокус был сбит:

Гораздо важнее траектория развития способностей нейросетей. 4-я модель «Опуса» еле-еле генерировала работоспособный компилятор. 4.5 первым прошел крупные тесты, но не мог скомпилировать реальные проекты. 4.6 вышедший на днях может компилировать реальные проекты. Что сможет следующая модель?

Отлаживаем отправку статистики из мобильных приложений.

Делаем на сервере tail -f /sv/log/nginx/access.log | grep 'stat/put' | grep 92. и видим пустоту, хотя если оставить только первый grep — то всё нормально. Это мы пытаемся в реальном времени вывести на экран все обращения к определенным ссылкам на сервере с определенных IP-адресов.

Оказывается, дело в буферизации и добавление параметра --line-buffered к grep'у решает проблему.

Век живи — век учись.

Хочу подвести итоги года. Пост личный и длинный, можно спокойно скипать, no-FOMO.

В этом году я работал на трёх работах и жил две жизни:

1. Строил бизнес по IT-разработке с Федей Борщевым. Уже больше десятка клиентов: куча аудитов и пара запущенных MVP, перезапустили блоги Сноба и почти перепрограммировали публичную часть онлайн-школы ЕГЭ Вебиум. Главное — собрали команду из программистов, для которых программирование — это способ решения бизнес-задач, а не просто кодинг. Денег у нас в этом пока не очень много, цель на 2022 — запустить стартап и начать наконец зарабатывать бизнес-прибыль, а не только зарплату себе, Феде и ребятам-программистам.

2. Осваивал профессию психотерапевта. Прошёл курс молодого бойца у Димы Лицова и отучился для работы с группами в СИФЭП (тоже под руководством Димы). Группа соучеников, с которой мы больше года учились работе с группами — это, наверное, одни из самых близких мне людей теперь. Вообще, группы — это такая ультимативная встреча с собой. Начал небольшую практику с десятком клиентов. Группы пока не начинаю, провел пару учебных, заглянул в бездну и пока обхожу стороной, времени и сил пока не хватает. В 2022 планирую обучение в HEPI, цель — получить признаваемый в мире диплом психотерапевта и набраться опыта у мэтров.

3. Продолжал вести подкаст «запуск завтра». Это самый популярный подкаст про технологии на русском языке. Уже привычная работа, становлюсь профессиональным ведущим. Есть идеи новых форматов и новые темы на 2022, будем пробовать. Как бонус — провел несколько дней открытых дверей и был соведущим открытия чемпионата мира по программированию.

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

Теперь про жизнь:

1. —
2. —
3. У нас с женой растут две дочки и сын. Сын — это для меня новое, отличное от дочек и очень классное. Юсуф.
4. Окончательно отказался от идеи, что я вегетарианец (даже это я пытался использовать как способ «быть лучше других»), готовлю дома мясо. Отказался от идеи, что я «правильный мусульманин»: капаю иногда в воду белое вино, мне очень нравится вкус.
5. Открыл для себя чудо массажа, читай нашёл своего массажиста.
6. Перестал грызть ногти, но так и продолжаю не спать по ночам, зависаю в интернете. Разобраться, зачем мне это — цель на 2022.
7. —
8. Пошёл на личную психотерапию, помогает.

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

С новым годом вас, дорогие! Пусть в нем у нас всё получится.