Привет! Меня зовут Вова, я руковожу разработкой Тинькофф-помощи. Ищу себе в помощь опытного бэкендера.

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

Ценность нашей работы — в двух вещах:

  1. Снижаем нагрузку на поддержку, потому что на популярные вопросы клиент может найти ответ самостоятельно.
  2. Помогаем продавать карты, счета и другие финансовые продукты Тинькофф в интернете.

До недавнего времени нашим основным сайтом был help.tinkoff.ru. Летом мы запустили страницы на tinkoff.ru на собственных технологиях. Теперь мигрируем туда контент, наращиваем функциональность и интегрируем с другими продуктами.

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

На бэкенде у Тинькофф-помощи два сервиса: старый и новый. Старый написан на Django — мы его поддерживаем с перспективой погасить в этом квартале. Новый, на FastAPI, активно дорабатываем. В новый сервис затащили еще и SQLAlchemy. Базы — Redis и Postgres. Postgres используется из Google CloudSQL. Redis хостим сами, но соседняя команда экспериментирует с облачным. Метрики собираем в Prometheus и настраиваем дашборды в Grafana.

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

Клиенты общаются с сервисами по REST, для удобства подрубили Swagger. С сервисами других команд общаемся так же.

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

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

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

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

Какие задачи

Вот как будем развивать продукт в ближайшее время:

  1. Перевезти оставшийся контент с help.tinkoff.ru на tinkoff.ru/help — мигрируем данные в новую структуру. Помочь с переносом в базах и сделать доработки, если возникнуть требующие их случаи.
  2. Интегрировать помощь с сервисом персонализации, чтобы проводить A/B-тестирования страниц.
  3. Запустить формы обратной связи.
  4. Начать собирать больше данных, чтобы улучшать продукт. Научиться классифицировать их для передачи заказчикам.
  5. Интегрировать помощь с мобильным приложением Тинькофф, чтобы отображать там свои страницы и индексировать их в местном поиске.

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

Вакансия для опытных специалистов

Если вы только что окончили «Эльбрус-буткемп», «Яндекс-практикум» или другую образовательную программу, предлагаю подать заявку на стажировку в Тинькофф.

Идеальный кандидат:

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

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

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

Если претендуете на роль тимлида

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

В списке задач тогда тоже прибудет. У нас роль тимлида предполагает, что он:

  1. Систематически улучшает работу команды: выделяет проблемы, пробует их решать, рефлексирует, отказывается от нерабочих решений.
  2. Берет на себя некую рутину: помогает бизнесу принимать решения, проводит встречи 1-1 с сотрудниками и вот это все.

Что предлагаю взамен

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

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

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

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

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

Как откликнуться

Чтобы обсудить вакансию, пишите на почту или в телеграм. Лучше начать с короткого рассказа о себе и ссылок на примеры кода.