Why we built USACO Tutor
Competitive programming gets a reputation for being narrow. Something you do if you want to ace technical interviews or win an olympiad. Both of those happen, but the reputation misses what is actually being trained.
What competitive programming teaches is the rest of software engineering, condensed. You take a problem you do not understand. You decompose it. You see structure where most people see a wall of text. You reason about whether your approach is going to be fast enough before you write any code. Then you write code that works the first time, because there is no second chance once the contest clock runs out. You either solved it or you did not.
USACO is one of the best-designed competitive programming competitions out there. The problems are hard. The levels actually mean something. The progression from Bronze to Platinum is a real walk through algorithmic thinking, not a difficulty curve invented for marketing purposes.
The problem with USACO, and with most competitive programming, is the feedback loop after a wrong submission. You write code. You submit. You get a verdict that says you failed two of fourteen test cases. That is the entire feedback. If you cannot see why, you are stuck.
We built USACO Tutor to close that part of the loop. The hard part is what kind of help to give. The answer itself is the wrong help. If a student is trying to internalize how to think about a graph problem, the last thing they need is a confident model handing them the solution and moving on.
So the hints are calibrated. The first one points the student at structure they may have missed in the problem. The next names a class of technique without saying which to use. The next walks part of the way without finishing the walk. If the student is still stuck three hints in, the explanation comes out, but it shows the reasoning, not just the code.
The AI is in the hints and the explanations. It is shaped to help students reason, not to reason for them. When a student types "I do not know where to start," the tutor does not return a solution. It returns a question.
That design choice is the whole product.
Related project
USACO Tutor
Learn algorithms. Think clearly.
Other notes
The decisions that don't iterate
Most things you build are reversible. A few are not. Telling them apart is harder than it sounds, and getting it wrong is what most software regret turns out to be.
What 'honest software' means in practice
We use the phrase a lot. It is easy to say. It is harder to specify.
Why we built Vyzrly
College admissions has always been a black box. We wanted to make it a little more honest.
When AI is the wrong tool
The reflex to reach for AI on every problem is a symptom of taste failure, not technical sophistication.
Why we built Glossem
Product copy lives inside code. That is a problem for everyone who is not an engineer.
Why we built Break the Test
The SAT has seven versions in circulation. Serious students burn through them in a month. The bigger problem is that even unlimited practice would not fix the thing that actually costs them points.