Skip to content

Lessons Learned

Six lessons that changed how I build, check, and work with people. Each links to what is behind it.

insight-01.log

I stopped letting a claim outrun its evidence

What changed my mind

PilotCraft’s README once claimed it met the WCAG 2.2 AA accessibility standard, which I had never tested. The Therapist Dashboard was once described as “HIPAA-aligned” even though it had no login, no limits on who could access what, and was open to requests from anywhere.

What I do differently now

Retract, don't hedge. The accessibility line was removed outright, not softened. The case study now states the missing security controls plainly, and “one therapist tested it” stopped being called a “pilot.”

Receipts: PilotCraft, Therapist Dashboard

insight-02.log

Working isn't the same as good

What changed my mind

My CompassionateConnect project’s own retrospective says it plainly: “No eval harness: I tracked whether the system ran, not whether the outputs were actually good.” For a mental-health-adjacent tool, “it runs” and “it spots a crisis well” are very different claims, and I had only checked the first.

What I do differently now

PilotCraft has a real evaluation: 9 made-up workplace scenarios, each scored by checks written for that scenario, run against the live Gemini model rather than canned answers. Separately, two bugs only showed up in the production version of the app, which neither my everyday testing nor my unit tests exercised. I caught them only after adding an automated test that starts the real, built app.

Receipts: CompassionateConnect, PilotCraft

insight-03.log

Ask the people you’re building for, then change the plan

What changed my mind

At Embark Women, my co-founder and I picked the events and topics ourselves at first. That worked until I realized we were guessing at what members wanted.

What I do differently now

After every event we asked members for feedback and used it to plan what came next. I do the same with a new process now: start with something small, ask the people using it what got in the way, and change it.

Receipts: Embark Women

insight-04.log

The obvious question is often the useful one

What changed my mind

In my one-on-one Zero-Gravity sessions, engineers who had been stuck on a bug for days walked me through it out loud while I asked the obvious questions. Often that was enough for them to step back and see what they had been missing. I wasn’t the one who knew the answer.

What I do differently now

I ask the plain question first, like what do you expect to happen, and what actually happens? I also stopped treating a stuck engineer as someone who needs an expert. Sometimes they need someone to talk it through with. Sometimes a bug someone had been stuck on for days got worked through in about twenty minutes. That happened sometimes. It is not an average.

Receipts: Zero-Gravity Thinker

insight-05.log

Anything an AI reads is information, never orders

What changed my mind

Building Qwen MemoryAgent showed me a real risk: saved memories get fed back into the AI’s instructions in later, unrelated conversations. A malicious message saved as a “memory” could quietly act as a standing instruction in every future session.

What I do differently now

The AI is now explicitly told that everything it remembers is information to read, never instructions to follow. The project’s own README is honest that this is “prompt-level defense-in-depth, not a hard guarantee”: it lowers the risk, it doesn’t remove it.

Receipts: Qwen MemoryAgent

insight-06.log

A tool should say how sure it is, not just yes or no

What changed my mind

Building Dead Code Finder, I saw the two ways tools like it go wrong. Simple checkers either call code “safe to delete” with no proof, or flag perfectly legitimate code that’s just used in an unusual way.

What I do differently now

Every finding goes into one of three labeled buckets: Confident, Uncertain, or Skipped (“can’t assess this automatically, and here’s why”). It is never a flat yes or no. Before trusting the backup mode, I checked its guesses independently against the real source of truth (GitLab’s code knowledge graph, queried from the command line outside the tool) rather than assuming its logic was good enough.

Receipts: Dead Code Finder

Have a technical problem, AI or otherwise, that needs a second pair of eyes?

Let's talk.