October 2008 Archives

A Double Dose of My Pimping

|
1223612657575.jpgMy hastily named column, Fail and You, is going to hit The Register weekly starting this coming Monday.

Meanwhile, I'm trying to keep Uncov coming at least daily.  Dumping startups as a topic was a great decision.  Startups are boring, and there's no more of them.

Auto Mechanics: A Good Hobby for Programmers

|
i-disagree.jpg
When I was a kid, I used to help my Dad work on the family cars.  We changed the oil, brake pads, repaired a broken hydraulic line, and fixed faulty air conditioning.

It wasn't too long before I was able to do most basic repair and maintenance myself.  In college, I spent hours fixing an electrical problem that caused my rear turn signals to go out.

Recently, my car started to make a weird "coughing" noise from the muffler, and I fixed that, too.

This Is Going Somewhere I Swear

Why is this relevant to programming?  Well, one of my favorite parts about programming production services is forensic debugging.  Some process crashes in the middle of the night and all you're left with is a beeper going apeshit and a stack trace.  What went wrong?  How do you debug that?

Debugging a car is the same thing, but a lot harder.  With a car, the symptoms of the bug aren't usually very concrete: a funny noise, a bad smell, a jittery feeling.  Compared to a computer, a car is a very simple machine, but because it's so simple it's much harder to debug.  Newer cars have an electronic interface to tell you what sensors are indicating faults, but that doesn't always solve the problem.  Plus, the sensor readers are like $300.

The more you work on a car, the more you develop an intuition about it.  In code, you can narrow your bug down and fix it.  With a car, you narrow the fault down to a couple of suspect parts and start by replacing the cheapest one.  For me, fixing a car problem is much more gratifying than fixing a code problem because of the tangibility of it.

So, if you're enjoy debugging and problem solving, you'd probably like auto mechanics.  There are a couple of collateral upshots to it: you save some money, you can give your friends car advice, and you get to buy a bunch of really awesome tools. 

No one can pull your man card when you have a specialized wrench for an O2 sensor.

They See Me Rollin', They Hatin'

|
Yes, I've moved on from Pressflip, but Uncov is still alive.  Go read why.

Moving On Out

|
1223613629088.jpg
I made the decision last week to leave Pressflip.

I'm leaving for personal reasons: mostly because I'm going to be a father in March and need some stability, but also because I'm tired of the fight.

Entrepreneurship is very emotionally and physically taxing, and it's too much for me at this point in my life.  Maybe I will pick it up again when I've got more experience under my belt.

I'm not sure yet where I'll end up.  I'm working on a couple of options.

The product is in good hands.  Matt and Kyle will continue to develop Pressflip, and I'll continue to be a user. 

When my kid is born, maybe I'll finally sign up for Flickr.

Update, 10/18/08: TechCrunch has picked up on this.  As is Michael Arrington's usual style, he is showing his personal vendetta against me to mischaracterize what I've said.  My priorities have changed.  I am now facing fatherhood, and I want to do what is best for my family.

This is horrifically irresponsible on Michael's part, but that sort of thing is to be expected.  Michael, you should be ashamed of yourself.


A Blogger's Guide to Armchair Economics

|
Having read a lot of alarmist blog posts lately, I can say categorically that nobody is more qualified to comment on America's financial condition than a Ruby on Rails programmer who read Freakonomics.

Social media is starting to get bored with the economy and the government's $700 billion bailout package, likely because bloggers have run out of reasons why the world is about to end. I think what everybody needs is a writing workshop, so in that regard, I am here to help.

Read more at Uncov ยป

Uncov Returns

|
hurr-hurr.jpgI published the first real post, about a backroom deal between Mike Arrington and Paul Graham, and a second post explaining what the fuck is going on.

Most Programming Interviews are a Waste of Time

|
dr-seuss-wtf-is-this-shit.jpg
Interviewing a candidate is so much fun because you get to passively assert your superiority and be professorial enough that you can justify those nine years you spent in graduate school studying compiler optimizations only to get a job maintaining a failure-prone database driven web app.

Interviewers spend almost as much time Googling for interview questions as candidates do.

I've been on both sides of the interview, and I'm here to dump a big load of truth on you about what interviewers really think.

The Technical Question

What The Interviewer Says: How would you find a cycle in a singly linked list?

What The Interviewer Thinks: This job has nothing to do with linked lists.  In fact, I don't think anyone has used a singly liked list since the seventies.  I wonder if you're good at PHP and MySQL, because that's what all the work is here, but I'm not going to ask you anything about actual job requirements, because that doesn't afford me the opportunity to be pathologically pedantic.

The Follow-Up


What The Interviewer Says: And how would you refine your solution to use O(n) time and O(1) space?

What The Interviewer Thinks: I haven't actually solved this problem myself, nor have I formally proven the "right" answer to be correct. I have done no preparation for this interview beyond looking on the internet for programming interview questions.  I'm basically dead wood in this organization, and I pray every day that nobody figures this out.  As such, if you come up with the answer quickly, I'll either think you cheated and looked up programming interview questions on the internet, or you're genuinely smart enough to expose my own uselessness should you get hired.  In either case, your best course of action here is to pretend like you don't know and let me explain the correct answer with a shit-eating grin on my face.

The Bullshit


What The Interviewer Says: Where do you see yourself in five years?

What The Interviewer Thinks: I have no idea what I'm doing.  I really need to keep this room from going dead-air, so I'll give you something to talk about.  Just start talking.  I really don't care, say anything.  I'm not listening.  I'm using this moment to think about the woman working in HR that I want to bone, but wants nothing to do with me because I'm an introverted nerd who will never work up the sack to ask her out.  Fuck my life.

Finally It's Over


What The Interviewer Says: Do you have any questions for me?

What The Interviewer Thinks: We're 35 minutes through a 45 minute interview.  If this doesn't take up ten minutes, I can blame ending the interview early on my clock being fast.

So What Is A Good Interview?


For once, I'd like to have a 45 minute candid conversation with an interviewee.  Talk about interests, shoot the breeze, and get a general idea of the guy's technical aptitude and fit with the company.  Talk about projects, see if the guy gets animated.  Combine that with some pre-submitted code samples, and you can get a genuine idea of how suited the candidate is.

I don't know about you, but I would not want to work for or with somebody who is this passive-aggressive.

Asking pedantic and useless questions like this is just a waste of everyone's time.

Trying Out Google Android

|
I tried to write an Android app, got bored, and wrote about it at El Reg.

Also, by coincidence, my article is showing up at the top of the Pressflip Android News page.  I swear, the ranker isn't hacked to do that.  That will change as more stories come in.

pressflip: what I'm tracking

Pages