| [](https://github.com/nitiwari-dev/engineering-lessons/actions/workflows/build-ci.yml) |
A polyglot mono-repo to help software engineers grow in length and breadth — TDD, DSA, language playgrounds, system design, devops, and CI/CD, each as a standalone module with its own toolchain.
For an agent-friendly walkthrough (layout, build commands per module, conventions), see CLAUDE.md.
| Module | What’s inside |
|---|---|
agile/tdd/ |
Live TDD demos in Java with JUnit/Mockito/AssertJ — auth, checkout, generic |
dsa-kotlin/ |
Data structures & algorithms in Kotlin (Maven + JUnit5) |
code/fun-with-golang/ |
Go-by-example walkthrough (see GOLANG_EXAMPLE.md for the checklist) |
code/fun-with-kotlin/ |
Functional-style Kotlin |
code/fun-with-python/ |
Dockerized Jupyter, GenAI labs (FFT/PEFT, ROUGE/BLEU), LLM playgrounds, CLI |
code/fun-with-typescript/ |
TS basics & pre-requisites |
code/fun-with-shell-script/ |
adb bulk export/delete helpers |
system-design/ |
Fundamentals — hash functions, URL redirect router (Go + Java) |
devops/ |
Linux & CI/CD cheatsheets |
hooks/, scripts/ |
Git hooks + helper scripts wired by install-hooks.sh |
Runs mvn test for agile/tdd and dsa-kotlin before every commit, and validates branch name before every push.
sh scripts/install-hooks.sh
Branches must start with one of:
HEAD | feature | hotfix | conflict | bumpversion | revert | bug | fix | release | doc
Examples: feature-go, feature/go-channels, fix-build-ci, doc/readme.
# Aggregate (tdd + dsa, same as pre-commit hook)
sh scripts/run-tests.sh
# Per-module
mvn test --file agile/tdd/pom.xml
mvn test --file dsa-kotlin/pom.xml
mvn test --file code/fun-with-kotlin/pom.xml
mvn test --file system-design/topics/pom.xml
cd code/fun-with-golang && go test ./...
CI (.github/workflows/build-ci.yml) is path-filtered — it only tests modules whose files changed in the PR. Markdown-only PRs skip CI.