ESAT and TMUA Prep is built by one person, Marlow, a Computer Science student. This is the full log: the problem each idea was meant to solve, what I built, why it should help, and the honest result where there is one. Today there are 618 question types across 88 skills, and 235 students have joined.
01
Questions that are generated, not collected
The problem
There is no proper bank of ESAT past papers: ten practice tests in Pearson’s player, then old ENGAA and NSAA papers you have to filter yourself. Students run out of material fast.
What I built
Instead of collecting questions, I wrote question families. Each one follows the structure the real paper uses and fills it with new numbers, written against the official specification. Every answer is an exact fraction, never a rounded decimal.
Why it helps
You can practise for as long as you want and never see the same question twice.
02
Every question is solved twice
The problem
A generator that produces a wrong answer is worse than no question at all, and nobody would check each one by hand.
What I built
Every question family has a second, independent solver that reaches the answer a different way, often by brute-force numerical search. If the two disagree by any amount, the question is thrown away before anyone sees it.
Why it helps
Students can trust the answer key. The automated test suite checks thousands of questions on every change.
03
Wrong answers that mean something
The problem
Most practice sites only know that you got a question wrong, not why.
What I built
Every wrong option is the answer a specific mistake produces: inverting a ratio, forgetting a unit conversion, stopping one step early. So picking an option tells the site which mistake you made.
Why it helps
Feedback can say “you increased the whole amount, not just the larger part” instead of just “incorrect”.
04
Making it harder
The problem
Early students told me the questions were too easy.
What I built
I added question models that combine constraints or need an extra decision, and stopped serving drill-level questions in timed papers.
Why it helps
An easy question tells a student preparing for a hard exam that the site isn’t serious.
05
Making it free
The problem
I looked at why people weren’t coming back and found it wasn’t the product: 15 people had signed up after the 50 founding places ran out and got no access, and 11 more had their free trial expire.
What I built
I removed the paywall entirely. Everyone gets everything.
Why it helps
You can’t learn whether a product works while the door is locked.
What happened
The lesson I took: look at the data before building anything new.
06
A model of each student, not just a score
The problem
A wrong answer can mean two very different things, and they need different fixes.
What I built
The model separates a wrong answer given fast (a misconception: a confident wrong rule) from one given slowly (a gap: no method at all). It holds a map of which of 73 skills depend on which, and ranks what to practise next by marks gained per minute, counting the time to fix any missing prerequisite first.
Why it helps
The best next topic isn’t your weakest one. It’s the one that wins the most marks for the time you have.
What happened
In a simulation with virtual students practising 8 minutes a day, the model beat random practice: Maths 1 77% vs 65%, Physics 53% vs 34%, Chemistry 57% vs 44%. Simulated students aren’t real ones, so this is a reason to test it, not proof.
07
Test, then practise
The problem
An endless stream of questions never tells you where you stand.
What I built
Practice now runs in a loop: a short test with one question per topic, at exam difficulty and on the real clock, with no marks until the end. Then practice on exactly the topics costing you marks. Then test again.
Why it helps
Students see their 27 marks as 27 squares, green, amber or red, and know what to work on.
08
A public board for ideas and bugs
The problem
Feedback arrived by email, a few at a time, and students couldn’t see whether anything changed.
What I built
A community page with real reviews, good and bad, and a public board where students post ideas and bugs, vote, and see them marked fixed.
Why it helps
It keeps me honest, and students can see the site improving.
09
Studying what makes real questions hard
The problem
My hard questions still weren’t as hard as the real thing.
What I built
I worked through the official TMUA 2022–23 papers and the ENGAA 2023 paper and found five patterns: the idea you need is disguised, the answer depends on a case you have to notice, the extreme value is hidden in the middle, three easy steps are chained, and the obvious method is a trap. I built twelve new question types around those patterns, each with its own independent solver.
Why it helps
Practice should feel like the exam, or it doesn’t prepare you for it.
10
Showing students what their slow questions cost
The problem
The real exam never tells you you’re slow. You just run out of time and leave the last questions blank.
What I built
At the end of a test, the site finds the one or two questions that took longest and says it plainly: you spent five minutes on this one, which was the time for about two more questions. It also shows where the real clock would have run out.
Why it helps
Time is marks. Students learn when to move on before exam day, not during it.
11
Exam-day rules for each student
The problem
Some topics pay far fewer marks per minute than others, and the best exam strategy differs from student to student.
What I built
From each student’s own timed answers, the site works out marks per minute by topic. A topic that pays far below their average becomes “do these last”; one they get right no more often than a guess becomes “guess and move on”.
Why it helps
Answering in the order that pays best is how you score more without knowing more.
12
Measuring how fast each student learns each topic
The problem
Doing well straight after practising isn’t the same as learning. Much of it is gone by the next morning.
What I built
The site treats the first question of the day on each topic, answered cold, as the real test. It compares those cold answers from one day to the next, adjusted for question difficulty and divided by the minutes practised. Every student starts at the average and moves toward their own number only as the evidence builds, so one lucky answer can’t skew the plan.
Why it helps
A topic you pick up quickly becomes cheaper to practise; one that stays flat gets left for exam-day strategy instead.
Next
Worked solutions for every question type, more Physics, and a full exam-day plan that orders the paper for each student to get the most marks in the time. Ideas and bugs go on the community board.