Вакансия: бэкендер в интерактивы Т⁠—⁠Ж (закрыта)

Аватар автора

Вова Лазарев

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

Страница автора

Т⁠—⁠Ж — главное русскоязычное издание про деньги.

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

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

Как это устроено

На фронте интерактивы — отдельные js-приложения, которые движок встраивает в страницы журнала. Они грузятся бандлами в рантайме. Пишем их на TypeScript, React и Redux. С клиентской части интерактивы ходят по REST API в собственные сервисы.

Сервисы интерактивов написаны на Python и FastAPI. На этом же стеке мы планируем заводить новые бэкенды. Чтобы закрыть часть задач, придется коммитить и в другие сервисы журнала. Они тоже написаны на Python: новые — на FastAPI, старые — на Django. Для тестов используем Pytest.

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

У нас настроен CI/CD на Gitlab и ArgoCD — приложения пакуем в Docker и разворачиваем в Google Kubernetes Engine. В качестве базы используем облачный Postgres. Для кэширования обычно разворачиваем в контейнерах Redis.

Кто в команде

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

В технической команде журнала 36 человек, из них 11 — бэкендеры. У нас принято код-ревью до двух лайков. Сами реквесты равномерно разбрасываем между всеми бэкендерами независимо от продуктовой команды. А еще мы покрываем код тестами, прикрутили в пайплайны линтеры и форматирование блэком.

Какие планы

Ближайшие задачи на бэкенд интерактивов:

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

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

Что ожидаем от кандидата

Помогут справиться с нашими задачами:

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

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

Как помогаем расти

Чему при желании у нас можно научиться:

  1. Выращивать стажеров и делегировать им задачи. Несколько раз в год набираем студентов Физтеха, Вышки, Бауманки, МГУ и других вузов с неплохими техническими программами.
  2. Смежным с работой софт- и хард-скиллам. В Т⁠-⁠Банке развитая система внутренних тренингов: от безопасности веб-приложений до поиска баланса между работой и личной жизнью.
  3. Писать статьи на «Хабр» и «Медиум», выступать с докладами на митапах и конференциях. В этом помогут наши редакторы, HR и DevRel: подобрать тему, собрать материал, подготовиться и опубликоваться или выступить.
  4. Другим навыкам, которых вам будет недоставать для работы. Есть возможность поучиться на курсах или послушать конференции за счет компании.

Офис в Москве

Офис на втором этаже SOK Arena Park. Идти семь минут от м. «Динамо»
На кухне — неплохая кофемашина, микроволновки, холодильники и очиститель воды
На этаже две переговорки с плазмами и оборудованием для видеосвязи
Рабочее пространство — опенспейс, но мы не мешаем друг другу

Условия

Кроме белой зарплаты рассчитывайте:

  1. На фултайм-удаленку на время пандемии. Дальше можно будет чередовать с офисом в вашем городе или остаться на удаленке.
  2. Помощь в переезде в Москву или в город, где у нас есть офис разработки.
  3. Гибкий график. Главное — побольше времени пересекаться с остальной командой.
  4. Рабочий MacBook Pro.
  5. ДМС после испытательного.
  6. Модную лимитированную худи с логотипом Т⁠—⁠Ж после испытательного.
  7. Добровольное участие в материалах о сотрудниках журнала.

Чтобы обсудить вакансию, пишите на v.k.lazarev@tinkoff.ru или в Телеграм.

Актуальное
Вот что еще мы писали по этой теме

заголовок discussed

Психолог объясняет: какие психологические установки мешают достичь финансового благополучия

Психолог объясняет: какие психологические установки мешают достичь финансового благополучия

7
Тестовая анкета 17 декабря

Тестовая анкета 17 декабря

5
autotest-title096f6fea-ba44-4663-a12a-2907f423628f

autotest-title096f6fea-ba44-4663-a12a-2907f423628f

2
autotest-title678285bd-8273-4a14-b9f6-541c3595685a

autotest-title678285bd-8273-4a14-b9f6-541c3595685a

2
заголовок readers-post-gallery