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

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

Команда

Вова Лазарев

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

Юлия Щербакова

тимлид тестирования

Руслан Белый

разрабатывает Бизнес-секреты

Что предлагаем

Коллега, обращаем ваше внимание

Независимо от должности мы предлагаем:

  1. Достойную белую зарплату.
  2. Все ресурсы для реализации идей.
  3. Уютный опенспейс на «Динамо» (и возможность работать удаленно).
  4. Модную лимитированную худи с логотипом Т⁠—⁠Ж после испытательного.
  5. Удивительных коллег. Почитайте, как круто у нас работать.

Открытые вакансии с вознаграждением

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

Бизнес-секреты — медиа, которое помогает предпринимателям и клиентам Тинькофф делать их бизнес сильнее. Наша задача на 2022 год — встать у предпринимателей в один ряд с крупными изданиями, которые те читают: Т⁠—⁠Ж, vc.ru, Forbes.

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

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

Под капотом у сайта — «Вордпресс». Он позволил нам за месяц начать выпускать материалы, получать первые реакции пользователей и решать задачи бизнеса. Сейчас хотим эволюционно от него избавиться: сначала использовать как Headless CMS для управления контентом, а потом съехать на собственную разработку. Делаем так, потому что проект получает трафик и бизнес хочет его быстро развивать, а мы уже видим границы возможностей «Вордпресса». Альтернатива в виде полного переписывания и переключения не подходит, потому что требует реализовывать фичи дважды и больно переключаться в конце — так все, наоборот, растянется.

Сейчас оборачиваем «Вордпресс» в Docker-контейнер и начинаем обращаться к нему по REST API — как к обычному бэкенду. Писать на PHP не придется: новую функциональность мы будем реализовывать в микросервисах. Сами микросервисы будем пилить на связке Node.js, NestJS и TypeScript. В качестве базы — Postgres, для кэшей — Redis.

Фронт нам точно потребуется отрисовывать на сервере, потому что для медиа важно индексирование контента. Поэтому фронт будет запрятан за прослойкой на Node.js. Для самих приложений есть два внутренних SSR-фреймворка на TypeScript, React и Redux. Мы напишем прототипы на обоих и после этого решим, на какой проще и перспективнее съехать.

Для всего этого есть готовые шаблоны приложений и инфраструктура соседних команд: Тинькофф-журнала и Тинькофф-помощи. Достаточно клонировать репозиторий с Gitlab, поправить пару конфигов — и будет доступна локальная разработка, автоматизированная сборка в пайплайнах, деплой в Google Kubernetes Engine и другие ништяки.

Что будем делать

Глобальная цель — вырастить Бизнес-секреты из блога в медиа: со своими личными кабинетами, пользовательским контентом, сообществом, школой бизнеса и остальным обвесом.

Прямо сейчас мы редизайним сайт: улучшаем пользовательский опыт и меняем образ под целевую аудиторию.

Как будет выглядеть сайт после редизайна

Как будет выглядеть сайт после редизайна

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

После этого возьмемся за школу бизнеса. Мы уже запустили текстовые курсы для начинающих предпринимателей: «Как открыть ИП и начать бизнес», «Как зарабатывать на госзакупках», «Как получать и платить в валюте». Теперь хотим их объединить под одним образовательным продуктом.

Как всё это сделаем, определим очередную веху вместе с продактом.

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

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

  1. Навыка кросс-браузерной адаптивной верстки. Ориентируемся на последние браузеры. Можно не Pixel Perfect.
  2. Знания основ JavaScript: функции, асинхронность, как код работает в браузере.
  3. Опыта работы с нашим стеком: TypeScript, React, Redux, Node.js, Express, NestJS Redis и Postgres — лучше, чтобы сталкивались хотя бы с половиной инструментов.
  4. Умения собрать проект с помощью Webpack и завернуть в Docker.
  5. Знания основ веб-архитектуры: клиент-серверное взаимодействие, синхронность и асинхронность, микросервисы и так далее.
  6. Умения спроектировать MVP сервиса по бизнес-требованиям и спланировать его масштабирование в случае наплыва пользователей.

Будет большим плюсом, если трогали Kubernetes.

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

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

Можно рассчитывать на:

  1. Белую зарплату раз в месяц по договору. По возможности переведем в штат с соцпакетом.
  2. Гибкий график. Главное — побольше времени пересекаться с остальной командой.
  3. Удаленную работу. По желанию можно приезжать в наш офис в семи минутах от «Динамо» или в офисы Тинькофф в других городах.

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

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

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

Фулстек в Бизнес-секреты

Награда:

70 000

Тинькофф-журнал, или Т⁠—⁠Ж, — главное русскоязычное издание про деньги. В июле наш сайт читали 16 миллионов человек. Мы выпускаем: материалы разных форматов, курсы в Учебнике, калькуляторы и прочие интерактивы, тесты и мобильное приложение под iOS и Android.

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

Оба проекта поддерживает одна команда тестирования.

Что под капотом

В журнале несколько десятков бэкенд-сервисов на Python и с десяток — на Node.JS. Движок журнала использует Django и активно мигрирует на FastAPI. Другой крупный сервис, соцплатформа, тоже на Django и мигрировать не планирует. Учебник и остальные бэкенды — уже на FastAPI. На Node.JS работает бэкенд мобильного приложения, нескольких интерактивов и server side rendering прослойки перед фронтендом.

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

Фронтенд пишем на React и TypeScript, сервисы взаимодействуют по REST. Модульных и интеграционных тестов там гораздо меньше относительно бекендных. Но команда тестирования пишет end-to-end тесты, чтобы сократить ручные проверки. Делаем это на TypeScript и самописном фреймворке, основанном на WebDriverIO.

Как тестируем

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

Протестированные задачи сливаются из фича-веток в мастер-ветку проекта. Дальше тестировщик дает отмашку на релиз. Сама выкатка автоматизирована, но на всякий случай ее все равно сопровождает кто-то из разработки.

Кто в команде

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

Какие задачи

Предлагаю заняться вот чем:

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

Что с вас

Знания и навыки, без которых будет тяжело:

  1. Опыт работы с Github или Gitlab, понимание git и git-flow.
  2. Понимание REST API, опыт его автоматизации и тестирования через Curl, Postman или Swagger.
  3. Знакомство с Allure TestOps или аналогами.
  4. Знание основ JavaScript или Python.

Что с нас

На что можно рассчитывать:

  1. Белая зарплата раз в месяц по договору. По возможности переведем в штат с соцпакетом.
  2. Гибкий график. Главное — побольше времени пересекаться с остальной командой.
  3. Удаленная работа. По желанию можно приезжать и в наш офис в семи минутах от «Динамо» или другие офисы Тинькофф.
  4. Модная лимитированная худи с логотипом Т⁠—⁠Ж с очередной партии.
  5. Добровольное участие в материалах о сотрудниках журнала.

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

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

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

Тестировщик в медиапроекты

Награда:

70 000

Тинькофф-журнал — главное русскоязычное издание про деньги. В июле наш сайт читали 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.

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

Тинькофф-журнал
🇷🇺
Тинькофф-журнал
🇷🇺
Москва

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

Награда:

70 000

Технологии
Allure
JavaScript
Swagger
Redux
NestJS
FastAPI
Gitlab
Django
PostgreSQL
Node.js
Kubernetes
Typescript
React
REST
Redis
Нет вашей компании? Добавьте вакансии с вознаграждением, и получайте рекомендованных специалистов.