Pull to refresh
290.89

Кто такой data-инженер в Тинькофф и как им стать

Reading time7 min
Views14K

Привет! Меня зовут Михаил Иванов, я работаю архитектором DWH в Тинькофф и занимаюсь развитием Batch ETL направления платформы обработки данных. Я расскажу о направлении data engineering в Тинькофф, о том, чем занимаются data-инженеры и как попасть к нам в команду.

Data Platform в Тинькофф

Data Platform — это корпоративное хранилище данных, или DWH (Data Warehouse), и целый набор разных инструментов для эффективной работы с данными. Для начала определим, что представляет из себя Data Platform в Тинькофф:

  • более 6000 батчевых процессов загрузки, трансформации и выгрузки данных;

  • сотни потоков загрузки слабоструктурированных и неструктурированных данных из внешних систем;

  • сотни источников данных;

  • больше 200 ТБ сжатых структурированных данных в кластерах Greenplum и Clickhouse;

  • более 2 ПБ сжатых данных в кластере Hadoop;

  • несколько сотен сотрудников: архитекторы, аналитики, разработчики (ETL, BI, Python, Java), data-инженеры, SRE и QA-инженеры.

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

Data-инженер и суть его работы

Data-инженеров называют по-разному: инженер данных, data engineer, DE. Такой специалист — это в первую очередь инженер. Давайте заглянем в словарь: «Инженер (фр. ingénieur ← от лат. ingenium — способности, изобретательность) — специалист в области технической деятельности, направленной на практическое приложение и применение знаний с целью обращения природных ресурсов на пользу человека». Даже в сухом энциклопедическом определении речь идет о практическом применении знаний с пользой для дела. 

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

На практике круг обязанностей data-инженера может быть разнообразным, как и инструменты, которые он применяет. Все зависит от особенностей компании, устройства корпоративного хранилища данных (DWH) и технических требований к нему.

Чаще всего data-инженер сталкивается с задачами:

  • извлечения данных оптимальным способом;

  • подготовки данных, их очистки и обогащения;

  • доставки данных потребителю в удобном формате;

  • хранения данных: выбор подходящего способа хранения, оптимальной структуры, сжатия, секционирования и глубины;

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

Портрет data-инженера в Тинькофф

В зависимости от специфики задач в разных организациях складывается разное видение роли data-инженера. Расскажу, какими знаниями и навыками обладают data-инженеры в Тинькофф.

Computer science. Специалист знает базовые алгоритмы, умеет пользоваться основными структурами данных и оценивать сложность алгоритмов. Он владеет ООП (объектно-ориентированным программированием) и паттернами проектирования, а также понимает, как работают распределенные системы.

Языки программирования. Знает Python или Java. 

Работа с данными. Для работы с данными необходимо владение целым набором инструментов:

  • SQL и разные диалекты — Postgres/Greenplum, Oracle, Clickhouse, Hive;

  • устройство реляционных баз данных;

  • разновидности NoSQL-решений — когда и зачем их выбирать и как готовить;

  • технологии BigData (Hadoop-стек);

  • брокеры сообщений (Kafka).

Основы хранилищ данных. Еще одна обширная область. Вот в чем нужно разбираться:

  • теория построения хранилищ данных, слои и архитектурные подходы;

  • моделирование и нормализация данных;

  • ETL, способы организации конвейеров и их оптимизации;

  • навыки работы с ETL-инструментами и инструментами управления конвейерами обработки данных, такими как Apache Airflow или Apache NiFi или Apache Flink.

Инженерные навыки. Речь идет о базовых инженерных навыках и DevOps-практиках:

  • Linux на уровне опытного пользователя;

  • навыки работы с git;

  • понимание, что такое CI/CD и зачем оно вообще нужно;

  • навыки обращения с docker-контейнерами;

  • умение работать с k8s- и cloud-решениями.

Soft-skills. Иногда data-инженеру приходится заниматься аналитикой и исследованиями. Здесь важны исследовательский склад ума, любознательность и широкий кругозор. А иногда нужно придумать новые подходы для оптимального решения задач по работе с данными. И тут на помощь приходят самостоятельность, нешаблонное решение и желание изучать новые технологии. 

Получается, data-инженер — это Супермен, многорукий Шива и человек-оркестр. Он T-shaped-специалист: отлично разбирается в одной или нескольких областях, а в смежных областях ориентируется на базовом уровне. Это противоположность I-специалисту, который знает много всего, но не углубляется ни в одну область.

Приведу пример. Вот наборы навыков, которые могут быть у двух разных data-инженеров:

  • Эксперт в SQL, большой опыт работы с RDBMS и NoSQL, имеет глубокие знания в областях DWH и ETL, умеет на хорошем уровне писать код на Python, не понаслышке знаком с CS, Linux, Docker.

  • Эксперт в CS, мастерски владеет Java, Python и не только, хорошо знает Linux, Docker, умеет писать сложные SQL-запросы, хорошо понимает, как работают RDBMS- и NoSQL-решения, разбирается в DWH и ETL.

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

Раз уж речь зашла о командах, расскажу, где можно встретить data-инженера в Тинькофф.

Core-команды в DWH. Технические команды, которые занимаются развитием инструментов и выработкой подходов к решению типовых задач. Такие команды — центры экспертизы.

Бизнес-команды. В них data-инженеры занимаются решением задач конкретного бизнес-направления. Для этого они используют один или несколько инструментов, взаимодействуют с core-командами и привносят культуру работы с данными в свое подразделение.

Путь data-инженеров в Тинькофф

С ключевыми навыками разобрались. Теперь поговорим о том, как становятся data-инженерами в Тинькофф. На практике в «лагерь» инженеров данных часто попадают специалисты из смежных областей. Например, такие:

  • ETL-разработчик;

  • ML-разработчик;

  • Backend или Fullstack-разработчик.

Чтобы специалисты знали, в какую сторону развиваться, чтобы стать data-инженером, мы создали универсальную матрицу компетенций. По сути, это развитие методики универсальной карты компетенций ETL-разработчика, про которую рассказывала Галина Голованова. Матрица компетенций data-инженера — это детализированный перечень основных навыков, описанных выше. Матрица учитывает в первую очередь технологии, с которыми работают инженеры в компании. А универсальна она потому, что в ней есть альтернативные разделы для каждого навыка. 

В матрице детально описаны требования, которые актуальны для data-инженеров разных профилей. Например:

  • Java, Flink, Kafka, Cassandra и другие нужны для стриминговой обработки данных.

  • Java, NiFi, Hadoop, Kafka, Redis и другие актуальны для core-команды, занимающейся развитием и эксплуатацией Apache NiFi.

  • Python, Airflow, Greenplum, Clickhouse, Hadoop и другие необходимы для core-команды, занимающейся развитием batch ETL фреймворка на базе Apache Airflow.

Универсальность матрицы еще и в том, что в ней есть общие разделы. Они будут в той или иной степени полезны любому data-инженеру:

  • основы хранилищ данных;

  • SQL;

  • теория СУБД, RDBMS, NoSQL, MPP;

  • инженерные навыки;

  • алгоритмы, структуры данных, сложность алгоритмов, паттерны проектирования.

Вся информация в матрице разделена по уровням компетенций — от junior до senior+. Это помогает понять, какие знания необходимы junior-специалисту, чтобы вырасти до уровня middle, а middle-специалисту — чтобы стать сеньором. За каждым data-инженером мы закрепляем ментора, который помогает составить индивидуальный план развития, опираясь на матрицу компетенций. Матрица помогает сотрудникам развиваться, но не определяет их уровень. Для этого у нас есть отдельная матрица уровней. 

Периодически мы устраиваем аттестации — «экзамены» для data-инженеров. Любой желающий может сдать аттестацию на выбранный уровень, например middle. Благодаря матрице компетенций и механизму периодической оценки навыков мы можем быть уверены, что data-инженеры в наших командах могут быстро и гармонично развиваться. 

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

Собеседование data engineer в Тинькофф

Общий порядок интервью ИТ-специалистов мы подробно описали на странице про собеседования. А о том, как проходит интервью системных аналитиков DWH в Тинькофф, недавно рассказывала в своей статье Мария Фоменко.

Конечно, кандидатов на позиции data-инженеров ждут некоторые особенности в технической части интервью. Но основные этапы стандартные.

HR-скрининг. Это телефонное интервью с рекрутером, которое длится 20—30 минут. HR-специалист расспрашивает кандидата об опыте, мотивации, ожиданиях и технических интересах. И отвечает на его вопросы о вакансии. 

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

  1. Секция «Data Engineering + логика». Длительность — 90 минут. На этой секции мы проверяем базовые знания по направлению data engineering и оцениваем уровень погружения во множество направлений. По итогам встречи мы формируем профиль навыков, чтобы понять, в какой команде кандидат сможет работать эффективнее всего. На этой же встрече мы с соискателем пишем немного кода и решаем «детские» логические задачки.

  2. Секция SQL. Длительность — 60 минут. В этой части технического интервью мы решаем задачки с использованием SQL, проверяем навыки работы с данными с использованием SQL и опыт использования разных синтаксических конструкций.

  3. Алгоритмы. Длительность — 60 минут. Проверяем знания по алгоритмам и структурам данных, предлагаем решить несколько задачек, требующих написания кода. На этой секции нужно показать навыки работы с основными структурами данных: строки, списки, деревья, ассоциативные массивы, векторы. Кандидату пригодится умение реализовывать базовые алгоритмы: поиск элементов в коллекциях, обход деревьев, сортировки, динамическое программирование. Изучая решения соискателя, мы проверяем умение оценить сложность алгоритмов, обсуждаем O-нотацию, вычислительную сложность решения и расход памяти.

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

Надеюсь, благодаря этому тексту стало понятнее, как становятся data-инженерами в Тинькофф и каких специалистов мы ждем на собеседованиях. Если ты любишь работать с данными так же, как мы, — приходи к нам.

Tags:
Hubs:
Total votes 16: ↑12 and ↓4+13
Comments14

Articles

Information

Website
l.tbank.ru
Registered
Founded
Employees
over 10,000 employees
Location
Россия