Defines algorithmic strategy at the entire Elixir/OTP platform level. Develops specialized data structures for distributed computing on BEAM node cluster, optimizes message routing and load balancing between processes through :pg and Registry.
Roles · Backend Developer (Elixir) · Principal
What a Principal } should know
44 core skills, 66 in total. Expectations per skill, and what changes at the next level.
This page lists what a Principal } 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 Principal
Grouped by area. The label on the right is the expected depth: Awareness, Working, Advanced or Expert.
Programming Fundamentals · 9
Defines concurrent processing strategy at the entire Elixir/OTP platform level. Designs data flow architecture based on GenStage, Broadway and Flow for processing millions of events per second. Optimizes BEAM VM schedulers for specific workloads.
Shapes Elixir code quality standards at the entire organizational level. Develops custom Credo rules, defines typespec and @behaviour usage policies, implements property-based testing through StreamData as mandatory practice for critical modules.
Develops data storage architectural patterns for distributed Elixir systems. Designs custom CRDT structures for eventual consistency between nodes, defines ETS, Mnesia and :persistent_term usage strategy at the entire platform level.
Shapes architectural pattern standards at the entire Elixir platform level. Designs custom OTP behaviours and frameworks based on GenServer, Supervisor and DynamicSupervisor for typical business tasks. Defines protocol and macro usage strategy.
Defines functional architecture for the entire Elixir platform. Develops macro-based DSLs for domain areas, designs libraries with protocols and behaviours. Implements algebraic data types and contract programming through typespecs and Dialyzer.
Shapes the organization's approach to immutable data architecture in Elixir and functional programming ecosystems. Drives innovation in immutability patterns for distributed Elixir systems including CRDTs, immutable audit trails, and append-only data stores. Influences the Elixir community through contributions to libraries and patterns that advance immutable system design at scale.
Defines monad and functor strategy at organizational level. Makes decisions on approaches and tools. Mentors lead developers and shapes technical vision.
Defines concurrency strategy for the entire Elixir platform at BEAM VM level. Optimizes scheduler operations, configures dirty schedulers for NIF calls, designs distributed process systems through :pg, Registry and distributed Erlang.
Backend Development · 6
Develops platform strategy for event-driven architecture with Kafka for the Elixir ecosystem. Designs Avro/Protobuf schemas for inter-service communication, defines retention and replication policies. Ensures exactly-once semantics through Broadway and Kafka transactions.
Develops caching architecture at the entire Elixir platform level. Defines ETS, Mnesia, Cachex and Redis usage standards for various scenarios. Designs predictive cache warming systems, automatic invalidation and efficiency monitoring through :telemetry.
Defines Elixir Phoenix strategy at company level. Evaluates new technologies and approaches. Establishes enterprise standards and reference architectures.
Defines NATS / NATS JetStream strategy at company level. Evaluates new technologies and approaches. Establishes enterprise standards and reference architectures.
Defines RabbitMQ strategy at company level. Evaluates new technologies and approaches. Establishes enterprise standards and reference architectures.
Defines platform caching strategy for distributed Elixir systems. Designs hybrid solutions with ETS, :persistent_term, Cachex and Redis Cluster. Develops cache-aside, write-through pattern standards and invalidation policies at organizational level.
Database Management · 6
Develops data modeling strategy at the entire organizational level. Defines DDD standards with Ecto contexts and bounded contexts, designs inter-domain integration through events. Implements CQRS with Commanded for complex business domains in the Elixir ecosystem.
Develops platform PostgreSQL indexing standards for the Elixir ecosystem. Defines index analysis automation, designs policies for partitioned tables and distributed databases. Implements CI migration checks for required indexes.
Defines platform database schema management standards for the Elixir ecosystem. Develops automation for backward compatibility migration checks, designs migration strategy for sharded and multi-tenant systems with Ecto prefix and Triplex.
Defines PostgreSQL strategy at the entire organizational Elixir ecosystem level. Designs distributed data schemas with Citus, configures logical replication for event sourcing. Develops Ecto usage standards, migration and optimization practices at platform level.
Defines query optimization strategy at the entire organizational level. Designs CQRS architecture with separate Ecto.Repos for reads and writes, implements read replicas. Develops platform tools for automatic Ecto query analysis and optimization.
Defines transactional integrity standards for the entire Elixir platform. Designs distributed transactions through two-phase commit based on GenServer and Ecto.Multi. Develops compensating transaction framework for eventual consistency between microservices.
API & Integration · 5
Develops platform documentation strategy for the Elixir ecosystem. Designs unified API catalog with automatic service discovery, versioning and interactive testing. Implements documentation culture through ExDoc, Livebook and mandatory @doc/@spec.
Develops API evolution strategy at the entire organizational level. Defines breaking changes standards, sunset policy and migration paths for Elixir services. Designs platform for automatic incompatibility detection between versions through typed contracts.
Develops platform GraphQL architecture for the entire organization on Absinthe. Designs Graph Federation with automatic schema composition, defines API evolution policy and breaking changes. Implements distributed query cache through ETS and Redis.
Develops platform API strategy for the Elixir ecosystem. Defines Phoenix API design standards, BFF patterns for clients and inter-service communication. Designs API Mesh based on Phoenix with automatic service discovery through distributed Erlang.
Develops real-time communication strategy for the entire organization on Phoenix. Designs distributed WebSocket architecture on BEAM node cluster with automatic channel sharding. Defines LiveView, Channels and SSE standards for various scenarios.
Cloud & Infrastructure · 3
Develops AWS usage strategy for the Elixir ecosystem at organizational level. Designs multi-regional architecture with distributed Erlang through AWS Transit Gateway. Defines FinOps standards, disaster recovery and compliance for all cloud Elixir services.
Develops platform containerization strategy for the Elixir ecosystem. Designs architecture with Elixir releases for distributed systems, defines clustering standards through libcluster in Docker/K8s. Implements build, testing and deployment automation through Nix and CI.
Develops Elixir cluster orchestration strategy in Kubernetes at organizational level. Designs multi-cluster architecture with distributed Erlang through WireGuard, defines deployment standards with blue-green and canary. Implements self-service platform for Elixir teams.
DevOps & CI/CD · 1
Develops platform CI/CD strategy for the Elixir ecosystem. Designs composite actions and reusable workflows system for the entire organization. Defines trunk-based development policy with feature flags through FunWithFlags and automated canary release through GitOps.
Testing & QA · 3
Develops platform integration testing strategy for the Elixir ecosystem. Designs framework for testing distributed systems on BEAM, defines chaos engineering standards with :faults. Implements performance testing automation through Benchee in CI.
Defines property-based testing strategy for the organizational Elixir platform. Develops StreamData framework with generators for all domains, integrates stateful testing for distributed systems. Implements model-based testing for OTP behaviour verification.
Develops platform testing strategy for the Elixir ecosystem. Defines test pyramid with ExUnit, Mox, StreamData and Wallaby. Implements mutation testing through Muzak, designs parallel test execution system on CI with optimal sharding.
Security · 3
Develops platform identity management strategy for the Elixir ecosystem. Designs federated identity architecture with Guardian and external IdPs through OpenID Connect. Defines authorization standards (RBAC, ABAC, ReBAC) and implements policy-as-code through Open Policy Agent.
Develops security strategy at the entire Elixir platform level. Defines security framework with Sobelow, mix audit and Plug middleware for all services. Designs automated vulnerability detection system, implements DevSecOps culture in Elixir development.
Develops platform secure coding strategy for the Elixir ecosystem. Defines security baseline for all services: Sobelow, mix audit, Cloak.Ecto for encryption. Designs framework of secure abstractions for typical tasks: authentication, authorization, encryption.
AI-Assisted Development · 1
Develops AI-assisted development strategy for the organizational Elixir ecosystem. Defines usage policy for Copilot, Claude and other AI tools with security and code quality considerations. Designs AI integration into CI/CD pipeline for automated Elixir code review.
Architecture & System Design · 2
Develops high-load system strategy for the entire Elixir platform. Defines architectural patterns for handling millions of RPS on BEAM: process sharding, distributed state through :pg, CRDTs. Designs multi-regional clusters with eventual consistency.
Develops architectural strategy at the entire Elixir ecosystem level. Defines patterns for different load profiles: real-time through Phoenix Channels, batch through Broadway, API through Phoenix. Designs platform with shared-nothing architecture and automatic scaling.
Observability & Monitoring · 3
Develops platform distributed tracing strategy for the Elixir ecosystem. Designs complete observability stack: OpenTelemetry for traces, :telemetry + Prometheus for metrics, Logger for logs. Defines signal correlation standards and automated analysis through Grafana Tempo.
Develops monitoring strategy for the entire organizational Elixir ecosystem. Designs unified observability platform with Prometheus Federation, Thanos and Grafana. Defines SLO/SLI standards for Elixir services, implements automatic degradation detection through ML on metrics.
Develops platform observability strategy through logging for the Elixir ecosystem. Defines log, metrics and traces correlation standards through OpenTelemetry. Designs automatic anomaly detection system based on structured BEAM process logs.
Version Control & Collaboration · 2
Develops code review culture for the organizational Elixir ecosystem. Defines multi-level review system: automated (Credo, Dialyzer, Sobelow), peer review and architectural. Implements design review standards for OTP behaviours and distributed systems on BEAM.
Develops code management strategy for the entire Elixir ecosystem. Defines branching, release management and versioning standards for OTP applications. Designs system for automatic breaking change detection in public APIs through typespecs and git diff analysis.
Additional skills
Not assessed by the team, but part of the self-assessment and the development plan.
} in the open competency matrix: 66 skills across 5 levels. The matrix is free for individuals and stays free.