Tshivhidzo Mbedzi AI & Technology Specialist

Verification practice

I verify my own results, and I retract them when the measurement was wrong.

A portfolio can show what someone built. It is much harder to show how someone thinks when their own work turns out to be wrong, and for evaluation and quality roles that is the part that matters.

So this page is six cases where I was wrong. In each one the error was mine, the result looked good, nobody else would have caught it, and I discarded the conclusion.

These are described without the specifics of the systems they came from, which are private work. The reasoning is reported exactly as it happened.

Why this page exists. The roles I am targeting — AI quality rating, AI evaluation, AI training, AI quality assurance — exist because AI output cannot be trusted without someone checking it. Anyone can claim to be rigorous. These are six dated cases where the flawed result was mine, it looked good, no one else would have caught it, and I threw the conclusion away.

The six cases

Measurement validity

I discarded a full day of my own results over one simulator setting

What happened

A full session of parameter work — several sweeps, a measured performance frontier and a set of adoption decisions — had been run with the simulator interpolating between recorded data points instead of replaying the real recorded series.

Why it mattered

For this system that is not a detail. Its behaviour depends on which of several conditions is met first inside a single interval, and on interpolated data that ordering is estimated rather than observed. Worse, the parameters adopted that day were adopted on top of one another, so each inherited the uncertainty of the one before it.

What I did

Marked every figure from the session unverified in my own records, including the ones I liked, and queued a full re-run against the real recorded data. The rule is now absolute: real recorded inputs, or it is not evidence.

The lesson

The results were internally consistent, reproducible, and wrong. Consistency is not validity. Before trusting any number I now check what the measurement apparatus was actually doing, and I would rather lose a day's work than keep a conclusion I cannot defend.

Why this transfers to AI work

Directly transferable: an evaluation run on the wrong data split, the wrong decoding settings or a stale checkpoint fails in exactly this way, and looks exactly as convincing.

Instrument validation

The built-in success metric was wrong, and trusting it would have cost me a real improvement

What happened

The platform I was working in reports a count of attempts and a success rate. For my system both were inflated, because completing an operation in two stages produces two separate records and the platform counts both — and the first stage succeeds by construction.

Why it mattered

The change I was evaluating moved the platform's reported success count DOWN while the true number of successful outcomes went UP. Reading the dashboard would have rejected a genuine improvement, and I would have had a plausible reason and no idea I was wrong.

What I did

Wrote a script that pairs the records back into whole outcomes and measures at that level. Every figure since has been measured that way, and the discrepancy is documented so that nobody — including me — reads the platform's own number again.

The lesson

Validate the instrument before the hypothesis. A metric supplied by a tool measures something, and it is worth finding out exactly what before letting it decide anything.

Why this transfers to AI work

The same failure as accepting a benchmark score without checking what it counts. Aggregate accuracy over a mislabelled set is a number, not a result.

Content evaluation

My own teaching material was accurate and taught the opposite of its lesson

What happened

An instructional video I produced included a chart comparing two configurations of the same system over the same sequence of events. Because that particular sequence happened to end favourably, the more aggressive configuration finished ahead. Every data point on the chart was correct.

Why it mattered

The lesson was that the conservative configuration is safer. The chart demonstrated that the aggressive one performs better. A viewer would take away the opposite of what the material was written to teach, and act on it. No fact-check would flag it, because there was no incorrect fact.

What I did

Changed what the chart measures — the worst decline from a peak, rather than the final value — so it shows what the aggressive configuration actually costs. Then added a review question to the production pipeline: not "is this accurate" but "what would a viewer conclude from this".

The lesson

The most dangerous content failure is not inaccuracy. It is accurate material that implies something false, and the only way to catch it is to evaluate the inference a reader will draw rather than the facts on the page.

Why this transfers to AI work

This is what AI content evaluation and quality rating consists of. Rating an output as correct because every sentence is defensible, while the answer as a whole misleads, is the central failure mode of the job.

Testing against reality

My own misuse-detection rule flagged the most legitimate users

What happened

I wrote a rule to detect misuse of a system I had built. It flagged any single account appearing in more than one place at once. Run against real usage data for the first time, it immediately flagged the two most active legitimate users.

Why it mattered

They had done nothing wrong. Their usage pattern was exactly what a model user looks like for that system. The rule was not buggy — the rule was wrong. And the test fixture passed happily, because the fixture encoded the same misunderstanding as the code.

What I did

Added the missing condition, so that pattern alone is no longer sufficient to flag, and made it standard practice to run any rule affecting real people against real data before release.

The lesson

A passing test tells you the code does what you wrote. It cannot tell you that what you wrote is the wrong rule. A fixture inherits the author's assumptions, so a fixture-only test validates your reasoning against itself.

Why this transfers to AI work

In content moderation or safety classification this is the same mathematics with a person on the other end of the false positive, which is why I treat real-data validation as mandatory rather than thorough.

Resisting a good story

A change that produced more successes and performed worse

What happened

A scheduling constraint in one of my systems made it skip opportunities after a long-running operation. It looked like a large and obviously recoverable inefficiency — well over a hundred missed cases. I implemented the fix properly and verified that the control run reproduced the baseline exactly.

Why it mattered

It worked, in the sense that it did what it was designed to do: substantially more activity and substantially more successful outcomes. It also performed materially worse overall, and failed both halves of the held-out split. The additional cases succeeded at roughly half the base rate, because the conditions that made them available were the same conditions that made them poor candidates.

What I did

Reverted it, and recorded the reasoning at the relevant line of code so a future version of me does not rediscover the same appealing idea. Three separate ideas in that system have now been tested, rejected, and rejected again on a later attempt.

The lesson

"More successes" is not "better". A change can succeed at its stated objective and still be a bad change, and a strong causal story is the easiest thing in the world to believe when it is your own.

Why this transfers to AI work

The equivalent in machine learning is a change that improves the headline metric and degrades the thing the metric stands in for. Keeping the rejections, with reasons, is what stops the cycle repeating.

Scope of evidence

I reproduced a published result faithfully, then tested the period the author never showed

What happened

Rebuilding a published method from its author's own material, my results closely matched the figures they advertised. The rebuild was faithful — same inputs, same behaviour, same headline numbers.

Why it mattered

Their figures covered a window of under two years. Running the identical implementation over the preceding three years produced a result barely above break-even, with more than double the worst-case decline and two flat years. The method was not misrepresented so much as the evidence was: the window was the claim.

What I did

Recorded both periods together, so the favourable window can never be quoted without the unfavourable one beside it. I also established that the headline success rate was doing persuasive work the underlying arithmetic did not support, given how much each failure cost relative to each success.

The lesson

Reproducing a result confirms the implementation, not the claim. The question is always what was excluded from the window, and a success rate quoted without the cost of being wrong says very little.

Why this transfers to AI work

Benchmark cherry-picking is the direct analogue. A model evaluated only on the tasks it was tuned for will look excellent, and every number will be perfectly real.

The method

The adoption test those cases produced

Every candidate change to the system this came from goes through it. The domain is incidental — the structure is the same one an evaluation harness needs.

Adoption test applied to every candidate change Randomness is fixed first so runs are comparable, outcomes are measured whole rather than per platform record, and a change is adopted only if both halves of the split improve independently. Candidate change Fix the randomness seed · fixed execution delay The default execution-delay setting is random, which makes runs non-reproducible. Simulate on real recorded data interpolated data is not evidence Measure whole outcomes pair two-stage records back together The platform double-counts two-stage operations, inflating its reported success rate. In-sample half Out-of-sample half Did BOTH halves improve? Improvement in the total while failing a half is a fitted result, not an improvement. Adopt — on a plateau, not a peak Reject — and record the evidence in code
Adoption test applied to every candidate change — Randomness is fixed first so runs are comparable, outcomes are measured whole rather than per platform record, and a change is adopted only if both halves of the split improve independently.

Practices

Eight rules, each earned by getting it wrong

  1. Validate the instrument before the hypothesis

    Establish what the measurement actually counts before letting it decide anything.

  2. Hold out a split and require both halves to improve

    Aggregate improvement hides overfitting. A change that improves the total while failing a half is a fitted result.

  3. Prefer a plateau to a peak

    Adopt a value whose neighbours also pass. A setting that works only when its neighbours do not is more likely noise than a finding.

  4. Fix the sources of randomness

    Seeded generation and fixed execution settings, or successive runs are not comparable and you are measuring noise.

  5. Test against reality, not only fixtures

    A fixture encodes the author's assumptions. Anything that affects real people is exercised against real data first.

  6. Evaluate the inference, not only the facts

    Ask what a reader would conclude. Accurate material that implies something false is the failure no fact-check catches.

  7. Keep the rejections, with the evidence

    Record what was tried and why it failed, at the place in the code where someone would try it again.

  8. State what is not verified

    Unverified results stay labelled unverified, including the flattering ones.

What I have not done

To keep this page honest about itself: I have never worked to a published rating rubric, and my judgements have never been calibrated against another rater. Inter-rater agreement is a measurement I have not been subject to, and it is the standard instrument of the field I am applying into.

I have also never evaluated another organisation's model outputs, to their guidelines, at volume, against a deadline. Doing it on my own systems where I set the standard is easier in one important respect: nobody was disagreeing with me.

Building a published evaluation harness — a rubric, a scored test set and measured agreement with a second rater — is step 5 on my roadmap, and it is the step I most want to do.

Role-by-role fit Get in touch