Оценивает сложность алгоритмов обработки данных в ML-пайплайнах. Понимает trade-off между памятью и скоростью при feature engineering. Оптимизирует batch-операции с учётом вычислительной сложности.
Роли · ML Engineer · Middle
Что должен уметь Middle }
26 ключевых навыков, всего 58. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Middle }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Backend Development, API и интеграции.
Ключевые навыки для Middle
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 4
Применяет type hints в ML-коде. Использует mypy для статического анализа. Пишет unit-тесты для data processing и model evaluation. Организует ML-код в модули (data, features, models, evaluation).
Применяет ООП для структурирования ML-кода: абстрактные классы для моделей, стратегии для feature engineering. Использует паттерны для переиспользования ML-компонентов. Пишет кастомные sklearn transformers.
Эффективно использует структуры данных для ML: sparse matrices, ordered structures, heaps. Работает с pandas MultiIndex и категориальными данными. Оптимизирует memory footprint датасетов.
Backend Development · 1
Проектирует ML API с FastAPI: async endpoints, pydantic валидация, batch prediction. Реализует health checks и model versioning в API. Интегрирует API с model registry.
API и интеграции · 1
Проектирует RESTful ML API: batch prediction, model versioning, health checks. Документирует ML API с OpenAPI. Реализует pagination для prediction results. Обрабатывает ошибки модели.
Облако и инфраструктура · 2
Создаёт оптимизированные Docker images для ML: multi-stage для training и serving, CUDA-based images. Настраивает GPU access в Docker. Использует .dockerignore для ML-артефактов.
Деплоит ML-сервисы в Kubernetes. Настраивает resource limits для CPU/GPU workloads. Использует ConfigMaps для model configuration. Настраивает HPA для ML serving autoscaling.
Тестирование и QA · 1
Пишет comprehensive тесты для ML: data validation, model prediction format, edge cases. Использует fixtures для ML test data. Тестирует pipeline components изолированно.
Data Engineering · 4
Использует PySpark для масштабной feature engineering. Оптимизирует Spark jobs (partitioning, caching, broadcast joins). Использует Spark ML для distributed model training.
Использует Great Expectations/Soda для data validation. Настраивает автоматические проверки качества данных в ML pipeline. Мониторит data drift перед retraining.
Оптимизирует pandas-код для ML: vectorized operations, category dtype, chunked reading. Использует Polars для ускорения обработки. Пишет эффективные feature engineering pipelines.
Проектирует SQL ETL для feature computation. Использует dbt для трансформации ML features. Пишет incremental ETL для обновления training данных. Автоматизирует через Airflow.
Machine Learning и AI · 9
Настраивает data drift detection (Evidently, NannyML). Мониторит feature distributions. Настраивает алертинг на degradation модели. Реализует automated retraining trigger.
Проектирует experiment tracking workflow. Организует эксперименты по проектам/задачам. Настраивает hyperparameter sweeps (Optuna, W&B Sweeps). Анализирует результаты для принятия решений.
Проектирует sklearn Pipelines для production. Выполняет feature selection (SelectKBest, RFE). Настраивает hyperparameter tuning (GridSearchCV, RandomizedSearchCV, Optuna). Обрабатывает imbalanced данные (SMOTE, class_weight).
Настраивает Feast для проекта. Определяет feature definitions (entities, feature views). Настраивает materialization для online store. Интегрирует feature store с training pipeline.
Выполняет hyperparameter tuning для gradient boosting (learning_rate, max_depth, n_estimators, regularization). Обрабатывает категориальные фичи (CatBoost native, target encoding). Настраивает early stopping и cross-validation. Анализирует SHAP values.
Проектирует ML pipelines с Kubeflow/Airflow. Настраивает параметризированные pipeline для разных моделей. Автоматизирует retraining с data quality checks. Реализует pipeline testing.
Проектирует MLflow workflow: experiment naming, run tags, artifact storage. Использует Model Registry для versioning. Настраивает autologging для sklearn/PyTorch. Пишет custom MLflow Plugins.
Использует model serving frameworks: Triton, BentoML, Seldon. Настраивает batch и real-time inference. Оптимизирует inference latency (ONNX, model optimization). Настраивает A/B testing моделей.
Проектирует custom модели на PyTorch. Настраивает training loop: optimizer, scheduler, early stopping. Использует transfer learning (fine-tuning pretrained models). Логирует эксперименты в MLflow/W&B.
Observability и мониторинг · 2
Пишет структурированные логи в JSON-формате. Добавляет correlation IDs для tracing. Использует правильные log levels. Настраивает log aggregation (EFK/Loki). Не логирует sensitive data (PII, passwords).
Добавляет custom metrics в приложение (counter, gauge, histogram). Пишет PromQL-запросы для дашбордов. Создаёт Grafana dashboards. Настраивает базовые алерты (high error rate, high latency).
Контроль версий и коллаборация · 2
Ревьюит ML-код: проверяет data leakage, feature correctness, model evaluation. Даёт конструктивный feedback. Проверяет reproducibility экспериментов.
Использует DVC для version control данных и моделей. Организует ML-код по branches: experiments, features, releases. Resolve конфликты в ML-конфигурациях.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Senior
58 навыков получают более высокое ожидание или становятся ключевыми при переходе с Middle на Senior. Сначала самые большие скачки.
- Алгоритмы и сложность: Применение → Продвинутый
- Качество кода и рефакторинг: Применение → Продвинутый
- Мониторинг моделей: Применение → Продвинутый
- Принципы ООП и SOLID: Применение → Продвинутый
- Структурированное логирование: Продвинутый → Эксперт
- Структуры данных: Применение → Продвинутый
- Трекинг экспериментов: Применение → Продвинутый
- Apache Spark: Применение → Продвинутый
- Classical ML (scikit-learn): Применение → Продвинутый
- Code Review: Применение → Продвинутый
} в открытой матрице компетенций: 58 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.