I spent a Saturday afternoon doing something deeply unproductive on paper: I ran the same three coding tasks through three local models on my own laptop, and timed everything. No cloud, no API key, no subscription. Just a mid-range machine, a fan that sounded like a hairdryer, and a spreadsheet.
The question I actually wanted answered: can a free model sitting on your own disk do real work, or is local AI still a toy you show your friends?
The setup
Three models, all open-weight, all run through Ollama on the same laptop (16GB RAM, no dedicated GPU — the machine I actually own, not the one in a benchmark blog post):
- A 7B general coding model
- A 14B model, the biggest that fits without the laptop giving up
- A small 3B model I expected to lose Three tasks, the kind I do every week:
- Write a Python function that parses a messy CSV and returns clean rows, skipping bad lines instead of crashing.
- Explain a 60-line function I wrote six months ago and forgot.
- Find the bug in a JavaScript fetch call that works on my machine and fails in production. Each model got the exact same prompt, once. No retries, no cherry-picking. If it failed, it failed. ## What happened Task 1, the CSV parser. The 7B model wrote clean code on the first try, with a proper try/except around the bad rows. The 14B model wrote fancier code — a whole class, type hints, a docstring longer than the function — and it had a bug in it. The 3B model wrote something that worked but silently dropped the header row. Score: 7B wins, 14B second, 3B last. Task 2, explaining my old code. The 14B model won this one easily. It caught that the function was doing two jobs and said so, in plain language. The 7B gave a correct but shallow summary. The 3B model described what the code did line by line, which is the least useful kind of explanation. Score: 14B wins. Task 3, the fetch bug. This one surprised me. The bug was a missing
awaitbefore a.json()call, plus a CORS header the production server strips. The 7B model spotted both. The 14B spotted the await and missed the header. The 3B model blamed the API key, which was wrong and would have sent me down a two-hour rabbit hole. Score: 7B wins again. Final tally: the 7B model won twice, the 14B won once, the 3B won nothing. The free model on my laptop beat the bigger free model on my laptop most of the time. ## The part nobody mentions: speed The 14B model took about 40 seconds per answer. The 7B took 12. The 3B took 5. That gap matters more than the quality gap, because a 40-second wait breaks your flow. You tab away, you check a message, you lose the thread. Twelve seconds is a pause. Forty seconds is a context switch. So the real ranking, for actual daily work on this machine, is not quality alone. It is quality divided by waiting time. And on that score the 7B model laps the field. ## What I would actually do with this I am not deleting my cloud subscription. For a gnarly refactor or a design question, the big cloud models are still better, and pretending otherwise would be dishonest. But for the everyday stuff — write this parser, explain this function, find this bug — the local model is now good enough, and it has three advantages the cloud does not: it costs nothing per prompt, it never sends my code to anyone's server, and it works on a plane. Here is the honest setup I landed on: local 7B model as the default for small tasks, cloud model for the hard ones. The switch is a habit, not a tool. When I catch myself pasting code into a chat window for something small, I stop and ask the local model first. Half the time it is done before the cloud tab would have finished loading. If you have a laptop with 16GB of RAM, try it. Install Ollama, pull a 7B coding model, and give it one real task from your actual work — not a demo prompt, a real one. Time it. Then decide whether the cloud deserves to be your first stop, or just your second. The fan noise is the price of admission. Worth it.
