Тинькофф-журнал

Бэкендер в маркетинговое направление Т⁠—⁠Ж

Рекомендовать

О рекомендателе

О кандидате

Ещё немного

Ещё секундочку, подтвердим получение рекомендации...
Oops! Something went wrong while submitting the form.

Обо мне

Меня порекомендует

Ещё немного

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Рекомендовать
Тинькофф-журнал

Бэкендер в маркетинговое направление Т⁠—⁠Ж

Вознаграждение:
70 000

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

Вова Лазарев
руководитель разработки
Разработка
Опыт:
От 3 до 6 лет
Тип контракта:
Фулл-тайм
Локация:
🇷🇺
Москва
ЗП:
Не указано
Django
FastAPI
Docker
Kubernetes
REST
Redis

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

  • наращиваем базы рассылок, чтобы пользователи не пропускали интересующие их материалы;
  • подталкиваем делиться материалами, чтобы окружение читателя тоже становилось финансово грамотнее;
  • разрабатываем мобильное приложение под iOS и Android;
  • выпускаем платные и бесплатные образовательные курсы;
  • ищем новые пути монетизации, чтобы были ресурсы на новые направления.

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

Что по технологиям

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

У нас настроены пайплайны на Gitlab CI, в которых запускаются MyPy, Flake, Black и тесты на PyTest. Сервисы на FastAPI в тех же пайплайнах собираются в Docker и деплоятся с помощью ArgoCD в Google Kubernetes Engine. Django-сервисы деплоим руками.

Базы — Redis и Postgres. Для сервисов на Django Postgres разворачиваем и поддерживаем сами. Под FastAPI развернут Google CloudSQL. Redis хостим сами, но ради эксперимента в паре мест тоже подключили облачный.

Клиенты общаются с сервисами по REST, используем спецификацию OpenAPI, в шаблоне типового проекта подрублен Swagger. Сервисы между собой местами общаются так же, но мы переводим это на асинхронную архитектуру. В качестве брокера используем Google Pub/Sub.

Как там в команде

Разработчики в журнале совмещают работу в продуктовой подкоманде и в технической команде.

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

В технической команде — кросс-ревью до двух лайков. Сами реквесты равномерно разбрасываем между всеми бэкендерами независимо от продуктовой команды. Раз в пару недель мы созваниваемся на час, чтобы обсудить чисто бэкендерские штуки: большие изменения в архитектуре, какие у кого новости или открытия, как улучшить процессы или инструменты. Раз в день-два пишем стендапы, чтобы быть в контексте разных направлений и вовремя прийти на помощь. Всего в команде 10 бэкендеров, 15 фронтендеров/JS-фулстеков, 4 мобильщика — RN-фулстеки, 3 тестировщика, пара менеджеров и DevOps/SRE-инженер.

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

С чего начнем

Ближайшие задачи, которые предложу:

  1. Провести аудит реализованных маркетинговых механик. В движке есть уже реализованные механики — стоит посмотреть, сломаны они или работают, что имеет смысл вытащить в отдельный сервис персонализации и развивать, а что можно удалить из кодовой базы и не пытаться поддерживать дальше.
  2. Оживить сценарии показов баннеров. Оживить, потому что, это скорее всего в каком-то виде уже реализовано в старом движке. Но сейчас этим не пользуются: баннеры ставят в материалы вручную, в подвале с рекомендациями в конце статьи он тоже всегда один и тот же. Это бесит пользователей, а мы недосчитываемся целевых действий.
  3. Улучшить почтовые коммуникации: сделать управление подписками на странице всех рассылок, улучшить синхронизацию пользователей журнала со служебными пользователями майндбокса, попробовать реализовать amp-механики вроде «сохранять статью в закладки не выходя из письма».

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

Чего ожидаю от кандидата

Из хардов будет тяжеловато без:

  1. Владения Python и современным фреймворком веб-разработки на его основе.
  2. Опыта разработки REST API, использования спецификации OpenAPI.
  3. Опыта работы с Postgres и Redis.
  4. Опыта написания unit-тестов.
  5. Знания основ веб-архитектуры: клиент-серверного взаимодействия, особенностей синхронной и асинхронной работы и далее по списку.
  6. Умения спроектировать MVP сервиса на знакомых технологиях по требованиям бизнеса и спланировать его масштабирование в случае наплыва пользователей.

Будет плюсом, если знаете паттерны проектирования: синглтон, адаптер и другие. Будет большим плюсом, если ковыряли Kubernetes.

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

Показать полностью

Рекомендовать

Загружаем...
fileuploaded.jpg
Upload failed. Max size for files is 10 MB.
Вознаграждение:
70000
Рекомендация успешно отправлена.
В течение несколько дней мы свяжемся с кандидатом и представим его компании.
Что-то пошло не так. Попробуйте перезагрузить страницу и заново заполнить форму.
Загружаем...
fileuploaded.jpg
Upload failed. Max size for files is 10 MB.
Вознаграждение:
70000
Отклик получен. Мы уже передали его компании. Как только будет результат, мы с вами свяжемся :)
Oops! Something went wrong while submitting the form.
Загружаем...
fileuploaded.jpg
Upload failed. Max size for files is 10 MB.
Вознаграждение:
70000
Рекомендация успешно отправлена.
В течение несколько дней мы свяжемся с кандидатом и представим его компании.
Что-то пошло не так. Попробуйте перезагрузить страницу и заново заполнить форму.
Загружаем...
fileuploaded.jpg
Upload failed. Max size for files is 10 MB.
Вознаграждение:
70000
Отклик получен. Мы уже передали его компании. Как только будет результат, мы с вами свяжемся :)
Oops! Something went wrong while submitting the form.
Разработка

Бэкендер в маркетинговое направление Т⁠—⁠Ж

Опыт:
От 3 до 6 лет
Тип контракта:
Фулл-тайм
Локация:
🇷🇺
Москва
ЗП:
Не указано
Теги
Django
FastAPI
Docker
Kubernetes
REST
Redis

Привет! Шесть лет Т⁠—⁠Ж работает для того, чтобы люди разумно относились к деньгам, вдохновлялись на финансовые подвиги и просто не скучали. Мы начали с небольшого блога, а сейчас это самый большой журнал про деньги в России, который читают 16 миллионов человек в месяц. Чтобы быть еще круче, нам постоянно нужны новые люди: редакторы, менеджеры, разработчики, дизайнеры.

Вознаграждение:
70 000
Рекомендовать

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

Вова Лазарев
руководитель разработки

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

  • наращиваем базы рассылок, чтобы пользователи не пропускали интересующие их материалы;
  • подталкиваем делиться материалами, чтобы окружение читателя тоже становилось финансово грамотнее;
  • разрабатываем мобильное приложение под iOS и Android;
  • выпускаем платные и бесплатные образовательные курсы;
  • ищем новые пути монетизации, чтобы были ресурсы на новые направления.

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

Что по технологиям

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

У нас настроены пайплайны на Gitlab CI, в которых запускаются MyPy, Flake, Black и тесты на PyTest. Сервисы на FastAPI в тех же пайплайнах собираются в Docker и деплоятся с помощью ArgoCD в Google Kubernetes Engine. Django-сервисы деплоим руками.

Базы — Redis и Postgres. Для сервисов на Django Postgres разворачиваем и поддерживаем сами. Под FastAPI развернут Google CloudSQL. Redis хостим сами, но ради эксперимента в паре мест тоже подключили облачный.

Клиенты общаются с сервисами по REST, используем спецификацию OpenAPI, в шаблоне типового проекта подрублен Swagger. Сервисы между собой местами общаются так же, но мы переводим это на асинхронную архитектуру. В качестве брокера используем Google Pub/Sub.

Как там в команде

Разработчики в журнале совмещают работу в продуктовой подкоманде и в технической команде.

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

В технической команде — кросс-ревью до двух лайков. Сами реквесты равномерно разбрасываем между всеми бэкендерами независимо от продуктовой команды. Раз в пару недель мы созваниваемся на час, чтобы обсудить чисто бэкендерские штуки: большие изменения в архитектуре, какие у кого новости или открытия, как улучшить процессы или инструменты. Раз в день-два пишем стендапы, чтобы быть в контексте разных направлений и вовремя прийти на помощь. Всего в команде 10 бэкендеров, 15 фронтендеров/JS-фулстеков, 4 мобильщика — RN-фулстеки, 3 тестировщика, пара менеджеров и DevOps/SRE-инженер.

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

С чего начнем

Ближайшие задачи, которые предложу:

  1. Провести аудит реализованных маркетинговых механик. В движке есть уже реализованные механики — стоит посмотреть, сломаны они или работают, что имеет смысл вытащить в отдельный сервис персонализации и развивать, а что можно удалить из кодовой базы и не пытаться поддерживать дальше.
  2. Оживить сценарии показов баннеров. Оживить, потому что, это скорее всего в каком-то виде уже реализовано в старом движке. Но сейчас этим не пользуются: баннеры ставят в материалы вручную, в подвале с рекомендациями в конце статьи он тоже всегда один и тот же. Это бесит пользователей, а мы недосчитываемся целевых действий.
  3. Улучшить почтовые коммуникации: сделать управление подписками на странице всех рассылок, улучшить синхронизацию пользователей журнала со служебными пользователями майндбокса, попробовать реализовать amp-механики вроде «сохранять статью в закладки не выходя из письма».

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

Чего ожидаю от кандидата

Из хардов будет тяжеловато без:

  1. Владения Python и современным фреймворком веб-разработки на его основе.
  2. Опыта разработки REST API, использования спецификации OpenAPI.
  3. Опыта работы с Postgres и Redis.
  4. Опыта написания unit-тестов.
  5. Знания основ веб-архитектуры: клиент-серверного взаимодействия, особенностей синхронной и асинхронной работы и далее по списку.
  6. Умения спроектировать MVP сервиса на знакомых технологиях по требованиям бизнеса и спланировать его масштабирование в случае наплыва пользователей.

Будет плюсом, если знаете паттерны проектирования: синглтон, адаптер и другие. Будет большим плюсом, если ковыряли Kubernetes.

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

Вакансия