Как стать автором
Обновить
28.56
Рейтинг
IT-People
Приходите к нам учиться, работать и отдыхать!

Python-культура в российских IT-компаниях. Часть 1: Тинькофф

Блог компании IT-People Python *Конференции

Почему разработчик принимает оффер одной компании и отвергает другой? Глобальный ежегодный опрос Stack Overflow 2020 года показал, что самые важные факторы выбора работы - это языки/ фреймворки/ технологии, на которых предстоит работать, и офисная среда/ корпоративная культура. Помимо вознаграждения, само собой.

Мы расспросили разработчиков и их руководителей о python-разработке. И в серии статей расскажем: как устроена “внутренняя кухня” разработки, проектов и продуктов, как компании адаптируют новичков, и какие мотивы были у опытных разработчиков, когда они делали выбор в пользу своего текущего места работы.

Первый в очереди - Тинькофф.

Митапы, как часть корпоративной культуры
Митапы, как часть корпоративной культуры

Какие проекты и продукты вы делаете на Python? Как они меняют жизнь коллег и клиентов? Расскажи об open-source проектах

Евгений Афонасьев

Руководитель отдела разработки в инфраструктуре

Евгений Афонасьев: В Тинькофф множество разных проектов на Python. Например, сейчас мы разрабатываем IaaS-сервисы (Infrastructure as a Service) на базе экосистемы OpenStack. Они помогают предоставлять ресурсы инфраструктуры продуктовым командам. Мы делаем и будем делать такие сервисы как Database as a Sevice, S3 as a Service, etc. В рамках каждого разрабатываем production-ready решения с максимальной степенью автоматизации и удобным пользовательским интерфейсом.

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

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

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

Учебная платформа Тинькофф
Учебная платформа Тинькофф

Множество ML-сервисов, ETL, аналитика, автоматизация тестирования, DevOps и многое другое делается с использованием Python. Так что можно смело сказать, что он проник почти во все сферы нашей деятельности.

Все open-source проекты есть на Гитхабе. Из последних Рython-проектов хочу выделить веб-фреймворк для автоматизации тестирования по BDD с применением Flask-Admin и Pydantic. Кстати, про него на конференции PyCon расскажет Влад Мухаматнуров, ведущий инженер по автоматизированному тестированию диалоговых систем Тинькофф.

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

Расскажи о стеке технологий, на котором вы работаете

Евгений Афонасьев: Не могу говорить за все команды, но в среднем стек довольно стандартный. Большая часть проектов — с использованием Flask и Django. Последний год популярность набирает FastApi, и много новых проектов запускаются сразу на нем. Есть проекты почти на всех популярных фреймворках, но тех, что я перечислил выше, — большинство. Я планирую собрать техрадар, чтобы иметь более четкую картину. 

У нас много любителей SQLAlchemy, разработчики активно используют NumPy, pandas и другие библиотеки и инструменты.

Дефолтная система управления базами данных — Postgres. PostgreSQL, Redis, Kafka чаще всего встречаются в Рython-проектах, с которыми мне доводилось сталкиваться. Есть, конечно, и много более специализированных решений — например, Elasticsearch, ClickHouse, MongoDB.

С деплоем сервисов подавляющая часть разворачивается в Kubernetes или Rancher. CI/CD-процессы — в Gitlab. 

В моем текущем проекте мы используем FastApi/Django, PostgreSQL, Redis. Деплоимся как в куб, так и на отдельные виртуалки — в зависимости от проекта и требований к нему.

Что происходит с новичком-джуном, когда он попадает в вашу команду? Как происходит адаптация? Кто его менторит? Как быстро и за счет чего он погружается в работу?

Работа в офисе до пандемии
Работа в офисе до пандемии
Павел Проничев

Тимлид команды разработки образовательной платформы

Павел Проничев: У меня микрокоманда. Поэтому джун попадает под мое управление и менторство.

Адаптация проходит, как правило, так:

  • сначала рассказываю про бизнес и проект;

  • потом — верхнеуровнево про взаимодействие систем внутри проекта;

  • затем я устаю от непривычно долгого говорения и отправляю джуна настраивать окружение и запускать проект локально. Это первая его задача;

  • когда проект настроен, я рассказываю в общем, как устроена уже наша система.

После этого джун переходит из активного менторства в режим пассивного. Новый сотрудник приходит с вопросами — и либо получает ответ, либо идет разбираться сам, если ментор считает, что ему по силам и полезнее разобраться самому.

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

Денис Катаев

Руководитель отдела разработки диалоговых систем

Денис Катаев: Мы назначаем новичку ментора. Главное, что требуется от джуна, — смотреть код и задавать вопросы. По вопросам мы понимаем уровень его погружения.

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

Как вы понимаете, что сработались с джуном? И как быстро это происходит?

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

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

Взаимодействие с ментором - постоянный спутник адаптации джуна
Взаимодействие с ментором - постоянный спутник адаптации джуна

Почему мидлы выбирают Тинькофф?

Валерий Моисеев, инженер по автоматизированному тестированию платформы обработки данных: 

В компании я работаю с 18 июня 2021 года. С точки зрения знаний я Middle Automation QA. И в Тинькофф меня классифицировали так же.

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

На конференции QA Crew я узнал о Никите Макарове, который руководит автоматизацией тестирования в Тинькофф. А после смотрел эфиры с ним и другими людьми, слушал Podlodka Podcast. Смотрел выступления Алексея Лапаева, Руководителя QA Мобильного банка Тинькофф.

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

Тем не менее я продолжал держать Тинькофф в поле зрения. Смотрел публичные собеседования Никиты. Слушал доклады про особенности обеспечения качества в Тинькофф: про релизы, откаты, тестирование в проде, дата-центры. И решил, что работать в Тинькофф круто и интересно.

На конференциях я слышал вопросы других QA, которые давали мне больше информации о компании и проблемах. А еще общался с ребятами из QA и других специальностей Тинькофф — и все были крайне довольны. У компании хороший HR-бренд, и статьи на Хабре интересные.До того как прийти в Тинькофф, я общался с другими работодателями: Сбербанком Беспилотниками, X5 Retail Group, ВТБ. В процессе рекрутинга меня смущало, когда:

— на собеседовании не было QA/AQA, только разработчики. У нас с ними разные задачи и зоны ответственности;

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

— решать задачи нужно с первой минуты собеседования;

— дают лишь одну простую задачу, например на нахождение факториала рекуррентным способом, или не дают задач вообще.

В Тинькофф было больше всего этапов:

  1. HR и неожиданный скрининг по Python.

  2. Задачи для Full Stack QA.

  3. Задачи для Automation QA.

  4. Финальное собеседование.

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

Именно в Тинькофф мне задали больше всего вопросов по Python. Это позволило мне раскрыть больше своих знаний по разным категориям.

Что python-разработчик получает у вас, кроме задач, зарплаты и печенек? В чем он прокачивается?

Евгений Афонасьев:

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

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

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

Что ты понимаешь под Python-культурой и как это выглядит в вашей компании?

Евгений Афонасьев:

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

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

Не так давно мы начали формировать Профессии (aka Гильдии) по разным направлениям, в том числе и по Python-разработке. В Профессиях мы выстроили общий процесс собеседований по направлению Python, сформировали общие процессы внутренней оценки и развития разработчиков, разрабатываем общие рекомендации, инструменты и библиотеки для разработки. Надеюсь, что-то мы сможем показать в будущем в open-source проектах от нашего комьюнити.

Мы активно подготавливаем спикеров, что заметно по программе грядущей конференции PyCon. Все доклады читаем и для сотрудников внутри компании. 

Денис Катаев на PyCon Russia 2019
Денис Катаев на PyCon Russia 2019

У нас много планов по развитию Профессии Python-разработки. Все активности делаем силами комьюнити — людей, заинтересованных в общем деле и собственном развитии. Есть «лидеры» направлений — это не выделенная должность, а роль, которую может взять на себя любой. Мы стараемся максимально поощрять участие в развитии сообщества.

Сейчас мы стоим на первой ступеньке длинной дороги по выстраиванию зрелого внутреннего комьюнити. Но тем интереснее пройти этот путь и быть участником этого процесса.


На PyCon Russia будет несколько тем от Тинькофф:

  • Внедрение зависимостей, контейнеры и прочие проявления SOLID в питоне. Как жить на большом проекте (Александр Шибаев)

  • Кеширование — делаем всё правильно (Данил Ахтаров)

  • Python и метрики. Мониторинг наше всё (Антон Палий)

  • ETNA Time Series Library: удобное прогнозирование временных рядов (Андрей Алексеев)

Тезисы этих докладов и полную программу смотрите на сайте PyCon Russia

И присоединяйтесь к чату участников конференции.

Теги: pythonpython3stack overflowstack технологийgilкешированиеsolidвременные рядыetna
Хабы: Блог компании IT-People Python Конференции
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 1
Комментарии Комментарии 1

Похожие публикации

Лучшие публикации за сутки

Информация

Дата основания
Местоположение
Россия
Сайт
it-people.ru
Численность
2–10 человек
Дата регистрации

Блог на Хабре