█
LastWrite
  • > Curriculum
  • > Pricing
  • > For Educators
  • > About
  • > Contact
Log InGet Started

Questions, concerns, bug reports, or suggestions? We read every message, write to us at [email protected].

More ways to reach us →
LastWrite

Structured computer science lessons for aspiring developers and security professionals.

[email protected]

(201) 785-7951

Mon–Fri, 9 AM–5 PM EST

Learn

  • Curriculum
  • Pricing

Company

  • About
  • For Educators & Schools
  • Contact Us

Legal

  • Terms of Service
  • Privacy Policy
© 2026 LastWrite. All rights reserved.
Curriculum/Programming Languages/C/Passion Project: C CLI Tool
240 minAdvanced

Passion Project: C CLI Tool

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.

Prerequisites:Intro to Systems Programming

Pick a brief

Three options.

  1. 1

    A. Persistent key-value store: append-only log file; `put key value`, `get key`, `del key`. Compact on demand. ~500 lines.

  2. 2

    B. BSD-sockets HTTP client: minimal HTTP/1.1 client; `GET url`, prints body. ~300 lines.

  3. 3

    C. RLE / simple compression tool: encode + decode run-length encoding. ~200 lines.

Quality bar

What separates 'works' from 'professional'.

  1. 1

    Compile with -Wall -Wextra -Wpedantic -std=c17. ZERO warnings.

  2. 2

    Run under -fsanitize=address,undefined. ZERO errors.

  3. 3

    Valgrind --leak-check=full reports zero leaks.

  4. 4

    Makefile with `all`, `clean`, `test` targets.

  5. 5

    README with build + usage examples.

  6. 6

    Unit tests (custom assertions or use Unity testing framework).

  7. 7

    Man page or --help output.

💡 How to talk about this in an interview

Open the GitHub repo. Show the README + Makefile + ASan output. Walk through the memory layout (stack vs heap; what's allocated where; lifetime). Discuss one design tradeoff honestly. Five minutes of this proves you understand C deeply.

Common mistakes only candidates with offers avoid

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.

Sign in to purchase
←Intro to Systems Programming
Back to C
C Job Readiness→