Бэкендер в интерактивы Т⁠—⁠Ж (удаленная работа)
(вакансия в архиве)

21 апреля 2021

Уровень зарплаты:
з.п. не указана
Требуемый опыт работы:
Не указан

Вакансия: Бэкендер в интерактивы Т⁠—⁠Ж

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


Нас читают 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. Другим навыкам, которых вам будет недоставать для работы. Есть возможность поучиться на курсах или послушать конференции за счет компании.

Условия работы


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


  1. На фултайм-удаленку на время пандемии. Дальше можно будет чередовать с офисом в вашем городе или остаться на удаленке.

  2. Помощь в переезде в Москву или в город, где у нас есть офис разработки.

  3. Гибкий график. Главное — побольше времени пересекаться с остальной командой.

  4. Рабочий MacBook Pro.

  5. ДМС после испытательного.

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

Ключевые навыки:
Бэкенд Средний (Middle) Python FastAPI PostgreSQL Restful api Redis Архитектура системы Веб-разработка OpenAPI Specification