Applies algorithmic expertise in Rust development: zero-copy algorithm design for high-throughput data processing, SIMD-optimized algorithms for computational workloads, lock-free concurrent algorithms using atomics. Designs memory-efficient algorithms leveraging Rust's ownership model for predictable performance.
Roles · Backend Developer (Rust) · Senior
What a Senior } should know
51 core skills, 68 in total. Expectations per skill, and what changes at the next level.
This page lists what a Senior } 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 Senior
Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.
Programming Fundamentals · 11
Designs async architectures in Rust: tokio runtime tuning, custom Future implementations, async trait patterns and pinning strategies. Mentors team on Rust async performance optimization and choosing between sync/async boundaries.
Designs code quality standards for Rust projects: Clippy lint configurations, unsafe code review policies, ownership pattern guidelines. Refactors complex lifetime hierarchies and trait implementations for clarity. Establishes review practices for memory safety, zero-cost abstractions, and macro hygiene.
Selects optimal data structures for Rust applications: BTreeMap for cache-friendly ordered access, arena allocators for graph structures, crossbeam queues for lock-free concurrent patterns. Optimizes memory layout using repr(C) and packed structs. Designs zero-copy data structures with proper lifetime bounds and Pin semantics.
Has deep expertise in design patterns for Rust: designs zero-cost abstractions with trait objects and generics, implements type-safe state machines and builder patterns, optimizes pattern usage considering ownership and borrow checker. Mentors team on Rust-idiomatic patterns for systems programming.
Designs advanced Rust generic architectures: implements GATs (Generic Associated Types) for lending iterators and async trait patterns. Builds generic type-state machines with zero-runtime-cost transitions enforced by the type system. Applies const generics for compile-time validated dimensions and buffer sizes. Designs generic trait hierarchies with supertraits and blanket implementations, optimizes trait bound complexity to maintain reasonable compile times in large generic codebases.
Designs zero-cost abstraction patterns in Rust: custom allocators for arena-based systems, lock-free data structures, and efficient memory layouts for cache-friendly access. Implements unsafe code safely when performance requires bypassing borrow checker. Optimizes memory footprint through enum size reduction, bitfields, and compact data representations. Mentors team on advanced ownership patterns and lifetime management.
Has deep expertise in Rust memory profiling with DHAT, heaptrack, and Massif. Optimizes allocation patterns by leveraging ownership semantics, eliminates unnecessary heap usage, and tunes borrow checker-friendly designs for production throughput.
Has deep expertise in Rust concurrency: designs zero-cost concurrent abstractions leveraging ownership system, implements custom async runtimes and lock-free data structures, optimizes tokio runtime tuning for high-throughput services. Mentors team on advanced Rust concurrency patterns for systems programming.
Applies SOLID principles in Rust's trait-based design: interface segregation with focused traits, dependency inversion through trait bounds and generics, single responsibility in module organization. Designs clean Rust architectures using trait objects for runtime polymorphism, associated types for compile-time abstraction, and newtype pattern for domain modeling.
Has deep expertise in Rust type system — designs zero-cost abstractions with associated types and GATs, encodes business invariants using newtype patterns and typestate programming, and leverages const generics for compile-time computation. Architects type-safe async service layers with tower middleware. Mentors team on advanced lifetime patterns, unsafe code auditing, and macro-based type generation.
Backend Development · 5
Implements Kafka integration through rdkafka (librdkafka binding) in Rust services, configuring producers and consumers with serde serialization. Ensures exactly-once semantics, handles errors through Result<T,E> and manages offset commits in async Tokio runtime.
Implements caching strategies in Rust services: in-memory through moka/cached with TTL and LRU policies, HTTP caching through tower-http middleware. Applies cache-aside pattern with type-safe wrapper structs and cache stampede handling through probabilistic early expiration.
Designs high-performance messaging systems in Rust: implements zero-copy deserialization for maximum throughput, designs custom message routing through tokio task scheduling, configures batch processing with configurable flush intervals. Optimizes memory allocation for sustained high-throughput processing.
Integrates Redis into Rust services through redis crate with connection pooling support (deadpool-redis) and async commands on Tokio. Implements caching with TTL, pub/sub for invalidation and data serialization through serde_json/bincode for optimal performance.
Designs solutions based on Rust Web Frameworks for production systems. Optimizes performance and scalability. Chooses between alternative approaches. Mentors the team.
Database Management · 7
Designs connection management for Rust services: implements read/write pool separation with custom routing, optimizes pool for high-concurrency through lock-free checkout, designs connection warming and graceful drain. Benchmarks pool overhead for minimal latency impact.
Develops domain data models for Rust services with separation into persistence and domain layers. Applies newtype patterns for ID types (UserId(Uuid)), JSONB for flexible attributes through serde, and designs normalized schemas considering query patterns.
Designs indexing strategy for Rust services: partial indexes for filtered queries, GIN for JSONB fields (serialized through serde), covering indexes for frequently queried column sets. Analyzes performance through pg_stat_user_indexes and criterion benchmarks.
Develops complex migrations for Rust services: zero-downtime ALTER through adding nullable columns, backfill scripts in Rust through SQLx, separating migrations into deploy-safe and post-deploy. Ensures backward compatibility between schema and application versions.
Designs high-performance sharding in Rust: implements custom sharding proxy with zero-copy routing, optimizes connection management through connection pooling with async traits, designs online resharding through dual-write with async verification. Benchmarks shard router performance.
Develops complex PostgreSQL queries in Rust services using SQLx macros (sqlx::query_as!) for compile-time SQL validation. Configures connection pooling through deadpool-postgres, implements transactions with proper error handling and JSONB operations through serde.
Optimizes complex PostgreSQL queries in Rust services: CTEs for readability, window functions, lateral joins. Profiles execution time through SQLx tracing integration, applies prepared statements and optimizes result deserialization through zero-copy where possible.
API & Integration · 6
Designs API documentation strategy for Rust services: automated specification compliance tests through spectral, changelog generation on proto/OpenAPI changes. Implements documentation-as-code approach with rustdoc for internal APIs and utoipa for public ones.
Designs versioning strategy for Rust microservices: content negotiation through Accept headers, Protobuf schema versioning through reserved fields. Implements adapter layers between API versions with compile-time verification through From/Into traits.
Designs high-performance gRPC services in Rust: optimizes through custom allocators and zero-copy deserialization, configures TLS through rustls, implements connection pooling with Tower balance. Benchmarks and profiles gRPC services for maximum throughput.
Designs gRPC architecture for Rust services: bidirectional streaming for real-time data, health checking through tonic-health, load balancing with tower. Optimizes serialization through prost with custom codecs and implements graceful shutdown for streaming connections.
Designs rate limiting for high-load Rust services: implements zero-allocation rate limiter through lock-free data structures, configures multi-tier limiting with sub-microsecond overhead. Designs adaptive throttling based on system metrics (CPU, memory, event loop lag).
Designs REST API for Rust services with idempotency, rate limiting through tower-governor and content negotiation. Implements hypermedia-driven API, configures CORS through tower-http and ensures backward compatibility with versioning through Accept headers.
Cloud & Infrastructure · 4
Designs AWS infrastructure for Rust services: EKS with Karpenter, ElastiCache Redis, Aurora PostgreSQL. Optimizes Lambda cold start for Rust (minimal runtime, AL2023), implements infrastructure-as-code through CDK/Terraform and configures VPC architecture.
Designs Docker infrastructure for Rust microservices: shared base image with required C dependencies, cross-compilation through cross/cargo-zigbuild. Optimizes build time through BuildKit cache mounts, parallel workspace crate compilation and sccache.
Designs Kubernetes infrastructure for Rust platform: Helm charts with values templates, service mesh (Linkerd — written in Rust), PodDisruptionBudget. Configures autoscaling through KEDA with Prometheus metrics from Rust services and optimizes bin-packing.
Designs network architecture for Rust microservices: service mesh integration, mTLS between services through rustls, custom protocols on Tokio. Optimizes network performance: TCP settings (SO_REUSEPORT, TCP_NODELAY), epoll/io_uring through tokio-uring.
DevOps & CI/CD · 1
Designs CI/CD infrastructure for Rust monorepo: incremental builds through cargo-hakari, parallel jobs for workspace crates, release automation through cargo-release. Optimizes build time through sccache, self-hosted runners and Docker layer caching.
Testing & QA · 3
Develops integration testing for Rust microservices: end-to-end through docker-compose, contract testing through pact-rust, gRPC testing through tonic-mock. Configures CI with parallel test suites and isolated environments through testcontainers.
Develops comprehensive proptest strategies for Rust services: strategy composition for complex domain objects, stateful testing through prop_state_machine. Integrates fuzzing through cargo-fuzz and AFL for discovering unstable paths and testing unsafe code.
Develops unit testing strategy for Rust services: testing async code through #[tokio::test], snapshot tests through insta, coverage through cargo-tarpaulin. Implements test utilities crate with builders for domain objects and in-memory trait dependency implementations.
Security · 3
Designs identity architecture for Rust microservices: OIDC integration with Keycloak/Auth0, token propagation between services, RBAC/ABAC through casbin-rs. Implements token introspection middleware, JWK rotation through JWKS endpoints and audit logging of authentication events.
Designs Rust service protection against complex attacks: deserialization vulnerabilities in serde (deny_unknown_fields), timing attacks through constant_time_eq, supply chain through cargo-vet. Conducts threat modeling and implements SAST through cargo-audit and cargo-deny in CI pipeline.
Designs security architecture for Rust services: cryptography through ring/rustcrypto, TLS through rustls (memory-safe TLS), audit trail through structured logging. Conducts code reviews focusing on unsafe blocks, FFI boundaries and race conditions, applying MIRI for verification.
AI-Assisted Development · 1
Optimizes Copilot usage in Rust projects: workspace context configuration for accurate suggestions, generating complex generic constructs and macro_rules. Reviews AI suggestions for unsafe correctness, performance implications and Rust code idiomaticity.
Architecture & System Design · 2
Designs CQRS for high-performance Rust systems: implements event sourcing with custom event store, optimizes projections through zero-copy deserialization and parallel processing. Designs snapshot strategy for aggregates and ensures idempotent event handling.
Designs distributed systems in Rust: event-driven architecture with Kafka/NATS, CQRS with separate read/write models, saga patterns for distributed transactions. Applies tower middleware stacks for cross-cutting concerns and designs resilience patterns (circuit breaker, bulkhead).
Observability & Monitoring · 3
Designs observability architecture on OpenTelemetry for Rust services: unified traces/metrics/logs through OTel SDK, custom instrumentation for business operations. Optimizes overhead through tail-based sampling, configures OTel Collector pipeline and integrates with service map visualization.
Designs metrics system for Rust microservices: RED metrics through tower middleware, custom metric types for business KPIs, high-cardinality label management. Configures Prometheus federation, recording rules for aggregations and Grafana dashboards with SLO tracking.
Designs logging architecture for Rust services: custom tracing layers for sensitive data masking, dynamic log levels through tower-http, log correlation between services through trace-id. Optimizes logging performance considering zero-cost nature of tracing with disabled spans.
Version Control & Collaboration · 2
Conducts deep Rust service code reviews: analyzes unsafe blocks for soundness, evaluates performance implications (allocations, clones, lock contention). Reviews architectural decisions, API design considering backward compatibility and concurrent code correctness.
Designs Git workflow for Rust projects: trunk-based development with feature flags, monorepo strategies for workspace with selective CI. Configures git submodules for shared crates, optimizes .gitattributes for large binary files and implements conventional commits.
Performance Engineering · 3
Designs CPU profiling strategy for Rust services: continuous profiling through pprof-rs in production, DHAT for heap analysis, cachegrind for cache-miss optimization. Applies PGO (Profile-Guided Optimization) through cargo-pgo and analyzes LLVM IR for critical section optimization.
Designs low-latency architecture in Rust: pre-allocated buffers through object pools, TCP tuning (TCP_NODELAY, SO_REUSEPORT), io_uring through tokio-uring. Applies lock-free data structures (crossbeam), CPU pinning for Tokio runtime and optimizes GC-free memory usage.
Designs high-throughput architecture in Rust: pipeline patterns through async streams, partition-based parallelism, zero-copy I/O through splice/sendfile. Optimizes runtime: multi-runtime strategies (IO-runtime + CPU-runtime), custom task schedulers and memory-mapped I/O.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
What changes at Lead
66 skills get a higher expectation or become core when moving from Senior to Lead. The biggest jumps first.
- Algorithms & Complexity: Advanced → Expert
- Apache Kafka: Advanced → Expert
- API Documentation: Advanced → Expert
- API Versioning Strategies: Advanced → Expert
- Async Programming: Advanced → Expert
- AWS: Advanced → Expert
- Caching Strategies: Advanced → Expert
- Code Quality & Refactoring: Advanced → Expert
- Code Review: Advanced → Expert
- Connection Pooling: Advanced → Expert
} in the open competency matrix: 68 skills across 5 levels. The matrix is free for individuals and stays free.