After this lesson, you will be able to: Build a non-trivial C command-line tool: a key-value store that persists to a file, a BSD-sockets HTTP client, or a simple compression tool.
Passion project per Curriculum-Upgrade.md. Pick one; write it correctly; compile without warnings; pass ASan.
Three options.
A. Persistent key-value store: append-only log file; `put key value`, `get key`, `del key`. Compact on demand. ~500 lines.
B. BSD-sockets HTTP client: minimal HTTP/1.1 client; `GET url`, prints body. ~300 lines.
C. RLE / simple compression tool: encode + decode run-length encoding. ~200 lines.
What separates 'works' from 'professional'.
Compile with -Wall -Wextra -Wpedantic -std=c17. ZERO warnings.
Run under -fsanitize=address,undefined. ZERO errors.
Valgrind --leak-check=full reports zero leaks.
Makefile with `all`, `clean`, `test` targets.
README with build + usage examples.
Unit tests (custom assertions or use Unity testing framework).
Man page or --help output.
Compiles + warnings = ship. Warnings are security review. Local-only, no GitHub. No tests. No --help / man page.
Sign in and purchase access to unlock this lesson.