Research-based skill models. No corporate jargon. No arbitrary matrices. Just practical frameworks for measuring technical growth.
Five stages backed by cognitive science research, not HR buzzwords
The Dreyfus model was developed by brothers Stuart and Hubert Dreyfus at UC Berkeley in the 1980s through research on how people acquire skills. Unlike arbitrary corporate competency matrices, Dreyfus describes actual cognitive patterns in skill development.
Engineers recognize themselves in these stages. The model maps naturally to technical career ladders: Junior → Mid-Level → Senior → Staff → Principal. It acknowledges that experts think differently than beginners, not just "better."
Characteristics: Follows rules rigidly. Needs step-by-step instructions. Cannot handle deviations from procedure.
Engineering Example: Writes code strictly from tickets. Struggles when requirements are ambiguous. Needs detailed technical specifications to proceed.
Career Level: Intern, Junior Developer
Characteristics: Starts recognizing recurring patterns. Can handle some situational judgment. Still relies heavily on guidelines.
Engineering Example: Recognizes common code patterns. Can debug familiar problems. Applies learned solutions to similar situations but struggles with novel challenges.
Career Level: Junior to Mid-Level Developer
Characteristics: Develops mental models of problem domains. Can prioritize and plan. Takes responsibility for outcomes.
Engineering Example: Designs features independently. Makes architectural decisions for bounded contexts. Troubleshoots complex issues. Considers trade-offs.
Career Level: Mid-Level to Senior Developer
Characteristics: Sees situations holistically. Recognizes when rules don't apply. Learns from experience of others. Intuition guides decisions.
Engineering Example: Anticipates problems before they occur. Knows when to break conventions. Mentors effectively. Sees system-level implications of local changes.
Career Level: Senior to Staff Engineer
Characteristics: Operates on intuition developed from extensive experience. Creates new approaches. Transcends reliance on rules and guidelines.
Engineering Example: Designs novel architectures. Identifies elegant solutions to complex problems. Influences industry practices. Deep expertise allows rapid diagnosis of subtle issues.
Career Level: Staff, Principal, Distinguished Engineer
An engineer can be an Expert in one domain (e.g., distributed systems) while being Competent or Advanced Beginner in another (e.g., frontend frameworks). The Dreyfus model applies per skill area, not to "the whole person."
Cultural fit evaluation from Stripe's engineering playbook
The question Stripe asks about every engineering hire
The Sunday Test evaluates cultural alignment beyond technical skills. Would this person enhance the team environment? Do they make collaboration energizing rather than draining?
Stripe rejects technically strong candidates who fail this test. One toxic hire damages the team's ability to attract future talent. Protecting culture is more valuable than filling headcount.
Rather than compromise on culture for immediate needs, Stripe waits for candidates who pass both technical and Sunday Test criteria. Organizational health compounds over time.
Our default Software Engineering questionnaire includes a "Personality" dimension inspired by the Sunday Test: evaluating teamwork, interpersonal skills, and whether colleagues genuinely want to collaborate with this person.
10 dimensions adapted from research and industry best practices
Our default questionnaire synthesizes insights from:
What it measures: Code quality, problem-solving ability, and technical depth.
Novice creates code from well-defined requests. Expert conquers complex problems with elegant solutions.
What it measures: Teamwork, interpersonal skills, the Sunday Test.
Would colleagues actively choose to work with this person?
What it measures: Technology awareness, cross-platform capability, learning agility.
From narrow specialization to broad experience across stacks and paradigms.
What it measures: Genuine passion for programming beyond work requirements.
Does this person code for the love of it, or just for paychecks?
What it measures: Application of best practices: testing, design patterns, agile methodologies.
From ad-hoc coding to systematic engineering discipline.
What it measures: Balancing technical ideals with business realities and constraints.
Shipping practical solutions vs. pursuing theoretical perfection.
What it measures: Mentoring, code review quality, supporting team objectives.
Individual contributor vs. force multiplier for the team.
What it measures: Explaining technical concepts, justifying design decisions, documentation.
Can they make complex ideas understandable to varied audiences?
What it measures: Learning capacity, adaptability, receptiveness to feedback.
Trajectory matters as much as current state.
What it measures: Product thinking, architectural foresight, anticipating future challenges.
Tactical execution vs. strategic thinking about system evolution.
This is the default framework. Blik is open source—modify dimensions, adjust weighting, add domain-specific competencies. The framework serves your needs, not the other way around.
Examples: Add "Security Awareness" for fintech teams. Include "Research Ability" for ML teams. Remove dimensions that don't apply to your context.
Radar charts visualize competency ratings across all 10 dimensions, with breakdowns by reviewer category
Dreyfus model has 40+ years of cognitive science research. Not invented by consultants, but by academics studying actual skill acquisition.
The stages map to lived experience. Developers understand where they are and what growth looks like without translation from HR jargon.
Acknowledges that someone can be Expert in databases but Novice in machine learning. Avoids oversimplified "levels."
Combines technical evaluation (Dreyfus) with cultural fit (Sunday Test). Both matter for high-performing teams.
Clear progression from one stage to the next. Reviewees understand what capabilities to develop for advancement.
Framework is a starting point, not dogma. Fork it, customize it, improve it. Share improvements with the community.
How Dreyfus stages apply to a specific competency
| Stage | Code Quality Characteristics |
|---|---|
| Novice | Code works for the happy path. Inconsistent formatting. Hard-coded values. Minimal error handling. |
| Advanced Beginner | Follows style guide. Extracts some magic numbers to constants. Adds basic error handling. Code is readable. |
| Competent | Well-structured modules. Appropriate abstractions. Comprehensive error handling. Tests cover main scenarios. Considers edge cases. |
| Proficient | Clear separation of concerns. Anticipates future changes. Excellent test coverage. Code is self-documenting. Patterns applied appropriately, not dogmatically. |
| Expert | Elegant solutions to complex problems. Code that other experts reference. Creates reusable components. Deep understanding of performance and maintainability trade-offs. |
Deploy Blik with Dreyfus-based questionnaires included. Customize to your team's needs.
Self-host for free with our Docker setup, or skip the infrastructure hassle with our fully managed EU-hosted version for €49/month. Same Dreyfus frameworks, zero DevOps.
View Plans