Roles · Backend Developer (Python) · Junior

What a Junior } should know

37 core skills, 73 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, Database Management.

37core skills
36additional skills
11skill areas
0%at Advanced or Expert
Assess myself as Junior Full role matrix

Core skills for a Junior

Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.

Programming Fundamentals · 8

Knows basic sorting and search algorithms. Understands Big-O notation for simple cases (O(1), O(n), O(n²)). Can estimate complexity of a simple loop. Uses built-in sorted() and collections for problem solving.

Async Programming Awareness

Understands async programming concept. Writes simple async/await functions. Knows the difference between sync and async code. Uses httpx or aiohttp for async HTTP requests.

Follows PEP 8 standards. Uses linters (flake8/ruff) and formatters (black). Writes docstrings for functions. Understands clean code principles: meaningful names, small functions, DRY.

Data Structures Awareness

Knows core Python data structures: list, dict, set, tuple. Understands the difference between mutable and immutable types. Uses list comprehension and dict comprehension. Knows when to use set instead of list for lookups.

Design Patterns Awareness

Knows basic patterns: Singleton, Factory, Observer. Understands the purpose of Repository and Service Layer. Can recognize patterns in existing code. Applies simple patterns on senior's recommendation.

Multithreading Awareness

Understands thread and process concepts. Knows about GIL in CPython and its impact. Uses threading for simple I/O-bound tasks. Understands the difference between threading and multiprocessing.

Understands encapsulation, inheritance, polymorphism in Python. Creates classes with __init__, properties, and methods. Knows SOLID principles at a basic level. Uses property decorators and dunder methods (__str__, __repr__).

Uses basic type hints: str, int, list[str], Optional. Understands why typing is needed in Python. Knows main types from typing module. Runs mypy for type checking.

Backend Development · 5

Creates CRUD endpoints with FastAPI or Django REST Framework. Uses Pydantic for validation. Understands dependency injection. Works with Django ORM/SQLAlchemy for basic queries.

Apache Kafka Awareness

Understands the message broker concept. Writes simple producers and consumers with confluent-kafka-python. Knows what topic, partition, offset are. Understands at-least-once semantics.

Caching Strategies Awareness

Understands why caching is needed. Knows cache-aside pattern. Uses TTL for automatic invalidation. Understands stale data problem.

Redis Awareness

Uses Redis as simple key-value cache via redis-py. Understands TTL and expiration. Caches API call results. Knows basic commands: GET, SET, DEL, EXISTS.

Task Queues Awareness

Understands background task concepts. Creates simple Celery tasks. Uses delay() and apply_async(). Understands the difference between synchronous and asynchronous processing.

Database Management · 5

PostgreSQL Working

Writes SQL queries: SELECT, JOIN, WHERE, GROUP BY. Creates tables with proper data types. Uses ORM for CRUD. Understands foreign keys and constraints.

Creates basic schemas with tables and relationships. Understands 1:1, 1:N, N:M relationships. Applies normalization up to 3NF. Uses proper data types.

Database Indexing Awareness

Understands that indexes speed up SELECT. Knows CREATE INDEX syntax. Adds indexes as recommended. Understands that indexes slow down INSERT.

Creates migrations using migration tools. Understands forward and rollback. Adds columns and tables. Tests migrations locally.

Query Optimization Awareness

Writes basic SQL (SELECT, JOIN, WHERE, GROUP BY). Understands that queries can be slow. Knows that EXISTS is faster than IN for subqueries.

API & Integration · 4

REST API Design Working

Creates CRUD endpoints with proper HTTP methods. Uses status codes (200, 201, 400, 404, 500). Understands JSON request/response. Adds query parameters for filtering and pagination.

API Documentation Awareness

Adds descriptions to endpoints (docstrings, summary). Understands OpenAPI specification. Uses Swagger UI for testing. Documents request/response models.

API Testing Awareness

Tests APIs via Postman or Insomnia. Creates basic request collections. Uses environment variables. Checks status codes and response body.

Understands why API versioning is needed. Knows URL-based versioning (/api/v1/). Maintains backward compatibility when adding fields. Follows team guidelines.

Cloud & Infrastructure · 4

Docker Working

Writes Dockerfiles for Python applications. Uses docker-compose for local development. Understands image layers and caching. Uses .dockerignore.

AWS Awareness

Knows core services: EC2, S3, RDS, Lambda. Uses AWS Console. Understands IAM roles and policies. Deploys via CLI.

Kubernetes Core Awareness

Understands core resources: Pod, Deployment, Service. Deploys applications via kubectl. Reads pod logs. Understands ConfigMaps and Secrets.

Understands TCP/IP, DNS, HTTP/HTTPS in the context of Python applications. Knows how ports, firewall rules, load balancers work. Diagnoses connection issues via curl, telnet, netstat. Configures CORS in Django/FastAPI.

DevOps & CI/CD · 1

Understands CI/CD pipeline. Creates simple GitHub Actions workflows. Runs tests and linters in CI. Uses actions from marketplace.

Testing & QA · 2

Unit Testing Working

Writes unit tests with pytest. Uses assert statements and fixtures. Tests happy path and edge cases. Understands test isolation. Runs tests locally and in CI.

Understands the difference between unit and integration tests. Tests API endpoints. Uses test database for integration tests.

Security · 3

Understands JWT: header, payload, signature. Uses JWT for authentication. Knows OAuth2 flows at a basic level. Stores tokens securely.

Knows OWASP Top 10. Understands SQL injection and XSS. Uses parameterized queries. Validates input data via Pydantic.

Validates input data. Doesn't store passwords in plain text (bcrypt). Uses HTTPS. Doesn't log sensitive data. Follows security checklist.

Architecture & System Design · 1

Understands client-server architecture. Knows HTTP request lifecycle. Understands basic concepts: latency, throughput, availability. Knows what a load balancer and CDN are.

Observability & Monitoring · 2

Understands metrics concepts (counter, gauge, histogram). Views Grafana dashboards. Knows PromQL basics. Adds basic metrics to the application.

Structured Logging Awareness

Uses logging module instead of print. Understands log levels (DEBUG, INFO, WARNING, ERROR). Adds context to logs. Uses structlog or python-json-logger.

Version Control & Collaboration · 2

Git Advanced Working

Uses branching (feature branches, main). Makes commits with meaningful messages. Creates pull requests. Resolves simple merge conflicts. Uses .gitignore.

Code Review Awareness

Participates in reviews as a reviewee. Understands reviewer comments. Fixes code based on feedback. Knows basic self-review checklist.

Additional skills

Not assessed by the team, but part of the self-assessment and the development plan.

ChatGPT / ClaudeGitHub CopilotClean ArchitectureConnection PoolingContainer Security ScanningCPU ProfilingCQRSCursor IDEData FetchingDatabase ShardingDocumentation as CodeE2E TestingElasticsearch / OpenSearchELK StackEvent-Driven ArchitectureFeature FlagsGraphQL DesigngRPC & Protocol BuffersgRPC & Protocol BuffersHigh Load ArchitectureLatency OptimizationMemory ManagementMemory ProfilingMessage Broker PatternsMongoDBOn-Call ManagementOpenTelemetryPerformance BudgetsPrompt Engineering for CodeRabbitMQRate Limiting & ThrottlingSecrets ManagementSLI / SLO / SLATDD & BDDTerraformWebSocket API Design

What changes at Mid-level

69 skills get a higher expectation or become core when moving from Junior to Mid-level. The biggest jumps first.

See the Mid-level page →
Run this with your whole team
Self-assessment plus manager and peer reviews against the same matrix, gap analysis and next-level readiness for every engineer. Team Pro is free for 14 days; individual tools stay free forever.
Start a team trial (14 days free) Send to my manager

} in the open competency matrix: 73 skills across 5 levels. The matrix is free for individuals and stays free.