Бэкендер в контент-платформу Тинькофф Журнала
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
Тинькофф Журнал — главное русскоязычное издание про деньги. Наш сайт читают 20 миллионов человек в месяц. Наша миссия — сделать читателей образованными и смелыми в отношении всего, что касается денег. Мы ищем сильного бэкенд-разработчика, который займется ключевыми сервисами журнала.
Технологии
Пишем на Python и FastAPI. Изначально журнал представлял собой два сервиса, которые написаны на Django. Один мы переписали на семь сервисов и половину из них запустили в продакшен. Второй переписывать пока не планируем. Базы — Postgres и Redis.
Клиенты общаются с сервисами по REST, используем спецификацию OpenAPI. Сервисы между собой местами общаются так же, но мы переводим это на асинхронную архитектуру. В качестве брокера используем Google Pub/Sub.
Деплоимся с помощью Argo CD в Google Kubernetes Engine. Пайплайны на Gitlab CI, туда прикручены flake, black и mypy. Там же запускаются тесты на pytest. Django-сервисы деплоим, используя fabric.
Команда и процессы
В команде 4 фронтендера, 3 бэкендера, дизайнер и продакт.
По необходимости подключаем к работе команды тестировщиков, аналитиков и других специалистов. Всего в технической команде журнала 36 человек, из них 11 С бэкендеры.
Работаем итерациями. Раз в неделю команда обсуждает дела на предыдущей неделе и планирует работу на следующую. Разработчики сами декомпозируют и доспекивают задачи по бизнесовым постановкам и макетам.
Раз в пару недель мы созваниваемся на час, чтобы обсудить чисто бэкендерские штуки: изменения в архитектуре, новости или открытия, процессы. У нас принято код-ревью до двух лайков. Реквесты равномерно разбрасываем между всеми бэкендерами независимо от продуктовой команды.
Раз в месяц проводим 1-1 с руководителем.
Ближайшие масштабные задачи
Перезапустить фасад журнала. Избавляемся от легаси. За 6 лет журнал прошел большой путь, многие технические решения принимались спонтанно под давлением обстоятельств. Пользователям этого не видно, но под капотом последний год проводим большую чистку, в её завершающих стадиях предстоит принять участие. Фасад — сервис, который первым после балансера принимает трафик.
Обновить потоки. Пользовательская навигация по сайту построена на тематических потоках. В некоторых потоках только пользовательский контент, в остальных — редакционный. Один из потоков — со всеми вопросами читателей. Для развития этой системы надо будет подготовить новые эндпойнты, поменять структуру данных, провести миграции.
Унифицировать структуру статей. В Т—Ж очень сложная вёрстка. Некоторые части статей свёрстаны руками, а статей накопилось много. Чтобы двигаться дальше в развитии внутренних инструментов редакции, мы разработали более строгую систему хранения данных статей. Кроме её внедрения предстоит большая и сложная миграция статей за все предыдущие годы.
Унификация админок журнала. За сценой спрятан набор разнородных инструментов, которыми пользуется редакция. Пока мы проводим их ревизию, собираем общие паттерны и продумываем контуры простой и лаконичной системы управления и модерации. Большую часть работы предстоит сделать фронтам, но для них точно придётся подготовить новые API.
Бонусы
- Удаленная работа. По желанию можно приезжать в наш офис в семи минутах офисом на «Динамо» в Москве или в некоторых других городах. Сможем помочь с переездом.
- Гибкий график. Главное — побольше времени пересекаться с остальной командой.
- Рабочий MacBook Pro.
- ДМС со второй недели работы.
- Опыт в выращивании стажёров. Несколько раз в год набираем студентов Физтеха, Вышки, Бауманки, МГУ и других вузов с неплохими техническими программами. Проводим собственные обучающие программы для студентов и недавних выпускников.
- Помощь в написании статей и подготовке выступлений. Наши редакторы, графдизайнеры и DevRel помогут подобрать тему, собрать и оформить материал, подготовиться и опубликоваться или выступить.
- Обучение смежным с работой софт- и хард-скиллам. В Тинькофф развитая система внутренних тренингов. Есть возможность поучиться на внешних курсах или послушать конференции за счет компании.
Дополнительные инструкции
Ожидаем, что соискатель умеет проектировать сервисы с нуля, писать RFC, проводить собеседования, декомпозировать бизнесовые постановки задач и делегировать работу менее опытным разработчикам.
Чтобы обсудить вакансию, пишите тимлиду команды в Телеграм. Очень здорово, если есть ссылки на ваш GitHub или любые другие примеры вашего кода.