Course
Engineering setup for AI & Data Products
Build the foundational skills required to set up AI and data products properly, including terminal usage, Python project anatomy, Python package boundaries, virtual environments, dependency management with uv, configuration hygiene, Git and GitHub workflows, secrets management, repository visibility, licensing, testing, a minimal FastAPI starter app, Docker-based local services, and a guided starter-repo project.

Foundations for Setting Up AI and Data Products
Learn the core engineering foundations required to set up AI and data products properly:
1. Terminal Basics * Navigating folders and files * Running commands and scripts * Understanding terminal state, paths, and tree output 2. Python Project Anatomy * Organizing folders and files * Separating source code, notebooks, configs, tests, and documentation * Understanding what belongs where in a real project 3. Python Package Boundaries * Structuring Python modules and packages * Separating reusable code from one-off scripts * Managing imports cleanly 4. Virtual Environments and Dependency Management * Creating isolated environments * Managing dependencies with uv * Keeping project setups reproducible 5. Configuration Hygiene * Separating code from environment-specific settings * Using config files and environment variables properly * Avoiding hardcoded paths, keys, and credentials 6. Git and GitHub * Tracking code changes * Creating commits and branches * Working with remote repositories * Understanding basic collaboration workflows 7. Secrets Management * Storing API keys and credentials safely * Using .env files correctly * Preventing secrets from being committed to Git 8. Repository Visibility * Understanding public, private, and internal repositories * Knowing when a project should or should not be public * Managing access safely 9. Licenses * Understanding why licenses matter * Knowing the difference between common open-source licenses * Choosing the right license for personal, client, or commercial projects 10. Testing and Project Checks * Running basic project checks * Using pytest for starter backend validation * Checking work before commits and pull requests 11. FastAPI Starter App and Local Services * Creating a minimal FastAPI app * Adding a health endpoint * Understanding ports, processes, logs, Docker, Compose, and Postgres as a local service 12. README, Makefile, and Guided Project * Documenting setup clearly * Creating stable project commands * Completing a guided starter-repo project
Curriculum
M1Terminal Basics9 topics
- 1.1What the terminal actually is
- 1.2Terminal state, current directory, and tree
- 1.3Paths: absolute, relative, parent, and home
- 1.4Navigating and inspecting files
- 1.5Creating, copying, moving, and removing safely
- 1.6Running commands and reading output
- 1.7Shell environment basics
- 1.8Lab: build and diagnose a project skeleton
- 1.9Guided solution: terminal basics lab
M2Git and GitHub for project work11 topics
- 2.1Git state model
- 2.2Initialize a project repository
- 2.3Staging, diffs, and partial work
- 2.4Commit judgment and messages
- 2.5.gitignore, secrets, and large files
- 2.6GitHub remotes, branches, and pull requests
- 2.7Repository visibility and licenses
- 2.8Pull, sync, and conflict basics
- 2.9Stash, restore, revert, reset, and clean
- 2.10Cherry-pick and conflict handling
- 2.11Lab: project-start Git decisions

