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, reads:...

Supporting the Giants

April 5, 2011 | personal, programming, technology
One of the things that I love about Fog Creek is that we give back. Kiln can only exist because of the amazing foundation provided by the Mercurial distributed version control system, so we try to help them out whenever we can. In the past, we’ve done that by making Fog Creek one of the top Mercurial sponsors. Given how small Fog Creek is, I can’t tell you how proud I am to see that we’re placing up there amongst Google and Microsoft for supporting open-source software. This year, we’ve decided...

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 8, 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...

Talking to HipChat from Kiln

December 22, 2010 | programming, technology
At Fog Creek, we heavily use HipChat to handle quick internal communication. One thing we decided we wanted on the Kiln team was to get real-time notifications whenever anyone pushed to one of our main repositories. Thankfully, Kiln has a feature called webhooks that cause Kiln to broadcast repository events to a random web URL, and HipChat has a nice little API to post notifications in chat rooms. So I whipped up a little web service, called Squawker, to handle this kind of thing for us. You...

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...