Understands the fundamentals of Algorithms & Complexity at a basic level. Applies simple concepts in work tasks using Go. Follows recommendations from senior developers when solving problems.
Roles · Backend Developer (Go) · Junior
What a Junior } should know
28 core skills, 71 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.
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
Understands the fundamentals of Async Programming at a basic level. Applies simple concepts in work tasks using Go. Follows recommendations from senior developers when solving problems.
Understands the fundamentals of Code Quality & Refactoring at a basic level. Applies simple concepts in work tasks using Go. Follows recommendations from senior developers when solving problems.
Understands the fundamentals of Data Structures at a basic level. Applies simple concepts in work tasks using Go. Follows recommendations from senior developers when solving problems.
Understands the fundamentals of Design Patterns at a basic level. Applies simple concepts in work tasks using Go. Follows recommendations from senior developers when solving problems.
Understands the fundamentals of Memory Management at a basic level. Applies simple concepts in work tasks using Go. Follows recommendations from senior developers when solving problems.
Understands the fundamentals of Multithreading at a basic level. Applies simple concepts in work tasks using Go. Follows recommendations from senior developers when solving problems.
Understands the fundamentals of OOP & SOLID Principles at a basic level. Applies simple concepts in work tasks using Go. Follows recommendations from senior developers when solving problems.
Backend Development · 6
Uses Apache Kafka at a basic level with gin/echo/fiber. Performs simple tasks using existing templates. Understands basic concepts and follows team-adopted practices.
Uses caching strategies at a basic level with gin/echo/fiber. Performs simple tasks using existing templates. Understands basic concepts and follows team-adopted practices.
Uses Go Web Frameworks at a basic level with gin/echo/fiber. Performs simple tasks using existing templates. Understands basic concepts and follows team-adopted practices.
Understands message broker patterns in Go: pub-sub, fan-out, and work queues with channels and goroutines. Follows team conventions for integrating with NATS, Kafka, or RabbitMQ using Go client libraries.
Uses NATS / NATS JetStream at a basic level with gin/echo/fiber. Performs simple tasks using existing templates. Understands basic concepts and follows team-adopted practices.
Uses Redis at a basic level with gin/echo/fiber. Performs simple tasks using existing templates. Understands basic concepts and follows team-adopted practices.
Database Management · 7
Executes basic analytical queries to ClickHouse from Go using the clickhouse-go driver. Understands the columnar storage model, uses simple SELECT with aggregations and filtering by partitioned columns for efficient queries.
Understands connection pooling in Go: knows that database/sql has built-in pool support, can configure SetMaxOpenConns, SetMaxIdleConns, SetConnMaxLifetime. Understands why limiting concurrent connections matters.
Designs simple data schemas for Go services: tables with correct types, foreign keys, basic normalization to 3NF. Describes models via GORM tags or golang-migrate SQL files, understands one-to-many and many-to-many relationships.
Creates basic B-tree indexes in PostgreSQL for Go services, understands the difference between regular and unique indexes. Uses EXPLAIN to verify index usage in queries generated by the Go application via pgx/sqlx.
Creates simple SQL migrations for Go services using golang-migrate: adding tables, columns, basic indexes. Understands the up/down migration principle, runs migrations locally and verifies idempotency before committing.
Executes basic SQL queries to PostgreSQL from Go services via pgx or database/sql. Understands PostgreSQL data types, writes simple SELECT/INSERT/UPDATE with parameterized queries for SQL injection protection.
Writes efficient SQL queries for Go services, avoiding N+1 problems when working with GORM or sqlx. Uses EXPLAIN to understand execution plans, applies parameterized queries and basic pagination via LIMIT/OFFSET.
API & Integration · 6
Documents Go API endpoints using swaggo-format comments: describes parameters, response types, HTTP status codes. Generates Swagger/OpenAPI spec via swag init and verifies documentation correctness in Swagger UI.
Understands API versioning principles in Go services: URL versioning (/v1/, /v2/), Accept-Version headers. Implements basic versioning via route groups in Gin/Chi, ensuring compatibility when adding new fields.
Knows gRPC basics in the Go ecosystem: can generate code from .proto files via protoc-gen-go-grpc, make simple unary calls. Understands the structure of generated code and how Protocol Buffers work for serialization.
Uses generated protobuf clients and servers in Go projects. Understands basic .proto file structure, protobuf data types, code generation via protoc-gen-go and protoc-gen-go-grpc. Implements simple unary RPC methods.
Understands rate limiting fundamentals in Go: token bucket with golang.org/x/time/rate, middleware-based throttling in Gin/Chi, and basic per-IP limiting. Follows team patterns for implementing rate limiters with Redis-backed distributed counters.
Creates simple REST endpoints in Go using Gin or Chi: handling GET/POST requests, parsing JSON via encoding/json, returning correct HTTP status codes. Follows basic REST naming conventions for resources and uses middleware for logging.
Cloud & Infrastructure · 1
Understands basic networking concepts for Go development: HTTP/HTTPS, DNS resolution, TCP/UDP. Uses net/http client with timeouts, understands Docker networks for container communication in docker-compose and basic request routing.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
What changes at Mid-level
71 skills get a higher expectation or become core when moving from Junior to Mid-level. The biggest jumps first.
- CQRS: Awareness → Working · becomes core
- Database Sharding: Awareness → Working · becomes core
- SLI / SLO / SLA: Awareness → Working · becomes core
- Terraform: Awareness → Working · becomes core
- Algorithms & Complexity: Awareness → Working
- Apache Kafka: Awareness → Working
- API Documentation: Awareness → Working
- API Versioning Strategies: Awareness → Working
- Async Programming: Awareness → Working
- Caching Strategies: Awareness → Working
} in the open competency matrix: 71 skills across 5 levels. The matrix is free for individuals and stays free.