add: i am a software mechanic post with un-word homework
This commit is contained in:
parent
63ad455374
commit
68c9e16061
1 changed files with 200 additions and 0 deletions
200
content/2026-03-20-i-am-a-software-mechanic.rst
Normal file
200
content/2026-03-20-i-am-a-software-mechanic.rst
Normal file
|
|
@ -0,0 +1,200 @@
|
|||
I Am a Software Mechanic
|
||||
########################
|
||||
|
||||
:author: Russell Ballestrini
|
||||
:slug: i-am-a-software-mechanic
|
||||
:date: 2026-03-20 12:00
|
||||
:tags: Opinion, Code
|
||||
:status: published
|
||||
|
||||
That job title doesn't exist yet on any W-2.
|
||||
|
||||
But it describes exactly what I do.
|
||||
|
||||
You call me when a machine-generated tool breaks something real.
|
||||
A harvest lost. A contract mispriced. A greenhouse running dry.
|
||||
I show up. I read the spec. I find the gap between what someone told the machine to do & what the world actually did.
|
||||
Then I fix it & drive to the next farm.
|
||||
|
||||
**The pay reflects the gap between what this work actually does & what people think it costs.**
|
||||
|
||||
Software mechanics don't write code.
|
||||
We maintain code that writes code.
|
||||
Nobody budgeted for that role yet.
|
||||
So most of us patch things on a handshake & call it consulting.
|
||||
|
||||
I keep a box of $4 toggle switches in my truck.
|
||||
Not for the wiring.
|
||||
For the clients who need to feel like they still have a hand on the wheel.
|
||||
|
||||
---
|
||||
|
||||
**Life as a software mechanic sucks. Let me explain.**
|
||||
|
||||
Every upstream dependency mutates without a release note.
|
||||
Weather models recalibrate. Pricing APIs shift. ML models get quietly retrained.
|
||||
Your client's tool keeps running. Keeps returning confident outputs.
|
||||
Nobody notices until someone loses $25,000 in undersized cabbage.
|
||||
|
||||
Then they call you. You charge $200 for the visit.
|
||||
You spend 4 hours diagnosing a spec that never mentioned the weather service it silently relied on.
|
||||
You bill 4 hours. You eat 2.
|
||||
The client balks at the invoice because "it's just a setting."
|
||||
|
||||
**This happens every week.**
|
||||
|
||||
Tools get better. Specifications don't keep pace.
|
||||
The world underneath the specs never simplifies.
|
||||
So the gap between intent & execution keeps widening.
|
||||
Someone has to crawl into that gap.
|
||||
|
||||
That someone doesn't have a union. Doesn't have a job board.
|
||||
Doesn't have a standard rate card.
|
||||
Mostly posts on forums & waits for DMs.
|
||||
|
||||
---
|
||||
|
||||
**Why this matters right now:**
|
||||
|
||||
A post on `nearzero.software <https://nearzero.software/p/warranty-void-if-regenerated>`_ by Scott Werner called "Warranty Void If Regenerated" nails the shape of this work.
|
||||
Tom Hartmann, a fictional software mechanic in rural Wisconsin, visits three clients in a day.
|
||||
Three different failure modes. Three different root causes.
|
||||
All of them trace back to specifications that didn't account for a world that moves.
|
||||
|
||||
Read it. Then come back for your homework.
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
HOMEWORK ASSIGNMENT
|
||||
===================
|
||||
|
||||
.. class:: center
|
||||
|
||||
**Word Hunt — "Warranty Void If Regenerated"**
|
||||
|
||||
.. class:: center
|
||||
|
||||
*For students learning about software, language, & the `un` prefix*
|
||||
|
||||
|
|
||||
|
||||
**Your mission:**
|
||||
|
||||
Scrape `https://nearzero.software/p/warranty-void-if-regenerated <https://nearzero.software/p/warranty-void-if-regenerated>`_.
|
||||
|
||||
Find every word that starts with ``un``.
|
||||
|
||||
List them alphabetically.
|
||||
|
||||
Write your best definition for each word.
|
||||
|
||||
Then check your answers below.
|
||||
|
||||
|
|
||||
|
||||
**Scraping starter (Python):**
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
import urllib.request
|
||||
from html.parser import HTMLParser
|
||||
import re
|
||||
|
||||
url = "https://nearzero.software/p/warranty-void-if-regenerated"
|
||||
|
||||
with urllib.request.urlopen(url) as response:
|
||||
html = response.read().decode("utf-8")
|
||||
|
||||
# strip tags, split on whitespace, find un* words
|
||||
text = re.sub(r"<[^>]+>", " ", html)
|
||||
words = text.split()
|
||||
un_words = sorted(set(
|
||||
w.strip(".,;:!?\"'()[]").lower()
|
||||
for w in words
|
||||
if w.lower().startswith("un")
|
||||
))
|
||||
|
||||
for word in un_words:
|
||||
print(word)
|
||||
|
||||
|
|
||||
|
||||
**Define each word you find. Write your definitions before clicking the answer sheet.**
|
||||
|
||||
|
|
||||
|
||||
.. raw:: html
|
||||
|
||||
<details>
|
||||
<summary style="cursor:pointer; font-weight:bold; font-size:1.1em; padding:0.5em 0; user-select:none;">
|
||||
▶ Click to reveal answer sheet
|
||||
</summary>
|
||||
<div style="margin-top:1em; padding:1em; border-left:3px solid #666;">
|
||||
|
||||
<p><strong>Words starting with <code>un</code> found in the article:</strong></p>
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
<strong>under</strong> (as prefix: <em>under-watering</em>)<br>
|
||||
Means below a threshold or less than needed. Carol deliberately applies less water than standard to a clay-heavy spot. Under-watering on purpose. Not a mistake.
|
||||
</li>
|
||||
<li>
|
||||
<strong>underlying</strong><br>
|
||||
The foundation below what you see. The "underlying weather models" power the harvest tool but live outside its spec. When they change, the tool breaks. Nobody planned for that.
|
||||
</li>
|
||||
<li>
|
||||
<strong>underneath</strong><br>
|
||||
Below the surface, literally & figuratively. Clay sits underneath Carol's greenhouse soil. And underneath client resistance, Tom finds a real question every time.
|
||||
</li>
|
||||
<li>
|
||||
<strong>underpriced</strong><br>
|
||||
Sold for less than actual value. Ethan's miswired feed tool caused automated contracts to lock in milk prices below market. A small parsing error. A three-month loss.
|
||||
</li>
|
||||
<li>
|
||||
<strong>undersized</strong><br>
|
||||
Below the grade threshold. Margaret's early-harvested cabbage came in undersized. Undersized gets a discount. $25,000 worth of discount.
|
||||
</li>
|
||||
<li>
|
||||
<strong>understand</strong><br>
|
||||
To grasp deeply enough to use. Tom's central argument: a software mechanic in a farming town needs to understand farming. Not software. Farming.
|
||||
</li>
|
||||
<li>
|
||||
<strong>understood</strong><br>
|
||||
Past tense of understand. Hardware people understood atoms. Software people understood bits. People understood coffee. Coffee became Tom's benchmark for explaining spec complexity.
|
||||
</li>
|
||||
<li>
|
||||
<strong>uneventful</strong><br>
|
||||
Nothing went wrong. Tom's afternoon checkups ran uneventful. He appreciated that more than his clients probably knew. An uneventful visit means the spec held. That's a win.
|
||||
</li>
|
||||
<li>
|
||||
<strong>unexpected</strong><br>
|
||||
Something that arrived without warning. Carol's reaction to her grandson's irrigation upgrade matched "the expression people reserve for wasps' nests & unexpected tax bills." Technically superior. Emotionally disastrous.
|
||||
</li>
|
||||
<li>
|
||||
<strong>unless</strong><br>
|
||||
A conditional that marks the edge of machine knowledge. "That's a detail the AI has no way of knowing matters <em>unless</em> you tell it." One word. The whole argument.
|
||||
</li>
|
||||
<li>
|
||||
<strong>until</strong><br>
|
||||
The moment a static spec meets a dynamic world. "The tool worked perfectly <em>until</em> the world shifted underneath it." Until signals latent failure. The gap existed before the loss. You just couldn't see it yet.
|
||||
</li>
|
||||
</ol>
|
||||
|
||||
<p><em>11 words. All the same prefix. All pointing at the same problem: something below, something before, something outside the spec.</em></p>
|
||||
|
||||
</div>
|
||||
</details>
|
||||
|
||||
|
|
||||
|
||||
---
|
||||
|
||||
Software mechanics study language too.
|
||||
|
||||
Prefixes carry meaning. ``un`` signals what sits below the surface, before the failure, outside the specification.
|
||||
|
||||
Good luck.
|
||||
|
||||
.. contents::
|
||||
Loading…
Add table
Add a link
Reference in a new issue