Free software advocate, hacked on six platforms in a dozen languages, kernel/system software, databases, web systems. I love solving HARD problems and I'm not afraid to be wrong (or to be right!). I've been programming since I was 8 years old, started my first company when I was 13 years old, and have held widely ranging roles from Technical Sales, Support, Owner, Developer, and Manager. I hate paperwork and I like creating well-tested, self-documenting, auditable, fully automated solutions. I believe in people over process.
| Position Desired | Full Time |
|---|---|
| Willing to Relocate | Not Specified |
| Commuting Distance | No Preference |
| Acceptable Travel | No Preference |
| U.S. Work Authorization | U.S. Citizen |
| Eligible for U.S. Security Clearance | No |
Current Salary: $150,000 to $250,000
Desired Salary: Not Specified
What do you like most about your job? (05/21/2008)
Creating something that people love and use to better the world.
What is the toughest problem you have had to solve? (05/21/2008)
I think by far the toughest problems are people problems, not technical problems. One of the most difficult is managing someone who appears to be actively causing problems in the team (rather than just poor personal performance) and trying to help them understand and correct their behavior, particularly when very different cultures are involved. A good example of a very difficult debugging situation was trying to figure out why an application was crashing seemingly randomly during a node failure in a cluster torture test. It was a multithreaded C++ application, running on multiple cluster nodes all with multiple processors, and using fibre channel shared storage. Because the test suite would randomly do orderly shutdowns of nodes interspersed with triggering a kernel crash, it was almost impossible to figure out which node was going to crash next, or to do much post mortem analysis of the crashed system. By reasoning about how the system worked, and analyzing all the threads in the system trying to figure out which one could be responsible for the crash, I was able to figure out that we had an inactive thread who\'s executable code had been paged out to disk, and there was a race condition with the Windows server Service Control Manager between the time it marked the service as stopped (thus allowing the shared disk to be disconnected), and the time that the cleanup code for the thread ran. When the operating system tried to page in the code to run the cleanup routines for that thread, the disk had already been disconnected, and everything blew up spectacularly. After failing to pass for months, my employer sent me on-site, and I was able to diagnose and fix the problem on the spot (after a few hours of pulling my hair out).
What do you want to do when you grow up? (01/11/2008)
Sail around the world. Create immersive displays of temporal meta art (where the art is the machine that creates the arts based on emergent properties). Not have an email address.
How would your co-workers describe you? (01/11/2008)
Determined, interested in a wide variety of subjects, an alpha geek (I have also been described as a geeks geek). I'm pleased to be recognized as someone who understands both sides, can interact and sympathize with technical concerns and business concerns.
Why did you choose this career? (01/11/2008)
I've tried many different jobs, and creating software is what I'm best at and what I enjoy the most.