Why how is boring and how why is awesome

April 28, 2011 | personal, programming, technology
Last fall, Joel came to me and said, “Congratulations! We’re doing another World Tour. Also, we want to teach distributed version control. That’s your job. Make it happen.” This sounded totally awesome. Not only would I get to one-up George Clooney in flight time; I was made for doing something like this. In high school, I was in the NFL, which, sadly, means the National Forensics League, which means the National People Who Talk Good and Wanna Learn To Do Other Stuff Good Too, and not the…

Finding Literate Programmers

April 14, 2011 | programming
So we’re making candidates nervous by using C, and we’re not gaining anything by using C. But are we losing anything by using C? Yes. We’re losing any ability to test for literacy. “Smart and gets things done” is a famous mantra, and one that I agree with and believe has served us very well. But even at Fog Creek, we don’t go entirely by “smart and gets things done” when it comes to developers. If we did, we’d happily hire anthropology majors who had gotten a few papers published. After all,…

Drowning in a C of Interviews

April 13, 2011 | programming
The Guerrilla Guide. It is the be-all, end-all of how to look for candidates. Except for one paragraph. And I’ve come to realize that I agree with that paragraph; just not Fog Creek’s implementation of it. In The Paragraph In Question, Joel writes: I’ve come to realize that understanding pointers in C is not a skill, it’s an aptitude. The paragraph goes on. But for Fog Creek, it stops right there. In fact, it stops even earlier. The version that Fog Creek has implemented, in practice,…

Have a mission

March 14, 2011 | programming, technology
You know why I love working on Kiln every day? Because we’ve got a mission, dammit. Mission, not mission statement. The Kiln team doesn’t have a mission statement, and I’ll fight to keep it that way. Mission statements, no matter how well intentioned, become these trite little soundbites that you parrot indefinitely until they just become a meaningless jumble of syllables—kind of like what happens if you just say the word “marmalade” about 40 times in a row. But that’s totally different from…

When things go well

March 10, 2011 | programming
It was a lot of fun to vet dirty laundry in my last post on how one of our deployments went really wrong. But part of why that incident stuck out so strongly in my mind is that things so rarely go wrong. Why is that? I think it’s because we do a lot right: we make it extremely easy for ourselves to keep features from going out to customers until we’re ready, and we give ourselves a lot of time to bang on the exact same version of the software, on the exact servers, that we’ll be pushing out to…

Midnight deploys are for idiots, and other revelations at 12:30 AM Monday morning

March 7, 2011 | programming
Every once and awhile, you have an idea that you totally think is the bee’s knees but which ends up being the bee’s ass. When Kiln and FogBugz went to a weekly release cycle a few weeks ago, we had what we thought, if not a brilliant idea, was a pretty good one: we’d upgrade Fog Creek On Demand at midnight on Saturday, when all the normal people were asleep. It’s pretty common practice, it minimizes customer impact, overall a good thing. Right? By 12:30 AM on Monday, I had developed a very…

Announcing Miniredis

June 23, 2010 | programming, technology
When I attended Open Source Bridge two weeks ago, I wanted something to hack on while I was there. The upcoming version of Kiln moves from relying on a combination of explicit threads and FogBugz’ heartbeat mechanism to using a very lightweight queuing system backed by Redis. The only problem is that Redis doesn’t run on Windows, and while that’s not a problem for Kiln On Demand, where we rely heavily on FreeBSD for key parts of Kiln’s infrastructure, the licensed version Kiln needs to run on…

Kiln 1.2 is Out!

May 11, 2010 | programming, technology
I try not to throw too many out-and-out advertisements into this blog, but I’m very proud to announce that Kiln 1.2 is out. When Kiln 1.0 shipped back in February, it was awesome, but still very much a 1.0 product. While Kiln’s still under heavy development, we’ve tremendously improved a lot of the little things that make the difference between “functional” and “fun,” and I’m happy to say that Kiln’s increasingly strongly in the latter camp. Since our initial launch, we’ve: Added custom…

The fighting's been fun and all, but it's time to shut up and get along

February 10, 2010 | programming, technology
About once a week, I get an email in my mailbox that reads like this: Hey, Kiln looks neat, but Git is totally the bee’s knees, so why the fuck are you using Mercurial? Note that these emails are rarely (if ever) actually interested in why Kiln chose Mercurial; what they’re instead interested in is trying to piss me off enough that I get into a flamewar about why Mercurial is going to bring about Nirvana while Git causes people to eat babies using nothing but A1 sauce and a spork. This is…

Kiln's Evolution, Part 2: From Prototype to Beta

February 9, 2010 | programming, technology
This article is a continuation of Kiln’s Evolution, Part 1: DVCS as Code Review. In the fall of 2008, Joel was getting increasingly adamant that FogBugz needed source control integration, and most people in the company seemed to think Subversion would probably be the best SCM to make that happen. Tyler and I disagreed, believing strongly that we should use a DVCS instead, and that our code review tool gave a really compelling example of why DVCS was better that any software shop would…