I already know what I want my life's work to have been. I want to give teachers all over the world the same quality toolset that programmers have. I want the education world, to benefit from open source and open content in the way programmers have.<p>Programmers have been using vim and emacs for about 40 years, and engineers have been using CAD tools for just as long. These tools automate the repetetive and boring aspects of programming and engineering, so that professionals in these fields can focus on the difficult and interesting tasks in their work. Leaders in these fields recognized some common needs, and built high-quality open tools so that everyone in the field could do higher-level work. When I use emacs, it knows whether I'm writing a Python script or editing an html file, and it makes both tasks as easy as possible. When I go back to these files later, they are easier to work with because they have structure to them, and the tools I use recognize that structure.<p>When I write a math lesson in Word, it has no idea that I have just created a math lesson. If I want to share my work with someone else, there is no easy way to do that. If I want to pull in the best math standards in the world to base my work off of, there is no easy way to do that.<p>I am working on software to address some of these long-standing issues in the education world. I hope I take these projects far enough that they end up on my tombstone.
I don't have a tombstone worthy project.<p>But my favorite personal project is a database comparison tool. It is basically a "diff" on databases. Everything from the schema, to stored procs, indexes, etc. It also works cross database. You can compare Oracle to SQLServer to [insert DB here].<p>There are lots of database "diff" tools. But I believe mine is the only one that works well cross-database. And it's easy to add support for a new database (day's work at most).