# 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` ```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 ```bash # 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 ```bash # 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** ```bash git init career-progression-2026 cd career-progression-2026 ``` 2. **Create Directory Structure** ```bash # Use the provided setup script bash scripts/setup.sh ``` 3. **Start Week 1** ```bash 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! 🚀**