Spec: a command-line tool that automates something you actually do
The brief
Find one small, repetitive task you (or someone you know) actually does by hand — renaming a batch of files a specific way, pulling the same few numbers out of a spreadsheet every week, checking a handful of websites for a change. Build a command-line tool that does it instead.
Requirements
- Runs from the terminal and takes at least one real argument or option (not hardcoded to one specific file every time).
- Handles the case where its input is wrong or missing — a real error message, not a crash with a stack trace.
- Has a README that states, in one sentence, the actual problem it solves for a real person (including you).
Why this is portfolio-worthy despite being small
The value isn't the code's complexity — it's that the requirement is real and yours, which means you can explain the "why" behind every decision without reciting anything. It's also the fastest project on this list to actually finish, which matters: a finished small project beats an abandoned ambitious one, every time (see the previous lesson).
What to avoid
Don't pick a task so trivial that there's no decision to make (a script that only ever does one exact thing, with no options, isn't really "automating a task" — it's a one-off). And don't scope-creep it into a general-purpose tool for problems you don't actually have; solve the specific real one, then stop.
Resources
Curated resources for this node are on the way. Use what you already know how to search for, and check back soon.