Technical Learning Lab · Foundational fluency
Python CLI / Log Analyzer
A self-directed first Python build: a command-line tool for reading, parsing, and making sense of log files - built to earn real command-line fluency by designing the program, hitting errors, and debugging through them.
Overview
Where the ramp started
This lab was the foundational step in a deliberate ramp into hands-on engineering. Rather than passively working through exercises, I set out to build a small but complete command-line program end to end: take raw log files as input, parse them line by line, apply filtering and branching logic, and return a readable summary in the terminal.
The goal was fluency - getting comfortable enough with Python’s core building blocks that the language stops being in the way and starts being a tool for thinking. It is intentionally modest in scope and honest about that: a first build, done properly, that established the habits the later projects rely on.
What the build exercised
Focus areas
Command-line interface
Structuring input, arguments, and output so the tool is actually usable from a terminal - not just a script that runs once.
Reading & parsing files
Opening log files and processing them line by line, pulling structure out of unstructured text.
Control flow & branching
Filtering, matching, and routing lines based on their content - the logic that turns raw lines into answers.
File I/O & edge cases
Handling real files, including the messy and malformed lines that never show up in a tidy tutorial.
Debugging discipline
Reading tracebacks, isolating failures, and fixing the root cause instead of pasting over the symptom.
Summarizing output
Counting, grouping, and presenting results back to the user in a form that’s quick to read and act on.
What it demonstrates
Skills built
How it was built
Phase-gated, not tutorial-following
I built this in phases, treating each capability as a gate: get input working, then parsing, then filtering, then output - proving each layer before moving to the next. When something broke, I stayed with the error until I understood why, rather than reaching for a copy-paste fix. That loop - build, inspect, break, debug, iterate - is the same discipline that now drives the larger projects in the portfolio, from StoryTime to RoundTable.
See how it connects
This was step one. The same execution habits carry through the featured projects and the rest of the portfolio.