Prerequisites
Portfolio and Proof of Work
Design portfolio projects that demonstrate practical Elixir depth across OTP, Phoenix, testing, and operations.
A strong Elixir portfolio is evidence of execution under real constraints. Hiring teams evaluate whether you can design, ship, operate, and improve systems.
Portfolio Objective
Your portfolio should answer three questions quickly:
- Can this person build and ship production-grade Elixir software?
- Can this person reason about failures and tradeoffs?
- Can this person communicate technical decisions clearly?
Proof of Work Beats Claims
What One Strong Project Must Demonstrate
Every flagship project should include:
- System design: clear architecture and module boundaries.
- Reliability model: retries, idempotency, and failure-mode handling.
- Data model quality: Ecto schema decisions, constraints, migrations.
- Operational readiness: deployment approach, runtime config, and runbook.
- Testing strategy: unit, integration, and scenario-based tests.
- Observability: telemetry events, dashboards, and alert points.
Recommended Project Mix
Use two or three projects total.
Project A: Product Service
Goal: prove delivery execution.
Minimum scope:
- Phoenix API or LiveView UI,
- Ecto-backed persistence,
- authentication and authorization basics,
- one external integration,
- deployment with reproducible instructions.
Project B: Reliability Workflow
Goal: prove operational thinking.
Minimum scope:
- Oban-based async workflow,
- retry policy and idempotency strategy,
- dead-letter or failed-job handling,
- incident simulation with remediation.
Optional Project C: Performance or Distributed Focus
Goal: show depth for senior or platform roles.
Example directions:
- throughput optimization with benchmarks,
- distributed node coordination,
- telemetry and tracing deep dive.
Artifact Checklist Per Project
Include these files in every flagship repo:
README.mdwith quickstart and architecture summary,docs/architecture.mdwith tradeoffs and alternatives,docs/runbook.mdwith deploy and incident actions,docs/postmortem-example.mdfor one failure scenario,docs/metrics.mdwith baseline performance and reliability numbers.
If these are missing, reviewers assume operational maturity is also missing.
Acceptance Criteria Template
Use explicit acceptance criteria before calling a project done:
- Service starts from clean clone using documented commands.
- Core feature has passing tests and failure-path coverage.
- One load or stress test result is documented.
- A deploy/recovery path is documented and tested.
- At least one incident scenario was simulated and written up.
Portfolio Scoring Rubric
Score each project 1-5 in these categories:
- Problem selection and business relevance,
- Architecture clarity,
- Reliability and failure handling,
- Operational readiness,
- Test quality and confidence,
- Communication quality.
Target average: >= 4.0 before actively using the project in interviews.
Common Portfolio Mistakes
- Too many toy apps with duplicate scope.
- Missing setup instructions or broken quickstart.
- No explanation for architecture decisions.
- No evidence of performance or reliability thinking.
- Large claims with no measurable outcomes.
Before/After Example
Weak summary:
Built a Phoenix app with background jobs.
Strong summary:
Built and deployed a Phoenix service processing 200k daily jobs with Oban.
Implemented idempotent workers, retry backoff, and failure dashboards.
Reduced failed job replay time from 90m to 12m using queue partitioning and runbook automation.
Interview-Ready Portfolio Packet
When applying, prepare a compact packet:
- two top repositories,
- one architecture diagram each,
- one page of measurable outcomes,
- one incident write-up,
- one benchmark snapshot.
This packet helps interviewers evaluate quickly and gives you concrete discussion material.
Exercise
Upgrade One Existing Repo to Portfolio Grade
Take one current Elixir project and complete the following:
- add
docs/architecture.mdanddocs/runbook.md, - add one load or benchmark result,
- add one incident simulation note,
- rewrite the README with a 5-minute quickstart,
- score the project using the rubric in this lesson.
Only treat the project as portfolio-ready when all five are complete.
Summary
Portfolio strength comes from operational proof, not app count. Build a small number of projects with clear architecture, reliable runtime behavior, and measurable outcomes that are easy for reviewers to verify.
FAQ and Troubleshooting
Can I use work projects if code is private?
Yes. Share sanitized architecture notes, outcomes, and incident lessons without exposing proprietary code or data. Public proof can be process and decision quality, not source access alone.
I only have small projects. Is that a problem?
Not if they are complete and well-documented. A small, polished project with tests, runbook, and metrics is stronger than a large unfinished demo.
Related Lessons
Key Takeaways
- A portfolio should prove ownership from feature design to production operations
- Each project needs artifacts that show reliability, failure handling, and measured outcomes
- Two deep, well-documented projects are stronger than many shallow demos