Who lives in your house?
I, my wife (Christine), our four children (Matthew, Luke, Peter, Catherine), and aunt (Wilma), so there are seven of us home all day.
How do you pronounce your last name?
The English pronunciation is MOM-jin. The name is Armenian, and both my wife and I are Armenian, though I was born in the United States.
Why did you decide to home-school your children?
I am home all the time, and so is my wife, so it seemed strange to send our kids out to school every day. We felt our children could get a better education by learning at home where their study time is more productive. In school, you spend half your time learning and the other half waiting in line, eating lunch, and having recess. They take the standardized tests and are evaluated every year, so we get clear feedback they are getting a good education.
Aren't you concerned about them learning proper social skills?
In a school setting, children spend all their time with people their own age. However, once you finish school, this is rarely the case. Our children interact with people of all ages, and have many outside activities to foster socialization. They have a music, gym, and art classes at church once a week with other home-school children, and are involved in gymnastics, marble competitions, musical instrument instruction, choir, drama, and professional theater. This is easier to do because they don't spend eight hours in school every day. In fact, studies have shown that home-schooled children are more involved in community activities and better at socializing with people of different ages than traditionally schooled children.
Why are you a Christian?
I always knew there was a God, but I thought I could understand religion on my own. However, while I was in college I had a dream that I was in a huge, dark room --- suddenly there was a light shining on a black cloak that covered a figure I knew was pure evil. I realized at that point I should get serious about my beliefs. I accepted that trying to figure out what life means is impossible and I must accept some things on faith. I also realized Christians had something I lacked, and could never attain on my own. I became a Christian believer at the age of twenty three.
What is your job?
My job is unusual — I help volunteers develop database software. The software is free. We communicate with each other via the Internet. I started as a volunteer but am now employed by a company. Though the software is free, my employer makes money by selling enhancements and support for the software. I realize it is confusing; I even wrote a blog posting about it.
How many hours do you work a day?
(For some reason I am being asked this question a lot lately.) I usually work 6-10 hours a day, and a few hours on weekends. As soon as I wake up I check check my personal email. I then eat and get dressed and read all new community email. Once that is done I start on whatever special project I have to do that day. In the evening I usually work until about 9pm and check my email just before I go to bed. My work day is longer than usual, but I take frequent breaks and sometimes even go out in the middle of the day. Of course I check my email as soon as I get back home.
Why do you travel?
I travel to meet and encourage our volunteer developers around the world. You might think it would be hard to find volunteers, but considering how many people are in the world, it only takes a small percentage of programmers who like working on challenging software, or who are already using our software in their companies, to make a community large enough to develop software. This book has a good description of the job I do.
Do you mind traveling often?
No, not really. I work from home so it is a chance to get out and see more of the world. If I worked in an office every day and had to travel a lot, it certainly would be harder. Also, I usually go to different places each time, which makes the trips more enjoyable. Interestingly my travel experience is as a native rather than a tourist, so I get a good feel for each country. I try to allot one extra day at the end to sightsee. I usually don't remember the flight or event, but I do remember the sightseeing day and that motivates me to travel in the future.
Having traveled as much as I do, I have found a few tricks that help me sleep on the plane:
- Eat before boarding the plane (you waste too much time waiting for food)
- Use ear plugs and an eye mask to avoid being woken up
- Take your shoes off and wear extra socks to keep your feet warm
- Take a blow-up neck pillow to support your head while sleeping (blow-up pillows are easily kept in a briefcase.)
- Don't watch movies if you should be sleeping
I usually bring a book and my laptop with DVDs on the flight. I try to sleep two-thirds of the flight time, but adjust that based on the local time of my arrival. This blog entryhas many more details.
What made you start working on an open-source database?
In 1996, I had been using SQL databases at work for years, but I had no SQL database on my home Unix machine, and there weren't any affordable ones available. I looked around and finally found PostgreSQL. It had features similar to the commercial databases I was using at work. I started using it and while it was powerful, it had lots of bugs, and the bug fixes weren't being collected and released frequently enough. The software had potential, but it needed organization. I was always curious how SQL databases executed queries, and with PostgreSQL I could see the process in action, so I started digging into the code. I also learned a lot about programming complex applications, so I stuck around with the idea that the new skills I learned might be helpful someday, and as they say, the rest is history.
Actually, I was interested in writing an SQL server long before I started with PostgreSQL. I wrote shql (README, demo, download) from 1992 to 1995 which implemented SQL entirely in Unix shell script. I also worked on a C version in 1995 that was never completed.
What early computing devices did you use?
- Sharp Compet 363P Programmable Desktop Calculator
- IBM 5100 with APL
- Z80 Assembler board
- SR52 Calculator
- Commodore VIC20
What computer skills have you focused on learning?
I have always avoided learning things that have short-term usefulness, like WordPerfect macros or DOS memory optimizations. I focused on core technologies that have a long-term usefulness, including:
- Operating system kernels
- Virtual memory management
- Device drivers
- The C language
- Compiler design
- TCP/IP networking
- HTML and CSS
I even learned assembler because ultimately all languages run as machine code on the host CPU. Having low-level knowledge allows me to attack problems with a deeper understanding.