Material

Python tooling

Here is an overview of technologies that are often found in Python developer vacancies. You don’t need to know the entire list equally deeply: it is important to understand the purpose of each tool and confidently master the stack that is needed for the chosen role.

Python and web

  • Frameworks: Django, Django REST Framework, FastAPI, Flask.
  • Working with data: Django ORM, SQLAlchemy, Alembic.
  • Testing: pytest, unittest, integration and end-to-end tests.
  • Code quality: Ruff, mypy, Black, pre-commit; Flake8 and isort are also found in existing projects.
  • Launching web applications: Uvicorn, Gunicorn.
  • Other libraries: aiogram for Telegram bots.

Databases, caches and queues

  • Relational databases: PostgreSQL, MySQL.
  • Analytical databases: ClickHouse.
  • Caches and NoSQL: Redis, Memcached, MongoDB.
  • Message Brokers: Apache Kafka, RabbitMQ.
  • Background and periodic tasks: Celery; Apache Airflow - primarily for orchestrating data pipelines.

Observability

  • Logs: Elasticsearch, Logstash and Kibana (ELK/Elastic Stack).
  • Metrics and dashboards: Prometheus, Grafana, Datadog.
  • Errors and trace: Sentry and other APM tools.

Infrastructure

  • CI/CD: GitLab CI/CD, GitHub Actions.
  • Containers and orchestration: Docker, Docker Compose, Kubernetes.
  • Basic tools: Linux, Git, Nginx, S3-compatible object storage.

Additional technologies

They are less often needed at the start, but can be found in specific teams:

  • Helm, Ansible, HashiCorp Vault and Consul;
  • DynamoDB, Cassandra, Aerospike and Tarantool;
  • Docker Swarm and Rancher.

Official sources

  • Python documentation
  • Django documentation
  • FastAPI documentation
  • SQLAlchemy documentation
  • pytest documentation
  • Docker documentation
  • Kubernetes documentation