/Обо мне
Дата-инженер и фулстек-разработчик
Я работаю на обоих концах платформы данных. С одной стороны — хранилища: загрузка, очистка, трансформация и золотой слой, смоделированный звездой, к которому аналитик действительно может писать запросы. С другой — production-бэкенды, которые эти исходные данные и создают.
Польза именно в сочетании. Когда сам проектировал схему PostgreSQL, в которую пишет приложение, понимаешь, почему колонка nullable, почему временная метка хранится именно так и откуда берутся грязные строки. Моделировать данные проще, если ты был на той стороне, которая этот беспорядок и произвела.
Мне нравится отвечать за всё целиком: за API и схему, за интерфейс поверх них и за то, чтобы всё это работало после запуска. На проекте газеты это означало довести продукт от пустой базы до состояния, в котором им каждый день пользуются редакторы и читатели, а затем передать команде, которая ведёт его сама.
/Опыт
Где это было сделано
Фулстек-разработчик (фриланс)
Tong Yulduzi
- Построил бэкенд на FastAPI и схему PostgreSQL для республиканской газеты: REST API для статей, медиа и архива выпусков, с моделями SQLAlchemy и миграциями Alembic.
- Сделал поиск статей по всему архиву выпусков на полнотекстовом поиске PostgreSQL: колонки tsvector с GIN-индексами и ts_rank, настроенные так, чтобы нужная статья выходила первой, а не просто самая свежая.
- Ускорил загрузку страниц: закешировал самые читаемые в Redis и добавил индексы, которых не хватало медленным запросам, замеряя время до и после каждого изменения вместо того, чтобы гадать.
- Сделал читательский сайт и редакционный инструмент публикации на Next.js по согласованным макетам, и довёл оба до нормальной работы на телефонах, с которых приходит большинство читателей.
- Добавил ролевые учётные записи (автор, редактор, администратор) с JWT-аутентификацией, чтобы редакция вела газету без разработчика в ежедневной работе.
- Настроил деплой через GitHub Actions: pytest на одноразовой базе, сборку Docker-образа и автоматический откат, если health check не проходит.
- Поставил на расписание ночные зашифрованные бэкапы вне сервера и провёл полную репетицию восстановления, чтобы доказать, что архив нельзя потерять.
Стажёр-дата-инженер
Itransition
- Построил сквозное хранилище данных в Microsoft Fabric: сырые данные проходят очистку и преобразование до подготовленного gold-слоя, готового к анализу.
- Настроил приём данных через Fabric Pipelines и Dataflows, а Fabric Notebooks (PySpark, Pandas) использовал для очистки, преобразования и проверки данных между слоями.
- Спроектировал звёздную схему для gold-слоя и построил дашборды Power BI поверх неё.
- Написал клиент на Python, который забирает временные ряды из InfluxDB в пайплайн.
/Навыки
Чем я работаю
Бэкенд
- Python
- FastAPI
- SQLAlchemy, Alembic
- REST API design
- JWT auth and role-based access
- Celery
- Django
- pytest
Инженерия данных
- Microsoft Fabric (Pipelines, Dataflows, Notebooks)
- Medallion architecture (bronze, silver, gold)
- Star-schema design
- PySpark
- Pandas
- Great Expectations
Базы данных
- PostgreSQL schema design
- Indexing and query tuning
- Full-text search (tsvector, GIN, ts_rank)
- Redis
- InfluxDB
- Delta Lake
Фронтенд
- Next.js
- React
- TypeScript
- Responsive UI built from design files
Инфраструктура
- Docker and Docker Compose
- Nginx
- GitHub Actions (CI/CD)
- Linux servers
- Git
- AWS Certified Cloud Practitioner
Отчётность
- Power BI
- SQL
- Power Automate
/Сертификаты
- Commercial Software Development: Data Engineering
- Certified Cloud Practitioner Essentials
- Backend Developer Course