How I work.
The short version
I am obsessed with computers. When most people pack it in for the day I keep going. I like the feeling of being mentally exhausted and I go looking for it. It is usually about 3am when I do my best thinking.
What you get
I want to build the product you want, not the product I think you want. That is a big difference, and it is the whole reason nothing gets built here until we both agree on what it is.
I listen first and ask questions after. I write your idea down in your own words, then go looking for the parts that need more detail. We sit down and go through examples until we find the ones that match what is in your head. Then we sketch it together and keep adding or stripping away until the sketch is the thing you actually asked for. Only then do I build it.
“Quality is more important than quantity. One home run is much better than two doubles.”
Steve Jobs
How I start
First I make sure I actually understand the problem. Then I write out everything I am going to need, break it into sections, and put down every detail and caveat I can think of for each one. I get the logic working in plain words before I think about code at all.
Only then do I start thinking mechanically. Which modules I need. Whether this wants to be a class so you can make a lot of them. Whether a loop or recursion is faster in this one spot, and I will time both to find out. Where somebody could do something stupid, and how to stop them doing it.
Then I write it. Then I go looking for the same logic sitting in three different places and pull it into one. Then I test it and refactor again.
On being wrong
I work hard at not getting married to an idea. Being able to see that somebody else has a better idea than yours is worth more than confidence in your own, and getting your ego out of the way so the thing gets done quicker or better is a real skill. I would rather have that than be right.
Background
I was born in Los Angeles in 1983 and grew up a poor inner city kid. I stayed until I was 35.
I got my first machine at 15, when my brother bought a Dell on monthly payments. I unboxed it before he got home, which he was not happy about, and once he finally gave in and let me use it I did not get up for twelve hours. I barely slept for weeks.
I found out what Unix was from watching Hackers, then went to the public library to read the manuals. There was a book called Linux A to Z sitting on the shelf next to them, and that was enough to convince me I could have a Unix machine of my own.
Within a month I tried to dual boot Slackware alongside Windows 98 using LILO. I partitioned the drive and hoped my brother would not notice. It was a disaster. Neither operating system would boot and the monitor filled up with nines, repeating, all the way across. My brother came home, looked at it, said “FIX IT” and went to his room. So I pulled the drive, got on the bus to the local internet cafe, talked the owner into letting me open up one of his test machines, hung my drive off it as a slave and worked until he closed. I fixed it that night. That was the start of it.
Twenty five years later I have five machines running Linux.