Make Love, Not Flamewars

June 28, 2011 | programming
I sincerely doubt that the statement “I like Mercurial” will catch anyone who reads this blog by surprise. I brought it to Fog Creek. I evangelized for it on the Fog Creek World Tour. I helped build a whole product around it. I’ve gone to a Mercurial coding sprint, I’ve sent a whizkid to a Mercurial coding sprint, and I’ve even written a few patches (mostly trivial) for Mercurial. So let’s agree that I like Mercurial an awful lot. Reading crap like this pisses me off. The question seems...

Cache me if you can

June 10, 2011 | programming
![The Kiln Dodo monitors your success with gusto](/media/kiln.png)I remember, when we first launched Kiln, that I was desperately hopeful that it'd actually make a dent. I was honestly quite scared that we might end up in a situation where, after we'd put in all of this effort, spent all of this time designing and coding and testing and writing really arcane and annoying crap like billing code, that no one would want Kiln, and we'd be forced to close shop. Good news! That’s no longer the...

Making Your Interns Addicts: a How-To Guide

May 27, 2011 | programming, technology
I was thinking back last week on why I started working at Fog Creek. If you don’t know, I got started on this thing called Project Aardvark, which eventually ended up becoming Copilot, the project I worked on for my first couple of years at Fog Creek. I don’t generally reminisce much about that time, simply because that was a very different point in my life, back before I found fashion, yet after I figured out how to end up in front of cameras constantly. ![Jump, jump, jump...

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

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

Approved for Abusiveness

February 23, 2011 | personal, technology
Speaking of fascinating user experiences, I had to crack a smile when going through Disqus today and approving a pile of comments that got locked in the queue for some reason. On every single one, after clicking on the Approve button, I was greeted with: While I’m still trying to puzzle out what the engineer who wrote that string had in mind, I really think I’m going to have to order a pile of stickers with that message on them for liberal distribution to our interns this summer.