О себеSummary
Инженер данных и DevOps / SRE. Строю надёжные, масштабируемые платформы данных на OpenSource-стеке: от проектирования DLH и ETL/ELT до эксплуатации в Kubernetes. Уверенно работаю с ClickHouse, Greenplum, PostgreSQL, Apache Spark, Iceberg и Airflow, разрабатываю бэкенд-сервисы на FastAPI и выстраиваю наблюдаемость на Grafana и Prometheus. Люблю доводить процессы до автоматизации, оптимизировать нагрузку и снижать стоимость решений.
Data Engineer and DevOps / SRE. I build reliable, scalable data platforms on an OpenSource stack: from DLH and ETL/ELT design to running them on Kubernetes. Confident with ClickHouse, Greenplum, PostgreSQL, Apache Spark, Iceberg and Airflow, I also build FastAPI backend services and set up observability with Grafana and Prometheus. I enjoy automating processes, tuning workloads and cutting solution costs.
Опыт работыExperience
Solita Oy
·
Инженер данныхData Engineer
·
2020 - настоящее время2020 - present
Инженер данных (DWH)Data Engineer (DWH)
·
под NDAunder NDA
Построение надёжной масштабируемой платформы хранения и обработки данных с плавной миграцией с MSSQL и снижением затрат на базе OpenSource-решений.
Building a reliable, scalable data storage and processing platform with a smooth migration off MSSQL and cost reduction on top of OpenSource solutions.
Зоны ответственностиResponsibilities
- Проектировал и разрабатывал хранилище данных DLH на Apache Iceberg v2.Designed and developed a DLH data warehouse on Apache Iceberg v2.
- Разрабатывал и оптимизировал процедуры загрузки данных на Apache Spark.Built and optimized data ingestion procedures on Apache Spark.
- Проектировал физическую архитектуру DLH, ETL/ELT-процессы и инструменты интеграции с источниками.Designed the physical DLH architecture, ETL/ELT processes and source integration tooling.
- Разрабатывал отчёты, витрины и дашборды на OpenSource-стеке (Grafana, Spark, Airflow).Built reports, data marts and dashboards on an OpenSource stack (Grafana, Spark, Airflow).
- Настраивал и поддерживал инфраструктуру Kubernetes для контуров разработки и деплоя.Set up and maintained Kubernetes infrastructure for development and deployment environments.
- Проводил Code Review, онбординг команды заказчика и наставничество новых сотрудников.Ran Code Review, client team onboarding and mentoring of new engineers.
РезультатыResults
- Разработал с нуля фреймворк автогенерации SparkSQL-шаблонов для сложных ETL, упростив и ускорив загрузку данных.Built from scratch a framework that auto-generates SparkSQL templates for complex ETL, simplifying and speeding up data loading.
- Спроектировал и внедрил систему контроля качества данных (DQ) на Grafana и Spark.Designed and rolled out a data quality (DQ) control system on Grafana and Spark.
Iceberg v2SparkAirflowTrinoSQLPythonGrafanaDockerKubernetesLinuxGit
Инженер данных / бэкендData Engineer / Backend
·
под NDAunder NDA
Миграция сервиса работы с льготными категориями пассажиров с Flask на FastAPI с обновлённым функционалом и интеграцией во внешние системы.
Migrating a passenger benefit-category service from Flask to FastAPI with expanded functionality and integration into external systems.
Зоны ответственностиResponsibilities
- Разработал и модернизировал бэкенд-сервис.Built and modernized a backend service.
- Провёл миграцию с Flask на FastAPI, обеспечив параллельную обработку запросов.Migrated from Flask to FastAPI, enabling concurrent request handling.
- Реализовал REST API для интеграции с внешними системами.Implemented a REST API for integration with external systems.
- Разработал Pydantic-модели валидации, отказоустойчивую архитектуру (keepalived) и retry-логику.Developed Pydantic validation models, a fault-tolerant architecture (keepalived) and retry logic.
- Настроил кэширование, оптимизировал аутентификацию, подготовил Swagger-документацию и оптимальный Docker-образ.Set up caching, optimized authentication, prepared Swagger docs and a lean Docker image.
РезультатыResults
- Переписал бэкенд-сервис с нуля.Rewrote the backend service from scratch.
- 0 инцидентов по работоспособности сервиса с момента релиза.Zero availability incidents since release.
- Сократил время ответа до 40 мс, покрыл код тестами на 100% (pytest, unittest).Cut response time to 40 ms, achieved 100% test coverage (pytest, unittest).
PythonFastAPIPydanticPostgreSQLGreenplumSQLDockerGrafanaLinux
Инженер данных / консультант-разработчикData Engineer / Consulting Developer
·
под NDAunder NDA
Развитие и сопровождение ETL-конвейеров и BI для крупного международного DIY-ритейлера, администрирование ClickHouse и контроль качества данных.
Developing and maintaining ETL pipelines and BI for a large international DIY retailer, administering ClickHouse and enforcing data quality.
Зоны ответственностиResponsibilities
- Разрабатывал и сопровождал комплексный ETL-конвейер GreenPlum (Native + PXF) → S3 → ClickHouse (Aiven), включая алерты.Built and maintained a complex ETL pipeline GreenPlum (Native + PXF) → S3 → ClickHouse (Aiven), including alerting.
- Администрировал ClickHouse, оптимизировал запросы и консультировал команду заказчика по best practices.Administered ClickHouse, optimized queries and advised the client team on best practices.
- Внедрил двухэтапный сервис Data Quality на базе PostgreSQL и дашбордов Grafana.Introduced a two-stage Data Quality service based on PostgreSQL and Grafana dashboards.
- Разработал ETL для автоматической выгрузки данных аналитикам из GreenPlum (Airflow, Docker, K8s, Python).Built ETL for automatic data export to analysts from GreenPlum (Airflow, Docker, K8s, Python).
- Мигрировал DAG'и с Airflow 1 на Airflow 2.5.3 (воркеры в K8s), отлаживал деплой в Jenkins (GitOps).Migrated DAGs from Airflow 1 to Airflow 2.5.3 (workers in K8s), debugged deployment in Jenkins (GitOps).
- Поддерживал и дорабатывал дашборды Grafana, разрабатывал и деплоил скрипты в PostgreSQL через sqitch.Supported and extended Grafana dashboards, developed and deployed PostgreSQL scripts via sqitch.
РезультатыResults
- Оптимизировал ETL и внедрил двухэтапный DQ, сократив ежедневные прогрузки более чем на 2 часа.Optimized ETL and rolled out a two-stage DQ, cutting daily loads by more than 2 hours.
ClickHouseGreenplumPostgreSQLAirflowAivenS3PythonSQLGrafanaDockerKubernetesGit