Что мы ждем от кандидата: - Реляционные СУБД (PostgreSQL, в идеале еще и Greenplum): проектирование структур таблиц, работа с большими объемами данных (> терабайта), умение писать и оптимизировать сложные SQL-запросы (CTE, подзапросы, джойны, агрегация, оконные функции), хранимые процедуры (функции), умение читать и понимать план запроса. - Уверенное знание Python 3: - ООП, магические методы, перегрузка, наследование (super); - Понимание структур данных (список, словарь, set, отличие базовых операций с ними по степени сложности). По pandas требуется: - Уверенное знание API pandas; - Умение векторизировать вычисления (избегать циклов); - Оптимизация кода по памяти. - Опыт написания промышленных пайплайнов обработки данных, содержащих множество шагов, зависимостей и сложную логику. - Умение разбираться в чужом коде (понимание кода, refactoring, code review). - Linux (базовый опыт: командная строка, shell, работа с файлами, процессами, мониторинг производительности). - Опыт работы с системами контроля версий (в идеале - командная разработка в git (GitLab, GitHub), умение работать с git в командной строке, работа с merge request"ами, решение merge conflict"ов). - Приветствуется понимание принципов CI / CD, знание подходов к проектированию хранилищ данных, а также опыт работы с: - MPP СУБД (Greenplum, Teradata, Vertica), понимание дистрибуции и партиционирования данных; - Docker, Kubernetes; - Инструментами для разработки и оркестрации пайплайнов (Apache Airflow, Luigi); - Облачными технологиями (в частности, S3); - дебагом утечек памяти в Python (pandas; на стыке DS и Python); - PySpark, Dask, Modin. Технический стек: Greenplum, PostgreSQL, Python (pandas, Modin), GitLab, Linux, Docker, Kubernetes, d. |