I'm also writing a computer chess program. This too has been a project of mine for decades. It's a similar project to myself learning chess--I'm not interested in making the best chess program, I'm interested in making a chess program that can learn on its own. My two interests in chess always arise at the same time, and I never know which to pursue--learning chess myself, or working on a program. My biggest goal for the chess program is to teach it no strategy whatsoever; I want it to learn the whole game on its own. I am a little concerned that if I get better at chess my own strengths and weaknesses will creep into the game. So far I have written the basic engine--it knows all the rules and can make moves. You can actually play it; it's moves are purely random, but it is surprisingly irritating to play.
The goal, then, is to let it start playing itself, and come back a few months later to see if it's gotten any better. There is one interesting side issue here, the question of, perhaps you could call it "seeding." Even if I do succeed in teaching it to learn, by playing itself or even me, it could still get stuck on a certain "branch" of the chess "tree." It could learn to be fantastic at that one branch, but never learn any new strategies and be easily beaten when it plays someone new. That issue is a little like genetics--you need new blood to keep the line strong.
More later. I have done my tactics for the day. My score for the moment is stuck around 900. I get about 70% right. I think that score is slightly skewed, because I am also able to solve a lot more but sometimes not within the time limit. Time pressure is good to keep you thinking efficiently, but it's a little bit artificial as well.