A learning-in-public project. I'm a software engineer consolidating my Python and software-engineering fundamentals by implementing one engineering concept at a time — from scratch, by hand — and writing down what I actually learned.
This repo is aimed at fellow beginners. Each concept lives in its own folder, is small enough to read in one sitting, and has its own notes explaining how to run it and what tripped me up.
- One concept per folder, numbered in order (
01-...,02-...). - I write the first version myself before looking at any reference solution. The point is understanding, not copying.
- Each concept folder has its own README with run instructions and notes.
You'll need Python 3.12 or newer.
# Clone and enter the repo
git clone https://github.com/ajitagupta/python-engineering-lab.git
cd python-engineering-lab
# Create and activate a virtual environment
python -m venv .venv
.venv\Scripts\activate # macOS/Linux: source .venv/bin/activateThen follow the README inside whichever concept folder you want to run — each lists its own dependencies and how to start it.
| Concept | Skill | Status | Folder |
|---|---|---|---|
| 01 — REST API | Flask routes, HTTP methods, JSON | ✅ Done | 01-rest-api |
| 02 — Validation & error handling | Input validation, status codes | ⬜ Planned | coming soon |
| 03 — Pytest API tests | Testing, test client, fixtures | ⬜ Planned | coming soon |
| 04 — SQLite persistence | Databases, storage, SQL | ⬜ Planned | coming soon |
| 05 — Search & filtering | Query parameters, filtering | ⬜ Planned | coming soon |
| 06 — Pagination | limit/offset, response metadata | ⬜ Planned | coming soon |
| 07 — File upload | Multipart uploads, CSV parsing | ⬜ Planned | coming soon |
| 08 — Background scheduler | Scheduled jobs, background tasks | ⬜ Planned | coming soon |
| 09 — Caching | Cache strategies, invalidation | ⬜ Planned | coming soon |
| 10 — Parser | Parsing, structured text | ⬜ Planned | coming soon |
Scoped to ten concepts for now; the back half (architecture, performance, production) gets planned once the pace settles.
A learning project, updated as I work through it. Progress over speed — one concept genuinely understood beats five rushed.
