Designs algorithmic solutions for high-load Rust services applying zero-cost abstractions and iterator chains. Analyzes complexity considering allocator specifics and CPU cache lines, profiling through criterion and flamegraph.
Roles · Backend Developer (Rust) · Lead
What a Lead } should know
50 core skills, 67 in total. Expectations per skill, and what changes at the next level.
This page lists what a Lead } 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 Lead
Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.
Programming Fundamentals · 11
Designs complex asynchronous systems on Tokio/async-std with backpressure management, graceful shutdown and structured concurrency. Configures runtime (work-stealing, current-thread), manages spawn strategies and debugs async code through tokio-console.
Implements comprehensive Rust code quality system: strict clippy lints (#![deny(clippy::all)]), rustfmt configuration, cargo-audit for dependencies. Configures CI pipelines with MSRV checks, miri for undefined behavior and cargo-deny for licenses.
Develops specialized data structures in Rust considering ownership model, using types from std::collections and external crates (im, dashmap). Ensures lock-free access through crossbeam and atomic types for concurrent scenarios.
Adapts classic patterns to Rust ownership model: Builder through consuming self, Strategy through trait objects (Box<dyn Trait>), Observer through Tokio channels. Forms team's library of idiomatic patterns including typestate pattern and newtype idiom.
Designs generic APIs with complex trait bounds using where clauses, associated types and GAT (Generic Associated Types). Develops generic middleware layers for tower services and typed builder patterns with compile-time validation.
Designs systems with optimal use of Rust ownership model: minimizing clones through lifetime annotations, Cow for lazy copying, Arc for shared ownership. Defines team standards for working with Box, Rc, Pin and managing lifetime annotations.
Profiles memory consumption of Rust services through Valgrind/DHAT, jemalloc statistics and custom allocator wrappers. Analyzes allocation patterns through tracing-allocator, identifies leaks through Rc cycles and optimizes struct layout through repr(C) and field reordering.
Designs multi-threaded Rust systems with Send/Sync guarantees using Arc<Mutex>, RwLock and crossbeam channels. Applies Rayon for data parallelism, configures thread pools and profiles contention through flamegraph and perf.
Transforms OOP approaches into idiomatic Rust: composition over inheritance through trait composition, polymorphism through enum dispatch and trait objects. Defines standards for using generics with trait bounds vs dynamic dispatch for the team.
Designs APIs with maximum type safety: newtype patterns for domain types, phantom types for compile-time invariants, exhaustive enums instead of string constants. Implements typestate pattern for guaranteeing protocol correctness at the type level.
Backend Development · 5
Designs event-driven architecture for Rust services with Kafka: Avro/Protobuf schemas through prost, consumer groups with graceful shutdown, dead letter queues. Develops abstractions over rdkafka with type-safe message envelopes and automatic deserialization through serde.
Designs multi-level cache architecture for Rust services: L1 (thread-local), L2 (shared moka), L3 (Redis) with write-through/write-behind strategies. Develops generic cache trait with support for invalidation, warming and hit-rate monitoring through Prometheus metrics.
Defines messaging architecture for Rust system: creates internal messaging framework with broker abstraction, designs event sourcing with custom Rust event store, standardizes serialization through Serde with schema evolution. Mentors on idiomatic message processing in async Rust.
Designs Redis caching layer for Rust microservices: cluster configurations, Lua scripts through redis::Script, distributed locks with Redlock algorithm. Develops type-safe cache abstractions with generic trait Cache<K,V> and automatic serialization through serde.
Defines architectural decisions for Rust Web Frameworks at product level. Establishes standards. Conducts design reviews and defines technical roadmap.
Database Management · 7
Standardizes connection management for Rust platform: creates internal crate with standard pool setup, designs connection proxy for multi-database routing. Defines pool sizing strategy based on tokio runtime threads and database capabilities.
Designs data models for Rust microservice platform: bounded contexts with separate schemas, event sourcing through append-only tables. Develops shared domain type libraries (domain-primitives crate) and serialization standards through serde for inter-service exchange.
Develops PostgreSQL indexing standards for Rust platform: automated analysis through custom Rust CLI utilities, monitoring unused indexes. Defines indexing strategies for high-load tables considering write amplification and VACUUM processes.
Designs migration strategy for Rust microservice platform: unified tooling (refinery vs sqlx migrate vs diesel_migrations), migration testing in CI. Develops workflow for coordinating schema changes between teams with automated backward compatibility verification.
Defines sharding strategy for Rust platform: creates internal sharding crate with pluggable strategies and monitoring, designs distributed transaction coordination through 2PC or saga. Standardizes testing for sharded scenarios through TestContainers and property-based tests.
Designs PostgreSQL access layer for Rust platform: choosing between Diesel (compile-time DSL) and SQLx (raw SQL with verification), migration strategies through refinery. Develops repository abstractions with generic trait Repository<T> and optimizes connection pool settings for Tokio runtime.
Designs query optimization strategy for Rust platform: query builder abstractions with automatic EXPLAIN logging, materialized views for aggregations. Develops custom SQLx middleware for slow query tracing and automated alerting.
API & Integration · 6
Defines API documentation standards for Rust platform: mandatory utoipa annotations in code review, automated publishing to developer portal. Develops CI checks for documentation completeness and examples for each endpoint with cargo test integration.
Defines API versioning standards for Rust platform: semantic versioning for gRPC contracts, automated breaking change detection in CI. Develops deprecation workflow with sunset headers and usage metrics for deprecated versions.
Defines gRPC architecture for Rust ecosystem: creates procedural macros to simplify gRPC service implementation, designs integration with async runtime (tokio/async-std), standardizes error handling through thiserror and custom Status codes. Mentors team on idiomatic Rust for gRPC.
Defines gRPC communication standards for Rust platform: schema registry for .proto files, backwards-compatible message evolution, shared crates with generated code. Develops tower middleware stack for tracing, metrics and circuit breaking in gRPC calls.
Standardizes rate limiting for Rust platform: creates internal crate with pluggable backends and configuration, designs rate limiting proxy for multi-protocol support (HTTP, gRPC, WebSocket). Defines fairness algorithms for resource allocation.
Defines REST API standards for Rust platform: unified error handling through thiserror/anyhow, common tower middleware stack, OpenAPI generation through utoipa. Develops shared crates with request/response types and automated contract validation in CI.
Cloud & Infrastructure · 3
Defines AWS architecture for Rust platform: multi-account strategy, PrivateLink for services, cost optimization through Graviton (ARM compilation). Develops Terraform modules for standardized provisioning and implements FinOps practices with automated cost alerting.
Defines containerization standards for Rust services: Dockerfile templates with security hardening (read-only FS, no-new-privileges), vulnerability scanning through trivy. Develops CI pipelines for automated building, tagging and publishing images to registry.
Defines Kubernetes deployment standards for Rust services: GitOps through ArgoCD, standardized Helm charts, policy enforcement through OPA/Gatekeeper. Develops platform abstractions for developer experience and self-service deployment with automated canary testing.
DevOps & CI/CD · 1
Defines CI/CD standards for Rust platform: mandatory checks (clippy, deny, audit, MSRV), deployment gates with canary and smoke tests. Develops reusable workflows for cross-team standardization and integrates security scanning (cargo-vet, cargo-deny) into the merge process.
Testing & QA · 3
Defines integration testing standards for Rust platform: mandatory contract tests between services, shared test infrastructure crate. Develops staging environment with automated deployment for integration test suites and chaos testing through toxiproxy.
Defines property-based testing standards for Rust platform: mandatory proptest suites for critical business logic, CI integration with regression files. Develops shared strategy libraries for domain types and fuzzing coverage standards for unsafe code.
Defines unit testing standards for Rust platform: minimum coverage through cargo-tarpaulin in CI, mandatory tests for public crate APIs. Develops testing-infrastructure crate with mock servers, test containers and standard fixture patterns for teams.
Security · 3
Defines authentication standards for Rust platform: unified auth middleware crate, token lifetime and rotation standards, IdP integration. Develops authorization framework with policy-as-code through OPA integration and automated security policy testing.
Defines security standards for Rust platform: mandatory cargo-audit/cargo-deny in CI, security review for unsafe blocks, dependency vetting through cargo-vet. Develops security middleware stack and implements automated penetration testing.
Defines secure coding standards for Rust platform: mandatory unsafe review, fuzzing policy for parsers, secrets management through HashiCorp Vault. Develops security linting through custom clippy rules and implements SBOM generation through cargo-cyclonedx.
AI-Assisted Development · 1
Defines AI assistant usage policy in Rust development: guidelines for Copilot considering license compliance (cargo-deny), restrictions on generating unsafe code. Implements best practices for code review of AI-generated Rust code focusing on memory safety and security.
Architecture & System Design · 2
Defines CQRS architecture for Rust platform: creates CQRS framework with derive macros for automatic command/query handler generation, designs event schema management with serde and schema validation. Standardizes testing through property-based tests for aggregates.
Defines architectural standards for Rust platform: reference architecture for microservices, ADR process for architectural decisions, technology radar. Develops platform SDK crates with abstractions for observability, configuration and service communication.
Observability & Monitoring · 3
Defines OpenTelemetry standards for Rust platform: mandatory instrumentation for all services, shared otel crate with auto-configuration. Develops semantic conventions for business domains, configures OTel Collector fleet and defines data pipeline for traces/metrics.
Defines metrics standards for Rust platform: mandatory metric labels (service, version, environment), naming conventions, shared metrics crate. Develops Grafana templates for standardized dashboards and alerting runbooks with automated escalation.
Defines logging standards for Rust platform: mandatory span attributes (request_id, user_id), standard format and structure, retention policies. Develops shared tracing-layer crate with automatic context enrichment and ELK/Loki integration.
Version Control & Collaboration · 2
Defines code review standards for Rust platform: mandatory checklists (unsafe audit, dependency review, API design), review time SLA. Mentors team on review practices focusing on Rust-specific aspects: lifetime correctness, trait design and error propagation.
Defines Git standards for Rust teams: branching strategy, PR templates with checklists (clippy, tests, docs), CODEOWNERS for critical crates. Develops automation through GitHub Actions: auto-labeling by changed crates, dependency updates through Dependabot/Renovate.
Performance Engineering · 3
Defines performance profiling standards for Rust platform: mandatory criterion benchmarks for critical paths in CI, regression detection through cargo-bench-cmp. Develops continuous profiling infrastructure and performance budgets for latency-sensitive services.
Defines latency optimization standards for Rust platform: SLO-based performance budgets, mandatory latency benchmarks in CI. Develops architectural guidelines for latency-sensitive services: pre-warming, connection pooling strategies and async patterns for minimal overhead.
Defines throughput optimization standards for Rust platform: capacity planning based on benchmarks, automated load testing in CI through k6/gatling. Develops architectural guidelines for high-throughput services and horizontal scaling standards.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
What changes at Principal
0 skills get a higher expectation or become core when moving from Lead to Principal. The biggest jumps first.
} in the open competency matrix: 67 skills across 5 levels. The matrix is free for individuals and stays free.