Understands basic algorithm complexity O(n), O(n log n), O(n²). Knows main sorting and searching algorithms. Applies knowledge when choosing data structures for feature engineering.
Roles · ML Engineer · Junior
What a Junior } should know
25 core skills, 58 in total. Expectations per skill, and what changes at the next level.
This page lists what a Junior } is expected to know and do, skill by skill. Core skills are the ones a manager and peers assess in a review cycle; the rest count only in self-assessment. Main areas: Programming Fundamentals, Backend Development, API & Integration.
Core skills for a Junior
Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.
Programming Fundamentals · 4
Writes readable Python code for ML. Follows PEP 8 and uses black/ruff for formatting. Writes docstrings for functions. Understands the importance of reproducibility in ML.
Knows basic data structures: arrays, dictionaries, sets. Uses pandas DataFrame and numpy arrays. Understands the difference between list and numpy array for ML tasks.
Understands basic OOP concepts in Python: classes, inheritance, abstract base classes, encapsulation. Applies simple SOLID principles when structuring ML pipeline code. Follows team patterns for model wrapper classes and data processing module organization.
Backend Development · 1
Uses FastAPI/Flask for creating simple ML API endpoints. Understands request/response lifecycle. Implements predict endpoint for ML model.
API & Integration · 1
Creates CRUD endpoints for ML services. Uses correct HTTP methods and status codes. Understands JSON request/response for ML API. Implements /predict endpoint.
Cloud & Infrastructure · 2
Writes Dockerfile for ML projects. Installs ML dependencies (PyTorch, scikit-learn) in Docker. Uses docker-compose for local ML development. Understands multi-stage builds.
Understands basic Kubernetes concepts for deploying ML training jobs and model serving endpoints. Follows kubectl commands to check training pod status and GPU resource allocation. Uses team-provided manifests for deploying inference services with KServe or Seldon.
Testing & QA · 1
Writes unit tests for ML code: data processing, feature engineering. Uses testing tools for ML projects. Tests input/output shapes and types.
Data Engineering · 4
Understands Apache Spark fundamentals for ML engineering: Spark MLlib pipelines, feature transformers, and distributed model training/inference. Follows team patterns for PySpark ML workflows, model serialization, and integration with MLflow tracking.
Understands importance of data quality for ML. Performs basic checks: null values, duplicates, distribution shifts. Uses pandas profiling for EDA.
Effectively uses pandas for ML: data loading, EDA, feature engineering. Knows main operations: groupby, merge, pivot. Understands dtypes for memory optimization.
Writes SQL for extracting training data. Understands ETL for ML: extract features, transform, load into training format. Uses pandas.read_sql for data loading.
Machine Learning & AI · 9
Trains baseline models with scikit-learn: Linear Regression, Logistic Regression, Random Forest. Performs cross-validation and train/test split. Uses Pipeline for preprocessing + model.
Logs ML experiments: parameters, metrics, models. Uses MLflow or W&B for comparing experiments. Understands the importance of reproducibility.
Understands feature store concept: online vs offline store, feature reuse. Reads features from Feast for training. Understands feature freshness and consistency.
Trains XGBoost/LightGBM/CatBoost models with default parameters. Understands gradient boosting concept. Uses feature importance for model analysis.
Understands ML pipeline concept: data → features → training → evaluation → deployment. Writes simple pipeline scripts. Uses Airflow DAG for basic ML workflow.
Uses MLflow for experiment logging: parameters, metrics, artifacts. Compares experiments in MLflow UI. Saves models through mlflow.log_model.
Understands model monitoring concept: prediction quality, data drift, latency. Configures basic model metrics (accuracy, latency). Visualizes model performance.
Deploys ML model as REST API through web framework/Flask. Understands inference pipeline: preprocessing → prediction → postprocessing. Uses pickle/joblib for model serialization.
Trains neural networks in PyTorch using nn.Module. Writes training loops with DataLoader, loss computation, backpropagation and optimizer steps. Understands tensor shapes, device management (CPU/GPU) and model checkpointing. Uses torchmetrics for evaluation.
Observability & Monitoring · 1
Adds logs to code (info, warning, error). Uses logging framework (logging/winston/logback). Logs errors with traceback/stacktrace.
Version Control & Collaboration · 2
Participates in code review as reviewer. Understands feedback from senior developers. Learns to write code following team standards.
Uses Git for ML projects: branching, committing, PRs. Knows .gitignore for ML artifacts (models, data). Understands DVC basics for data versioning.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
What changes at Mid-level
42 skills get a higher expectation or become core when moving from Junior to Mid-level. The biggest jumps first.
- Prometheus & Grafana: Awareness → Working · becomes core
- Apache Spark: Awareness → Working
- Classical ML (scikit-learn): Awareness → Working
- Code Review: Awareness → Working
- Data Quality: Awareness → Working
- Docker: Awareness → Working
- Experiment Tracking: Awareness → Working
- Feature Stores: Awareness → Working
- Git Advanced: Awareness → Working
- Gradient Boosting: Awareness → Working
} in the open competency matrix: 58 skills across 5 levels. The matrix is free for individuals and stays free.