Portfolio Guide — Presenting Your Projects to Employers¶
Home: README
You are building real software in this curriculum. This guide shows you how to turn your learn.python projects into a portfolio that gets interviews.
Which Projects Make the Best Portfolio Pieces¶
Not every project belongs in a portfolio. Employers want to see judgment, not volume. Pick 3–5 of your best projects and present them well.
High-Impact Projects by Level¶
| Level | Best Portfolio Projects | Why |
|---|---|---|
| 2 | CSV-to-JSON converter, data cleaning pipeline | Shows you handle messy real-world data |
| 3 | Test-driven normalizer, any TDD project | Proves you write tests (most juniors do not) |
| 4 | Transformation pipeline, schema validator | Demonstrates data engineering thinking |
| 5 | Retry-backoff runner, monitoring project | Shows operational awareness |
| 6 | ETL pipeline, incremental load simulator | Database + pipeline skills employers need |
| 7 | API adapter with caching, observability kit | Integration + production-grade patterns |
| 8+ | Any capstone, fault injection harness | Architecture and systems thinking |
| Modules | FastAPI app, Django CRUD, Docker deployment | Framework experience employers search for |
What Not to Include¶
- Level 00 exercises (too basic)
- Level 0 projects 01–05 (hello world, calculator — everyone has these)
- Projects where you only followed the instructions without adding anything
How to Present a Project¶
The README Template¶
Every portfolio project needs a README that a hiring manager can read in 60 seconds. Use this structure:
# Project Name
One sentence: what it does and why it exists.
## What I Built
2–3 sentences describing the project. Focus on the problem it solves,
not the technologies it uses.
## How to Run It
\```bash
git clone <your-repo-url>
cd project-name
pip install -r requirements.txt
python project.py
\```
## What I Learned
- Bullet point 1: a specific concept you understood by building this
- Bullet point 2: a mistake you made and how you fixed it
- Bullet point 3: what you would do differently next time
## Technical Details
- **Language:** Python 3.11
- **Testing:** pytest (X tests passing)
- **Libraries:** list only the important ones
The "What I Learned" Section Is the Most Important Part¶
Hiring managers see hundreds of calculator apps. They rarely see candidates who can articulate what they learned. This section separates you from other applicants.
Good examples: - "I learned that retry logic needs exponential backoff — my first version hammered the API and got rate-limited." - "I discovered that CSV files from Excel often have invisible BOM characters. I added detection for this after debugging a parsing failure for 2 hours." - "I refactored this three times. The first version used nested dicts, the second used dataclasses, and the final version used Pydantic models. Each refactor taught me why the previous approach was limited."
Bad examples: - "I learned Python." (too vague) - "I learned how to use for loops." (too basic for a portfolio) - "This was easy." (never say this)
Writing About What You Learned¶
The STAR Format for Technical Projects¶
When describing a project in an interview or cover letter:
- Situation: What problem were you solving?
- Task: What did you need to build?
- Action: What decisions did you make and why?
- Result: What did you deliver? What would you improve?
Example: "I needed to build a data pipeline that could handle CSV files with inconsistent formatting (Situation). The pipeline had to clean, validate, and transform the data into a normalized JSON format (Task). I chose to use Pydantic for schema validation because it gives clear error messages when data does not match the expected shape (Action). The pipeline now processes 10,000 rows in under 2 seconds and rejects malformed rows with descriptive error logs (Result)."
Common Questions Interviewers Ask About Portfolio Projects¶
Prepare answers for these:
- "Walk me through this project."
- "What was the hardest part?"
- "Why did you choose this approach over alternatives?"
- "What would you change if you had more time?"
- "How did you test it?"
- "How would this scale to 10x the data?"
GitHub Profile Tips for New Developers¶
Your Profile README¶
Create a repository named after your GitHub username (e.g., yourusername/yourusername) with a README.md. Keep it short:
# Hi, I'm [Name]
I'm learning Python through hands-on projects.
Currently at Level [X] of [learn.python](link-to-your-fork).
## Featured Projects
- [Project Name](link) — one line description
- [Project Name](link) — one line description
- [Project Name](link) — one line description
Repository Hygiene¶
| Do | Do Not |
|---|---|
| Pin your 3–5 best repositories | Pin everything |
| Write READMEs for pinned repos | Leave repos with no README |
| Use descriptive commit messages | Use "fix", "update", "stuff" |
| Show a contribution graph (commit regularly) | Commit 100 files once a month |
| Add topics/tags to repositories | Leave repos uncategorized |
Commit Messages That Show Growth¶
Your git history tells a story. Make it a good one.
# Bad
fix bug
update code
asdf
# Good
fix: handle empty CSV rows instead of crashing
feat: add retry logic with exponential backoff
refactor: extract validation into separate module for testability
The Green Graph¶
Employers look at your GitHub contribution graph. You do not need to commit every day, but consistent activity over weeks and months signals dedication. Working through this curriculum at a steady pace will naturally produce a healthy graph.
Building Your Portfolio Website¶
You do not need a portfolio website to get a junior role, but it helps. If you build one:
- Keep it simple — a single page with your name, a short bio, and links to 3–5 projects
- Host it for free on GitHub Pages, Netlify, or Vercel
- Include links to your GitHub profile and LinkedIn
- Do not include projects you cannot explain in an interview
Career Stage Portfolio Expectations¶
| Role | What Employers Expect to See |
|---|---|
| Intern | Evidence you can write code that runs. Tests are a bonus. |
| Junior | 3–5 projects with tests. Clear READMEs. Shows you can learn. |
| Mid-level | Projects showing architecture decisions. System design awareness. |
| Senior | Open-source contributions, complex systems, mentoring evidence. |
See CAREER_READINESS.md for a detailed mapping of curriculum levels to job roles.
Final Checklist¶
Before sharing your portfolio:
- 3–5 projects pinned on GitHub with READMEs
- Each README follows the template above
- Each project has passing tests (
python -m pytest tests/) - Your commit history shows real iteration (not a single bulk commit)
- You can explain every project in 2 minutes or less
- Your GitHub profile has a bio and profile README
| ← Teaching Guide | Home | Career Readiness → |
|---|---|---|