Почему разработчик принимает оффер одной компании и отвергает другой? Глобальный ежегодный опрос Stack Overflow 2020 года показал, что самые важные факторы выбора работы - это языки/ фреймворки/ технологии, на которых предстоит работать, и офисная среда/ корпоративная культура. Помимо вознаграждения, само собой.
Мы расспросили разработчиков и их руководителей о python-разработке. И в серии статей расскажем: как устроена “внутренняя кухня” разработки, проектов и продуктов, как компании адаптируют новичков, и какие мотивы были у опытных разработчиков, когда они делали выбор в пользу своего текущего места работы.
Первый в очереди - Тинькофф.
Митапы, как часть корпоративной культуры
Евгений Афонасьев: В Тинькофф множество разных проектов на 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. Поэтому одна из наших ближайших целей — выстроить более удобный процесс для такой активности. У наших команд есть много отличных наработок, которые могут, как я считаю, принести пользу сообществу.
У нас много любителей 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 минут нужно было написать автотесты на специфичную базу, с которой никогда я не работал. При этом на уточняющие вопросы отвечали неохотно;
— решать задачи нужно с первой минуты собеседования;
— дают лишь одну простую задачу, например на нахождение факториала рекуррентным способом, или не дают задач вообще.
В Тинькофф было больше всего этапов:
Именно в Тинькофф мне задали больше всего вопросов по Python. Это позволило мне раскрыть больше своих знаний по разным категориям.
Евгений Афонасьев:
Как это ни банально, разработчики получают интересные проекты. Многими из них мы сами пользуемся как клиенты Тинькофф. А еще у них есть доступ к экспертам в разных областях, не только в разработке. У этих специалистов можно многому научиться. В наших проектах разработчики получают опыт построения надежных и отказоустойчивых систем, проектирования микросервисов и высоконагруженных сервисов.
Другой важный бонус — возможность оказывать влияние на продукты, которые мы разрабатываем. Не только в технической, но и продуктовой части. Наши процессы и тесное взаимодействие между специалистами разных профилей дают хорошее понимание не только в области разработки, но и в смежных.
Ну и команда. Открытость, умение учиться, желание слушать и договариваться — характерные признаки людей, с которыми мне довелось работать. В Тинькофф есть здоровый дух гонки за достижениями. Мы ставим амбициозные цели и не боимся рисковать, а большой вклад в общее дело всегда замечают и поощряют.
Под культурой я понимаю общность практик, процессов и традиций между всеми разработчиками. Общую схему оценки уровня сотрудников и результатов. Общее информационное пространство для накопления знаний, обмена мнениями и лучшими практиками разработки. Это то, к чему мы стремимся.
Долгое время наша культура развивалась только внутри команд. Везде немного самобытная, со своими устоявшимися правилами. Мы хотим перейти на следующий шаг к общей культуре между всеми пользователями языка Python.
Не так давно мы начали формировать Профессии (aka Гильдии) по разным направлениям, в том числе и по Python-разработке. В Профессиях мы выстроили общий процесс собеседований по направлению Python, сформировали общие процессы внутренней оценки и развития разработчиков, разрабатываем общие рекомендации, инструменты и библиотеки для разработки. Надеюсь, что-то мы сможем показать в будущем в open-source проектах от нашего комьюнити.
Мы активно подготавливаем спикеров, что заметно по программе грядущей конференции PyCon. Все доклады читаем и для сотрудников внутри компаниДенис Катаев на PyCon Russia 2019
У нас много планов по развитию Профессии Python-разработки. Все активности делаем силами комьюнити — людей, заинтересованных в общем деле и собственном развитии. Есть «лидеры» направлений — это не выделенная должность, а роль, которую может взять на себя любой. Мы стараемся максимально поощрять участие в развитии сообщества.
Сейчас мы стоим на первой ступеньке длинной дороги по выстраиванию зрелого внутреннего комьюнити. Но тем интереснее пройти этот путь и быть участником этого процесса.
Мы расспросили разработчиков и их руководителей о 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 минут нужно было написать автотесты на специфичную базу, с которой никогда я не работал. При этом на уточняющие вопросы отвечали неохотно;
— решать задачи нужно с первой минуты собеседования;
— дают лишь одну простую задачу, например на нахождение факториала рекуррентным способом, или не дают задач вообще.
В Тинькофф было больше всего этапов:
- HR и неожиданный скрининг по Python.
- Задачи для Full Stack QA.
- Задачи для Automation QA.
- Финальное собеседование.
Именно в Тинькофф мне задали больше всего вопросов по Python. Это позволило мне раскрыть больше своих знаний по разным категориям.
Что python-разработчик получает у вас, кроме задач, зарплаты и печенек? В чем он прокачивается?
Евгений Афонасьев:
Как это ни банально, разработчики получают интересные проекты. Многими из них мы сами пользуемся как клиенты Тинькофф. А еще у них есть доступ к экспертам в разных областях, не только в разработке. У этих специалистов можно многому научиться. В наших проектах разработчики получают опыт построения надежных и отказоустойчивых систем, проектирования микросервисов и высоконагруженных сервисов.
Другой важный бонус — возможность оказывать влияние на продукты, которые мы разрабатываем. Не только в технической, но и продуктовой части. Наши процессы и тесное взаимодействие между специалистами разных профилей дают хорошее понимание не только в области разработки, но и в смежных.
Ну и команда. Открытость, умение учиться, желание слушать и договариваться — характерные признаки людей, с которыми мне довелось работать. В Тинькофф есть здоровый дух гонки за достижениями. Мы ставим амбициозные цели и не боимся рисковать, а большой вклад в общее дело всегда замечают и поощряют.
Что ты понимаешь под Python-культурой и как это выглядит в вашей компании?
Евгений Афонасьев:Под культурой я понимаю общность практик, процессов и традиций между всеми разработчиками. Общую схему оценки уровня сотрудников и результатов. Общее информационное пространство для накопления знаний, обмена мнениями и лучшими практиками разработки. Это то, к чему мы стремимся.
Долгое время наша культура развивалась только внутри команд. Везде немного самобытная, со своими устоявшимися правилами. Мы хотим перейти на следующий шаг к общей культуре между всеми пользователями языка Python.
Не так давно мы начали формировать Профессии (aka Гильдии) по разным направлениям, в том числе и по Python-разработке. В Профессиях мы выстроили общий процесс собеседований по направлению Python, сформировали общие процессы внутренней оценки и развития разработчиков, разрабатываем общие рекомендации, инструменты и библиотеки для разработки. Надеюсь, что-то мы сможем показать в будущем в open-source проектах от нашего комьюнити.
Мы активно подготавливаем спикеров, что заметно по программе грядущей конференции PyCon. Все доклады читаем и для сотрудников внутри компаниДенис Катаев на PyCon Russia 2019
У нас много планов по развитию Профессии Python-разработки. Все активности делаем силами комьюнити — людей, заинтересованных в общем деле и собственном развитии. Есть «лидеры» направлений — это не выделенная должность, а роль, которую может взять на себя любой. Мы стараемся максимально поощрять участие в развитии сообщества.
Сейчас мы стоим на первой ступеньке длинной дороги по выстраиванию зрелого внутреннего комьюнити. Но тем интереснее пройти этот путь и быть участником этого процесса.
Python-культура в российских IT-компаниях. Часть 1: Тинькофф
Почему разработчик принимает оффер одной компании и отвергает другой? Глобальный ежегодный опрос Stack Overflow 2020 года показал, что самые важные факторы выбора работы - это языки/ фреймворки/...
habr.com