About me
I'm Josh Smith. I'm a lawyer, I used to play correspondence chess seriously, and I build software with a lot of help from AI. I designed REMY.
- International Master, International Correspondence Chess Federation (ICCF): a correspondence chess title
- Peak ICCF rating 2381
- Designer of REMY, a chess engine built from scratch
It started in 2003
I got hooked on computer chess in 2003, my first year of college. I'd been reading about Deep Blue and Garry Kasparov, and the part that grabbed me was the idea that a computer could find new moves in the opening that people had missed.
I kept coming back to computer-assisted opening analysis, on and off, for about twenty years. Eventually I hit a wall. Finding a new move with a computer is one thing; to use it over the board you still have to play the rest of the game well, and that meant getting a lot stronger. In law school, and then as a young lawyer, I didn't have the time for that. Honestly, I didn't have the interest either.
Correspondence chess
Correspondence chess solved the problem. Games last months, and at the top level you're expected to use computers to analyse. That suited me well: real competition, where the work I put into a position counted.
It went well. I earned the International Master title from the International Correspondence Chess Federation (ICCF) and reached a peak ICCF rating of 2381. That's a correspondence title. It isn't the over-the-board International Master title that FIDE awards, and the two have separate ratings.
Why I stopped
What changed things was a game I should have won. I had a clearly winning position and drew it because of a move-entry error: I entered a move I didn't mean to play. That's where almost all the losses in correspondence chess come from, not from bad chess. In my next tournament I tried something different and played openings most people consider dubious, the King's Gambit among them. Those games were drawn too, and each of those draws counted exactly as much as a carefully prepared draw in a main line of the Spanish.
That got me asking a bigger question: is chess a draw if both sides play well enough? I spent a lot of time on the Berlin Defence against 1.e4 and the Ragozin Defence against 1.d4. I came to believe that they give Black a reliable way to draw, that White has nothing better elsewhere, and that correspondence chess with today's computers had turned almost entirely into a game of draws.
That's my conclusion, not a proof. Nobody has solved chess, and a handful of drawn games can't settle it. But it settled, for me, what kind of game I'd been playing.
So I stopped playing competitive chess. My chess analysis computer went into a closet, and I moved on.
How I got back
Years later I came back through work. We tracked a manual process in a shared Excel spreadsheet, and I started building a database app to replace it. With AI helping me write the code, it kept growing. I moved it from SQLite to PostgreSQL and connected it to my employer's single sign-on and permissions systems, without help from the IT or engineering teams. After that I knew I could build something bigger.
That was new for me. My programming background was thin: some HTML in high school, a few MySpace pages, and a C++ book I read because I wanted to write a chess engine. The book was a gift from my stepfather, Jim, who encouraged my interest in computers from early on. After reading it I decided programming wasn't for me. AI coding tools brought the chess engine idea back.
Why REMY
I didn't want to compete at chess again, but building an engine is a different contest. Even if chess itself is a draw, engines still differ in how well they play with limited time and computing power, and you can measure that.
So I'm building one from scratch, with an ambitious long-term goal: compete with the strongest engines, and eventually beat Stockfish at two minutes plus one second per move on ordinary desktop hardware. That's the time control of the CCRL Blitz list, the rating system I care about most. On the CCRL Blitz list REMY's ratings use (computed October 17, 2026), the highest-rated Stockfish, Stockfish 19, is rated 3793 on one processor core and 3804 on eight. It's a challenge, and it's also my reason to learn chess programming and AI-assisted software development properly.
Beating Stockfish isn't the only way this counts as a success. The first goal was to build a working chess engine, and I've done that. Next I'd like an official CCRL rating, more playing strength, and maybe something useful about how engines judge positions or how they're built. If I make a contribution to computer chess that others can reproduce, I'll count it as a win even if REMY never gets near the top of the rating lists. You can see where REMY is now on the progress page.
Building from scratch
I design REMY, but I don't write most of its code myself. I identify ideas from chess programming, such as alpha-beta pruning, and work through how to implement them in an iterative conversation with AI coding tools. I make the design and implementation decisions; AI writes the code and connects it to the rest of the engine.
I'm building REMY independently rather than incorporating code from other chess engines. My priority is to keep the freedom to develop, modify, and distribute it without taking on unwanted restrictions from someone else's software. I draw on established algorithms and published research, but I want the implementation itself to be independent.
I also want every design decision open to question. I want to be able to make a choice, test it, come back to it, and reverse it if the evidence says so, rather than doing something just because other engines do. REMY uses plenty of standard techniques. I just want evidence for each one. So REMY changes a step at a time, every change is checked for correctness, and a new version replaces the old one only after beating it in a match whose rules are set in advance.
The king on a1
The thing I'm most curious about is testing ideas that chess theory has no reason to believe in. Say the engine gets a bonus for putting its king on a1. Normal chess sense says that's usually a bad idea, especially in the middlegame. I'd rather see what self-play actually shows. Maybe a king on a1 goes with worse results. Maybe it makes no difference. Maybe it depends on the stage of the game, or disappears once other ideas are counted.
I don't expect a random bonus to help. The point is to test assumptions instead of inheriting them, and to do that honestly I keep three questions apart:
- Can past games give the idea a value at all? Almost anything can be made to match past games.
- Does it predict results in new games it hasn't seen?
- Does REMY actually play better with it?
An idea can pass the first test and fail the other two. Only the last one decides whether it stays.
A knight in the right place
One early moment stuck with me. It came in REMY 6's win over Shallow Blue 2.0.0 in its rating games, which you can replay on the Games page. Black's c-pawn had reached c2, one step from promoting. REMY played 50.Nc1, putting its knight on the square right in front of the pawn, and for the next twenty moves its knight, and later its king, kept that square covered. When the pawn finally promoted, REMY's king took the new queen straight away with 72.Kxc1, and REMY went on to win.
What pleased me was that nobody had taught it that a knight makes a good blockader. Every version before REMY 7 judged positions by material alone. REMY 6 searched deeper and remembered positions it had already looked at, but it had no bonus for passed pawns or for blockades. The move came purely out of the search: of the lines it could see, that one kept its material count best. REMY didn't understand the idea the way a player would. It still found the move a player would want to find.
The name
REMY is named after my daughter. I name my projects after her whenever I can. The letters also stand for Rapid Evaluation, Maximum Yield, which is also the engine's motto. REMY is tuned for blitz at two minutes plus one second, so every decision has to be quick, and the aim is to get the most out of each one.
Follow REMY on the progress page, or read about REMY itself.