FizzBuzz in Jev

Inspired by the classic Fizz Buzz in Tensorflow.

Interviewer: Let's implement fizzbuzz.

Me: Great. Let's spin up Claude.

Interviewer: For fizzbuzz?

Me: Of course. It's 2026, so like availability, I measure LOC written by agents in "nines". I'm operating near 4 nines, so unless you're hoping for an implementation that exceeds 10k LOC, I won't be writing any of it.

Let's start with evals…

Interviewer: What exactly are you evaling?

Me: Well, for the sake of speed and trendiness, let's just pick Jev, but with more time we could generalize this across other models.

Interviewer: Perhaps we should just focus on code?

Me: Agreed.

Spin me up a rust binary to do evals for fizzbuzz…

Interviewer: Rust?

Me: Lean into the meme.

Read the Jev API docs. We'll wire up several fizzbuzz strategies using Jev.

As a baseline, let's use some random strategies: pure random & weighted random based on expected distribution of fizz/buzz/etc. And a naive strat that just picks the number.

Interviewer: Random strategies?

Me: Mostly vanity - to show that we're better than random. Honestly, we could get these numbers with simple math, but it won't be our bottleneck, so let's not optimize prematurely.

For our eval data, use variants to represent it numerically, as words, and as a binary array.

Interviewer: Is the binary array necessary?

Me: I dunno yet. We'll know shortly.

Let's explore strategies to try:
- Minimal "Is this fizz/buzz/fizzbuzz?" questions
- Qualify that this is the FizzBuzz game in each question
- Add the divisibility rule to each question
- Just ask if the number is divisible by 3 or 5

Interviewer: Do we really need 4 strategies for fizzbuzz?

Me: We're at 7 if you count the baselines, but let's add a few more:

- Choice: what does FizzBuzz print for the number
- Given the classic interview problem description, what should be printed for the number

And of course, let's outsource the math as explicitly advised against:

- What is the remainder when divided by {3,5}?

And let's abuse scoring for a strategy?

- How fizzbuzzy is the number? (for some convoluted fizzy-scale)

Interviewer: Could we start implementing a solution?

Me: After we eval these strategies.

Write the eval function - standard fizzbuzz mod-branching.

Interviewer: Why don't you just write that function for me?

Me: We could spend 20 min talking about ownership and lifetimes, but honestly, Chris Morgan already wrote a great (albeit outdated) post years ago about why your first FizzBuzz implementation might not work in Rust.

So let's stay focused and get this running.

Probe the API for a stable, unthrottled concurrency. Then run our evals for these strategies against each of our dataset variations over the dataset range 9000-10999.

Interviewer: 9000-10999?

Me: Too likely that 1-100 is in the training set. Also, instinctively, I want to vary the importance of the first digit. It's a range large enough to be interesting, and small enough to get quick answers.

And the results are rolling in...

jev-1.13.0//9000–10999
y/nchoicescorebaseline
moduloWhat is the remainder when divided by {3, 5}?
divisibleIs the number divisible by {3, 5}?
printWhat does FizzBuzz print for the number?
classicGiven the interviewer's spec, what goes on the whiteboard?
vibes-rulesIs this {fizz, buzz, fizzbuzz}? (+ divisibility rule)
fizzinessHow fizzy is the number?
vibes-gameIn FizzBuzz, is this a {Fizz, Buzz, FizzBuzz}?
vibesIs this {fizz, buzz, fizzbuzz}?
always-numberAlways print the number
random-weightedPick random with true weights
randomPick random

Interviewer: So what did you conclude?

Me: I'm disappointed that model math won. You were right to doubt the binary array. But the fizziness scale is pretty epic!

Interviewer: We'll be in touch.


Debrief

Based on the interview transcript, how does the interviewer vote on the candidate?
jev-1.13.0//score 0.63 of 3, confidence 0.62
Strong no hire38%No hire62%Hire0%Strong hire0%

Devastating. No more tokens for you, Jev.

You can find the FizzJev slop grenade on GitHub.