It’s been a long while since I blogged. It isn’t good to blog when angry or exhausted, and the quality of my posts have been in decline. The blog had become a liability for me. I basically forced a bunch of posts in the past few years, but I plan to reintroduce myself and the company that I am developing. I have a lot of material for blog posts that I have accumulated over time.
Isn’t it hard to believe that I have not had an outside job for almost a decade, just working seven days a week building my own software company?
I don’t have much of life; I don’t go out, date, or party. I live in the Seattle area, but I haven’t been in the city of Seattle for the several past years.
What do I do?
- I develop software 7 days a week at home, most of the day.
- I listen to university lectures and take online courses to stay educated.
- I read academic papers and textbooks, and books on software and business.
- I stay current on technology…. I learned to write iOS and WP7 applications, learned about Cloud programming.
- I follow news from various sites (hacker news—a site for software entrepreneurs) to stay current
- I attend both software and business conferences.
- I play chess at Crossroads Mall once a month. I watch movies once a month.
- I am training to run in a race at the end of October. I also bike and lift weights to stay fit.
- I go on vacation for about two weeks a year to see my family.
What kind of software do I build?
Basically, desktop software with some kind of AI. My software consists of the following:
- Application/UI framework
- Layout engine.
- Symbolic AI engine.
I have written and rewritten hundreds of thousands of lines of code. Six years ago, I compared the amount of code that I had rewritten to the open-source version of the .NET libraries, and my line counts were about the same.
I tell my parents that once I ship my first software, that the others will follow extremely quickly, because my designs allow for reuse rate in the high 90s. That I never intended to release just one product but to enable many to be release in quick succession.
I have designed my software, so that it would be easy to port to a different platform—Mac versus Windows versus Web and Tablet versus Phone versus Desktop.
To speed development, I also rely on the following:
- Open source (both code and databases)
- Third party component libraries
- Licensed data and icons
- Run-time and compile-time code generation.
- Declarative programming like DSLs and value-centric (quasi-functional) programming