Branch init was renamed to main.

2026-03-14 16:37:03 -05:00
2026-03-14 16:37:03 -05:00
2026-03-14 16:37:03 -05:00
2026-03-14 16:37:03 -05:00

Career Progression Repository Schema

Overview

This repository contains an 8-week intensive program focused on Python, MariaDB, and Distributed Systems mastery. The structure is designed to track daily progress, build a portfolio, and prepare for senior-level technical interviews.


Repository Structure

career-progression-2026/
│
├── README.md                          # Overview, goals, and progress tracking
├── .gitignore                         # Python, IDE, secrets, etc.
├── LICENSE                            # MIT or your choice
│
├── docs/
│   ├── syllabus.md                    # Markdown version of the syllabus
│   ├── 8_week_career_progression_syllabus.pdf
│   ├── progress-tracker.md            # Weekly checkboxes and reflections
│   ├── interview-prep/
│   │   ├── behavioral-stories.md      # STAR method stories
│   │   ├── system-design-notes.md     # Common patterns and solutions
│   │   └── technical-questions.md     # LeetCode-style prep
│   └── resources/
│       ├── reading-list.md            # Articles, books, videos
│       └── architecture-diagrams/     # Draw.io or Excalidraw files
│
├── week-01-python-internals/
│   ├── README.md                      # Week overview and daily goals
│   ├── day-01-gil/
│   │   ├── notes.md                   # Learning notes
│   │   ├── gil_demo.py                # CPU-bound comparison
│   │   └── interview-questions.md     # Practice Q&A
│   ├── day-02-asyncio/
│   │   ├── notes.md
│   │   ├── async_scraper.py
│   │   └── requirements.txt
│   ├── day-03-profiling/
│   │   ├── notes.md
│   │   ├── profiled_scraper.py
│   │   └── profiling_results/         # cProfile, viztracer outputs
│   ├── day-04-type-hints/
│   │   ├── notes.md
│   │   ├── typed_scraper.py
│   │   └── mypy.ini
│   ├── day-05-design-patterns/
│   │   ├── notes.md
│   │   ├── scraper_final.py           # With context managers, decorators
│   │   └── tests/
│   └── weekly-retrospective.md        # What worked, what didn't
│
├── week-02-mariadb-mastery/
│   ├── README.md
│   ├── day-01-innodb/
│   │   ├── notes.md
│   │   ├── docker-compose.yml         # MariaDB setup
│   │   ├── init.sql                   # Sample schema
│   │   └── transaction_experiments.sql
│   ├── day-02-indexing/
│   │   ├── notes.md
│   │   ├── slow_queries.sql
│   │   ├── optimized_queries.sql
│   │   └── explain_analysis.md        # EXPLAIN output analysis
│   ├── day-03-composite-indexes/
│   │   ├── notes.md
│   │   ├── composite_index_demo.sql
│   │   └── performance_comparison.md
│   ├── day-04-mariadb-features/
│   │   ├── notes.md
│   │   ├── json_columns.sql
│   │   ├── virtual_columns.sql
│   │   └── window_functions.sql
│   ├── day-05-schema-design/
│   │   ├── notes.md
│   │   ├── twitter_schema.sql
│   │   ├── ecommerce_schema.sql
│   │   └── design-decisions.md
│   └── weekly-retrospective.md
│
├── week-03-distributed-systems/
│   ├── README.md
│   ├── day-01-message-queues/
│   │   ├── notes.md
│   │   ├── docker-compose.yml         # RabbitMQ
│   │   ├── producer.py
│   │   └── consumer.py
│   ├── day-02-celery/
│   │   ├── notes.md
│   │   ├── celery_app/
│   │   │   ├── __init__.py
│   │   │   ├── tasks.py
│   │   │   └── config.py
│   │   └── docker-compose.yml
│   ├── day-03-idempotency/
│   │   ├── notes.md
│   │   ├── outbox_pattern/
│   │   │   ├── models.py
│   │   │   ├── worker.py
│   │   │   └── schema.sql
│   │   └── failure-scenarios.md
│   ├── day-04-cap-theorem/
│   │   ├── notes.md
│   │   ├── cap_examples.md
│   │   └── pacelc_analysis.md
│   ├── day-05-rate-limiter/
│   │   ├── notes.md
│   │   ├── rate_limiter.py            # Redis-based
│   │   ├── tests/
│   │   └── system-design.md           # Interview answer
│   └── weekly-retrospective.md
│
├── week-04-infrastructure/
│   ├── README.md
│   ├── day-01-docker/
│   │   ├── notes.md
│   │   ├── Dockerfile
│   │   ├── .dockerignore
│   │   └── multi-stage-build.md
│   ├── day-02-replication/
│   │   ├── notes.md
│   │   ├── docker-compose.yml         # Primary-Replica
│   │   └── replication-setup.md
│   ├── day-03-read-write-split/
│   │   ├── notes.md
│   │   ├── app/
│   │   │   ├── db_router.py
│   │   │   └── config.py
│   │   └── proxysql-config.cnf
│   ├── day-04-scaling-strategies/
│   │   ├── notes.md
│   │   ├── partitioning_demo.sql
│   │   └── scaling-interview-answers.md
│   ├── day-05-docker-compose/
│   │   ├── notes.md
│   │   ├── docker-compose.yml         # Full stack
│   │   └── architecture-diagram.png
│   └── weekly-retrospective.md
│
├── week-05-observability/
│   ├── README.md
│   ├── day-01-structured-logging/
│   │   ├── notes.md
│   │   ├── logging_config.py
│   │   └── sample_logs.json
│   ├── day-02-prometheus/
│   │   ├── notes.md
│   │   ├── instrumented_app/
│   │   │   ├── main.py
│   │   │   └── metrics.py
│   │   └── prometheus.yml
│   ├── day-03-grafana/
│   │   ├── notes.md
│   │   ├── dashboards/                # JSON exports
│   │   └── dashboard-screenshots/
│   ├── day-04-sentry/
│   │   ├── notes.md
│   │   ├── sentry_integration.py
│   │   └── error-scenarios.md
│   ├── day-05-outage-simulation/
│   │   ├── notes.md
│   │   ├── postmortem.md              # STAR format
│   │   └── incident-timeline.md
│   └── weekly-retrospective.md
│
├── week-06-security/
│   ├── README.md
│   ├── day-01-oauth-jwt/
│   │   ├── notes.md
│   │   ├── auth_service/
│   │   │   ├── main.py
│   │   │   ├── jwt_handler.py
│   │   │   └── models.py
│   │   └── oauth-flows.md
│   ├── day-02-password-hashing/
│   │   ├── notes.md
│   │   ├── auth.py
│   │   └── password-comparison.md     # bcrypt vs argon2
│   ├── day-03-refresh-tokens/
│   │   ├── notes.md
│   │   ├── token_rotation.py
│   │   └── security-tests.md
│   ├── day-04-sql-injection-secrets/
│   │   ├── notes.md
│   │   ├── sql_injection_examples.md
│   │   ├── vault_integration.py
│   │   └── .env.example
│   ├── day-05-owasp/
│   │   ├── notes.md
│   │   ├── security-audit.md
│   │   └── owasp-checklist.md
│   └── weekly-retrospective.md
│
├── week-07-system-design/
│   ├── README.md
│   ├── day-01-microservices/
│   │   ├── notes.md
│   │   ├── ecommerce-design.md
│   │   └── service-boundaries.png
│   ├── day-02-grpc/
│   │   ├── notes.md
│   │   ├── protos/
│   │   │   └── user_service.proto
│   │   ├── server.py
│   │   └── client.py
│   ├── day-03-refactoring/
│   │   ├── notes.md
│   │   ├── monolith/                  # Before
│   │   ├── microservices/             # After
│   │   │   ├── user-service/
│   │   │   └── order-service/
│   │   └── migration-strategy.md
│   ├── day-04-api-gateway/
│   │   ├── notes.md
│   │   ├── gateway/
│   │   │   ├── main.py
│   │   │   ├── routing.py
│   │   │   └── middleware/
│   │   └── architecture.png
│   ├── day-05-mock-interviews/
│   │   ├── notes.md
│   │   ├── design-instagram.md
│   │   ├── design-uber.md
│   │   ├── design-netflix.md
│   │   └── interview-recording-notes.md
│   └── weekly-retrospective.md
│
├── week-08-final-project/
│   ├── README.md                      # Project overview
│   ├── architecture/
│   │   ├── system-diagram.png
│   │   ├── database-schema.sql
│   │   └── api-specification.yaml     # OpenAPI
│   ├── src/
│   │   ├── api/
│   │   │   ├── main.py
│   │   │   ├── routes/
│   │   │   ├── models/
│   │   │   └── middleware/
│   │   ├── workers/
│   │   │   ├── celery_app.py
│   │   │   └── tasks/
│   │   ├── database/
│   │   │   ├── migrations/
│   │   │   └── seeds/
│   │   └── config/
│   │       ├── settings.py
│   │       └── logging.py
│   ├── infrastructure/
│   │   ├── docker-compose.yml
│   │   ├── Dockerfile
│   │   ├── prometheus/
│   │   ├── grafana/
│   │   └── nginx/
│   ├── tests/
│   │   ├── unit/
│   │   ├── integration/
│   │   └── load/
│   ├── monitoring/
│   │   ├── dashboards/
│   │   └── alerts/
│   ├── docs/
│   │   ├── setup.md
│   │   ├── deployment.md
│   │   └── troubleshooting.md
│   ├── requirements.txt
│   ├── pyproject.toml
│   └── weekly-retrospective.md
│
├── portfolio/
│   ├── README.md                      # Portfolio overview for recruiters
│   ├── project-showcase.md            # Best projects with screenshots
│   ├── technical-blog-posts/         # Write-ups of key learnings
│   │   ├── gil-deep-dive.md
│   │   ├── database-scaling.md
│   │   └── microservices-migration.md
│   └── resume-bullets.md              # Achievement-focused bullets
│
└── scripts/
    ├── setup.sh                       # Initial environment setup
    ├── daily-commit.sh                # Automated daily commit template
    └── week-summary.py                # Generate weekly progress report

Key Features

📁 Week-Based Structure

Each week is self-contained with daily subdirectories for focused learning and implementation.

📝 Documentation-First

Every directory includes:

  • README.md for overview and goals
  • notes.md for learning retention
  • Interview preparation materials

🔄 Retrospectives

Weekly reflection documents to:

  • Track progress
  • Identify challenges
  • Adjust learning strategies

💼 Portfolio Section

Ready-to-share materials including:

  • Project showcases with screenshots
  • Technical blog posts
  • Resume-ready achievement bullets

🧪 Tests Included

Demonstrates production-ready code practices with unit, integration, and load tests.

🐳 Infrastructure as Code

All Docker configurations versioned for reproducibility and easy environment setup.

📊 Interview Prep

Dedicated sections for:

  • Behavioral interviews (STAR method)
  • Technical interviews (LeetCode-style)
  • System design practice

Suggested .gitignore

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
venv/
env/
.venv

# IDE
.vscode/
.idea/
*.swp
*.swo

# Secrets
.env
*.pem
*.key
secrets/

# Database
*.db
*.sqlite3

# Logs
*.log
logs/

# Profiling
*.prof
*.trace

# OS
.DS_Store
Thumbs.db

# Docker
.docker/

Daily Workflow

1. Start of Day

# Create daily branch
git checkout -b week-01/day-01

# Navigate to daily directory
cd week-01-python-internals/day-01-gil/

2. During Learning

  • Take notes in notes.md
  • Write code with meaningful commits
  • Document interview questions and answers

3. End of Day

# Commit daily work
git add .
git commit -m "Week 1 Day 1: GIL deep dive and CPU-bound comparison"

# Merge to main
git checkout main
git merge week-01/day-01
git push origin main

4. End of Week

  • Complete weekly-retrospective.md
  • Update docs/progress-tracker.md
  • Review and refactor code

Portfolio Building

During the Program

  • Document key learnings in technical-blog-posts/
  • Take screenshots of working projects
  • Write achievement-focused bullets for resume

After Completion

  • Make repository public on GitHub
  • Add comprehensive README with project highlights
  • Link to portfolio in resume and LinkedIn

Benefits of This Structure

Granular Progress Tracking — Daily commits show consistent effort
Interview-Ready — Easy to reference specific projects during interviews
Portfolio-Friendly — Clean structure for sharing with recruiters
Reproducible — Anyone can clone and follow along
Scalable — Easy to add more weeks or topics
Professional — Demonstrates software engineering best practices


Getting Started

  1. Initialize Repository

    git init career-progression-2026
    cd career-progression-2026
    
  2. Create Directory Structure

    # Use the provided setup script
    bash scripts/setup.sh
    
  3. Start Week 1

    cd week-01-python-internals/day-01-gil/
    # Begin learning and coding!
    
  4. Track Progress

    • Update docs/progress-tracker.md daily
    • Commit frequently with descriptive messages
    • Review weekly retrospectives

Success Metrics

By the end of 8 weeks, you should have:

  • 40+ days of documented learning and code
  • 8 major projects demonstrating different skills
  • Portfolio-ready GitHub repository
  • Interview stories using STAR method
  • System design practice for senior roles
  • Technical blog posts showcasing expertise

Next Steps

After completing the 8-week program:

  1. Apply to positions with your portfolio repository
  2. Continue contributing to open-source projects
  3. Publish blog posts on Medium or Dev.to
  4. Practice interviews on Pramp or interviewing.io
  5. Network by sharing your learnings on LinkedIn

License

Choose an appropriate license (MIT recommended for portfolio projects).


Contact

Add your contact information and links:

  • GitHub: [your-username]
  • LinkedIn: [your-profile]
  • Email: [your-email]

Good luck with your career progression journey! 🚀

Description
No description provided
Readme 36 KiB
Languages
Markdown 100%