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.
Each concept lives in its own folder and focuses on one practical pattern at a time, with runnable code, concise documentation, and notes on implementation decisions.
- 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 | ✅ Done | 02-validation-error-handling |
| 03 — Pytest API Tests | Testing, test client, fixtures | ✅ Done | 03-pytest-api-tests |
| 04 — SQLite Persistence | Databases, storage, SQL | ✅ Done | 04-sqlite-persistence |
| 05 — Search & Filtering | Query parameters, filtering | ⬜ Planned | coming soon |
| 06 — Pagination | limit/offset, response metadata | ⬜ Planned | coming soon |
| 07 — File Uploads | Multipart uploads, CSV parsing | ⬜ Planned | coming soon |
| 08 — Background Tasks | Scheduled jobs, background tasks | ⬜ Planned | coming soon |
| 09 — Caching | Cache strategies, invalidation | ⬜ Planned | coming soon |
| 10 — Data Parsing & Extraction | 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.
