Андрей Крисанов

Заметки (не) разработчика о менеджменте, программировании и запуске цифровых продуктов.

gitlab

Сборка образов на Gitlab CI для GCP Artifact Registry

Пару дней назад потребовалось автоматизировать сборку образов для релизов веб-платформы, которая разворачивается в Kubernetes (GKE). До этого момента сборка выполнялась локально на машинах разработчиков при помощи Docker и собранные образы отправлялись в Google Artifact Registry. Кроме того, стали появляться дополнительные тестовые и демо-окружения, требующие небольших изменений, например, в конфигурации фронтенда.
2 min read
macos

Установка pygraphviz на macOS

Изучая алгоритмы на графах, столкнулся с необходимостью их визуализации. В Python есть готовый для этого пакет – pygraphviz. Но, как это периодически бывает на macOS, установка не всегда проходит гладко: $ pip install pygraphviz ... pygraphviz/graphviz_wrap.c:2711:10: fatal error: 'graphviz/cgraph.h' file not found #include "graphviz/cgraph.h"
1 min read
esim

eSIM как альтернатива роумингу в путешествиях

Для людей, путешествующих в другие страны, существует два варианта оставаться на связи: 1. Воспользоваться роумингом своего оператора и платить много денег согласно тарифу или пакету роуминга 2. Купить SIM-карту местного оператора в аэропорту или уже в городе по прибытию Первый вариант — без дополнительных действий, но это стоит дорого. Второй — разумный,
2 min read
windows

Как освободить место на диске WSL2

С полным переходом на удаленку в начале пандемии оборудовал постоянное рабочее место со столом регулируемой высоты и креслом Herman Miller. Основным компьютером на тот момент выступал 15’ Macbook Pro late 2018. Так как рабочее время теперь провожу за этим место и занимаюсь задачами связанными с машинным обучением и обработкой данных,
2 min read
kafka

Чеклист по старту проекта с Apache Kafka®

В любом современном проекте, где появляется необходимость обрабатывать какие-либо события — набор сообщений или поток данных, в качестве инфраструктурного решения разработчики часто предлагают Apache Kafka®. Не всегда этот выбор выглядит взвешенно — там, где достаточно классического брокера типа ActiveMQ, побеждает маркетинг. Допустим все же, вы обдуманно пришли к выбору Кафки или же
1 min read
здоровье

Полезные советы невролога о подушках

Сон – это мегаважно. Не только его количество, но и качество. Если по количеству, все плюс-минус понятно – спи себе минимум 8 часов, то на качество влияет довольно много факторов. Один из них – ваша подушка и положение во сне. Общие советы: * Выбирайте простую пухо-перьевую подушку, не сентипоновую * Размер 50x70, т. е. прямоугольной,
keycloak

Сертификат для LDAPS в Keycloak

В нескольких рабочих проектах я использую в качестве сервиса аутентификации Keycloak. Проект спонсируется компанией RedHat, активно развивается и адаптирован для cloud-native окружения. Хотя документация у Keycloak достаточная для основных пользовательских сценариев, иногда ее не хватает для решения специфичных вопросов. Последнее с чем я столкнулся — подключение Active Directory как User Federation
1 min read
keycloak

Синхронизация пользователей через LDAP в Keycloak

Один из способов подключения провайдера существующих пользователей к Keycloak – механизм, который называется User Federation. Он позволяет используя Kerberos или LDAP синхронизировать учетные записи из корпоративного хранилища. Если пользователей в хранилище много, и оргструктура организации предполагает иерархию, то это может усложнить получение (под)группы учетных записей. Так, например, в Active Directory
1 min read
тулинг

asdf — менеджер версий языков программирования

Для установки пакетов на macOS я долгое время пользовался пакетным менеджером Homebrew. Утилита позволяет устанавливать и обновлять не только актуальные, но и major-версии программ: $ brew install [email protected] Однако, Homebrew не предоставляет функциональности для управления несколькими версиями пакетов, которые могут совместно существовать в пользовательском пространстве. Особенно, это критично, когда нет
1 min read
менеджмент Featured

От задачи к релизу

В предыдущем посте я рассказывал как выглядит Jira Workflow и пайплайн задач в кросс-функциональной команде разработки. В этой заметке, которая писалась как шпаргалка для внутреннего использования, приводится более полное описание процесса от момента постановки задачи до ее релиза. А еще, она точно не понравится адептам канонического Scrum. Состав команды * Владелец
6 min read
менеджмент Featured

Jira Workflow

Я стараюсь придерживаться принципа KISS (keep it stupid, keep it simple) не только при написании кода, но при выстраивании процессов внутри команд. Так, например, приведенный Jira Workflow имеет максимально прозрачный пайплайн выполнения задач. Типы запросов * Задача — задача, которую необходимо выполнить. * Подзадача — задача меньшего объема в рамках задачи. * Баг — проблема, которая
1 min read
менеджмент Featured

Wiki проекта

Первое что я делаю когда прихожу в новую команду — это смотрю на состояние документации и выступаю евангелистом корпоративной Wiki. Постепенно совместно с командой привожу документацию в порядок, и она начинает выглядеть следующим образом: Когда в начале пандемии всех массово стали переводить на удаленку, мои команды уже были готовы к новому
1 min read
менеджмент

Обусловлен ли срыв дедлайна ошибками менеджмента

Некоторое время назад в своем маленьком Телеграм-канале я делал опрос на тему срыва дедлайнов и ответственности за них. Вопрос звучал так: «Обусловлен ли срыв дедлайна в большинстве случаев ошибками менеджмента, а не команды разработки?» * 7% за ответ «Нет» * 20% за ответ «Да» * 73% за ответ «Все не так однозначно» Итак,
2 min read
devops

Запуск программы в виде демона

В macOS и операционных системах семейства Unix для запуска программы в фоновом режиме достаточно добавить к команде знак амперсанда &. sync --folder /home/akrisanov/downloads & После ввода команды оболочка отвечает идентификатором процесса PID который может быть использован в дальнейшем для прекращения работы процесса. Данный трюк часто бывает полезен при запуске серверов
менеджмент Featured

Ежедневный стендап

В командах, с которыми я работаю, мы стараемся придерживаться следующего подхода при проведении ежедневных стендапов: Формат * Стендап всегда начинается в одно и то же время * Начинаем с членами команды, которые присутствуют и не ждем остальных * Продолжительность: 10-15 минут * Важно не прерывать коллег и забыть на время стендапа про мобильные устройства
менеджмент

Перформанс-ревью #2

В кросс-функциональных командах задача разработчика не писать код, а создавать продукт. Это фундаментальная причина по которой любые попытки объективно измерить производительность программиста терпят неудачу. Если, например, для роли дизайнера мы понимаем, что он (а) не рисует мокапы и макеты, а проектирует пользовательский интерфейс, то вряд ли станем измерять продуктивность количеством
1 min read
менеджмент

Перформанс-ревью

Большинство перформанс-ревью, которые проводятся по SMART раз в полгода или год, не приносят никакой пользы ни менеджерам, ни разработчикам, а скорее только демотивируют людей. На такое перформанс-ревью тратится большое количество времени, и вопросы нельзя назвать релевантными. CTO компании N26, с которой мне пару лет назад посчастливилось разрабатывать совместный продукт, Патрик
1 min read
менеджмент

Основные ошибки начинающего people-менеджера

Несколько лет назад мне впервые довелось руководить людьми. Началось все с пары человек — двух iOS разработчиков, которые вместе со мной создавали небольшие мобильные приложения для одной маленькой студии. С течением времени команда росла, становилась кросс-функциональной. Компания открыла местный офис, и мы стали заниматься разработкой под другие платформы, а также своими
2 min read
jupyter

Расширения для Jupyter Notebook

Jupyter Notebook — один из часто используемых мною инструментов. Несмотря на всю мощь этого решения, «из коробки» иногда не хватает какой-нибудь маленькой, но полезной функциональности, например, генерации содержания по заголовкам разметки Markdown. К счастью исправить подобные мелочи отчасти помогают расширения, которые можно найти на Github. Существуют как официальные пакеты, поддерживаемые JupyterLab,
1 min read
менеджмент Featured

Удаленная работа

Данное руководство опирается на личный опыт удаленной работы и организации асинхронных процессов в продуктовых командах. Список рекомендуемых ресурсов вы найдете в конце заметки. Общие принципы 🔐 Получите доступ к VPN и/или другие доступы, которые необходимы для подключения к внутренним ресурсам, и обязательно ознакомьтесь с правилами работы с конфиденциальной информацией. ⬆️ Эскалируйте
3 min read
тулинг

Добавление путей в PATH на Mac OS X 10.8 и выше

Устанавливая некоторый софт на Mac OS, периодически возникает необходимость обращения к исполняемым файлам без указания полного пути. В операционной системе от Apple это можно сделать редактированием файла /etc/paths/. Этот файл содержит список (по одному на строку) путей, которые добавляются к переменной $PATH в shell: echo $PATH Допустим, мы хотим
менеджмент

Как отвлечь разработчика

Вещи, которые отвлекают разработчика и влияют на его продуктивность: * Уведомления — привет, Slack и другие месседжеры! * Частые встречи * Электронная почта * Случайные выдергивания коллегой, менеджером и другие подобные прерывания Хороший руководитель старается минимизировать перечисленное, плохой — создает.