I bring the algorithm. Three models fight over the code.
I started learning Python at 20 in a computational physics course. Shortly after, I discovered Project Euler, a collection of mathematical problems designed to be solved with code. It was perfect practice. The course was about scientific computation, and these problems forced me to think algorithmically before writing a single line. So, in a way, I learned to code through Project Euler.
I got hooked. The following summer, long after the course ended, I kept solving problems just for the fun of it.
After finishing the scientific computation course I started to look further. That is when I stumbled onto harder problems, like Ants and Seeds, and realized just how vast the mathematical landscape really is. I had no idea how to even approach it. I spent the next month reading about Markov chains, diving into books I didn’t know existed, searching the web for techniques I had never heard of. That rabbit-hole feeling, the one where a single problem opens ten doors you didn’t know were there. That is what fuels me.
Over the years, every now and then, I would come back to Project Euler. Just for fun. To remind myself of Python syntax, to scratch an itch. I also started using it to teach. Whenever someone approached me wanting to learn Python, I would always start with Project Euler. I would tell them: the syntax does not matter yet. What matters is the algorithm. We would sit together and work through building the mathematical approach first, and the code would follow naturally.
When I decided to go on a job hunt, I knew the best place to sharpen my coding skills was Project Euler. Well, I considered LeetCode too. Maybe that is a future chapter. And when building this website, I thought: why not put the solutions up? But the problem is, Project Euler has been solved thousands of times on the web. There is nothing particularly creative about posting yet another solution set.
Then one day, while vibe coding something else entirely, it clicked. My Python syntax will never match an LLM’s. I can write better algorithms. I can see the mathematical structure behind a problem and find the elegant path, but I will never match the raw speed and breadth of an LLM’s syntax knowledge. So the idea formed: what if I only write the algorithm, the mathematical insight, the actual hard part, and let the LLMs battle it out on implementation? Derive the method, hand it off as a prompt, and benchmark Claude vs GPT vs Gemini on execution time, memory usage, and correctness. Sounded like fun. So, here we are.