25 March 2006

Maps

I was just playing with the built-in map feature in Flock, which uses the new Yahoo! Maps.* Their maps aren't much different from Google's, or Microsoft's. How many ways can you Ajax up a map GUI. And, after all, it's all the same data, isn't it?

The funny thing is, it's not all the same data.**

According to Google, that train track that runs two blocks down the hill from me is called CalTrain, and the stop is called 22nd St. CalTrain Station. It carries trains all the way down to the Google Shuttle Transfer Station (which most of the world calls the Mountain View CalTrain Station) and beyond.

According to Yahoo!, that train track is called Southern Pacific, and there is no stop to be given a name. For a forward-looking company like Yahoo!, that's charmingly old-fashioned.

Yahoo! also thinks that Chavez is still called Army between Mission and Bayshore--just as old-fashioned, if not quite as charming.

On the other hand, according to Google,*** 22nd St. runs all the way from Potrero to Missouri. This would be a really handy street if it existed.

In fact, the day after I moved to Potrero Hill, armed with a Google Maps printout, I got off a bus at 22nd & Potrero to walk home across 22nd. I immediately discovered that this was wrong unless I wanted to jump over the freeway. But after detouring, everything looked fine. Until 22nd St. became a dirt path, a stone stairway, someone's driveway, a back yard, an unmarked and unlit path, and, finally, a cliff overlooking a fenced-in construction zone. (If you make it down the cliff and past the fence, it becomes a real street again for two car lengths or so.)

From that cliff, I think I could have jumped on top of the first house on the block, run downhill along the rooftops, and then rapelled into my flat. But I didn't have my climbing gear, or my action-movie theme music, so I had to detour two blocks out of the way.

At least I didn't try to drive across 22nd.

To Google's credit, there are actually signs saying 22nd St. every step of the way. Even at Connecticutt, where it's a path into someone's backyard to the west and a cliff to the east, it's clearly marked as 22nd St.

Yahoo! has 22nd St. running from Kansas to the point where it turns into a staircase. That not quite right, but it's the part that's theoretically drivable as long as you don't mind driving your SUV on narrow dirt paths that clearly don't go anywhere other than a staircase.

Looking up one of my old neighborhoods, I discovered to my surprise that Stanley Ave. connects up to Nichols Canyon and Curson. To get to Curson would require driving through someone's front door, out their back door, around their pool, through a hedge, and then up a 45-degree incline. To get to Nichols Canyon would require using their neighbor's garage door as a ramp to jump over the garage and the cliff behind it. I think you get an Insane Stunt Bonus for that one.

* Do I really have to type the exclamation point whenever I write Yahoo!? If I end an exclamation with their name, do I need two, as in "Damn that Yahoo!!"? I had a phone interview with Yahoo!, and the guy on the phone actually said, "The point of this interview is to find out if you're a Yahoo!" I could hear the exclamation point. At that moment, I began to wonder if maybe I was a Google. I didn't feel like one, but I called. They took so long to set up a phone interview that I already had four offers. So I guess I'm not going to work for a company that makes AJAX maps. Oh well.

** There's also search data, in addition to map data, and Google clearly beats Yahoo! here. If I leave off the Ave or the N on N. Stanley Ave, Google asks whether I mean Stanley Ave or Stanley Dr, or N or S. Yahoo just puts me three miles away from either of the two streets.

*** A big chunk of this was written shortly after I moved, whenever that was. Since then, Google appears to have fixed their data, and now has exactly the same 22nd St. as Yahoo! Maybe someone heard me complaining? Meanwhile, there's a dirt trail down from Connecticut and around the construction, at a manageable slope, not far from where 22nd should be. And some of the sillier signs are gone.

Why I'm Not an Engineer

My official job title at most of my jobs has been "Senior Software Engineer." And I hate it.

I won't belabor the fact that "Senior" makes it sound like I've been at the company for 15 years, when actually I've been there 6 months and the company was only around for 3 months before that.

The real problem is with the word "Engineer."

Engineering is about physics and mathematics. Engineering is about designing to exacting specifications. Engineering is about being able to prove that a solution will work before implementing it. Engineering is about discovering all relevant factors and taking them into account. Engineering is about repeatable successes. Most of all, engineering is about using proven processes to guarantee reliability.

Anyone can design a bridge, or a skyscraper, or a fuel pump. But we don't let just anyone do it. And there's a reason. If you design a bridge, a "crash" is not acceptable. People die, there's a major scandal, your company gets sued for negligence, and you get fired, if you're lucky.

But when you're building a mail server, or a web browser, or a real-time strategy game, it's perfectly normal for a sizeable percentage of your customers to have regular crashes. What happens? Your company charges them for support, and gives you a bonus for releasing on time.

Worse, when something goes wrong in a software project, it's usually so difficult to pinpoint the problem that nobody even tries. Remember the Challenger O-ring hearings? Imagine something like that applied to Microsoft Windows. In fact, you don't have to. The Navy tried to hold similar hearings to determine why a Windows crash left one of their ships dead in the water. Ask them how that went.

From the other side, what we do--when we do it well--feel something like magic, even to us. That's simply not true for engineers. That's not to denigrate engineers. They get the satisfaction of solving a difficult problem (just like us), or doing a job and knowing they've done it right (unlike us), but if they pull something off and can't believe that it works, they consider that a red flag, not a reason to celebrate.

So, if what we do isn't engineering, what is it?

Computer Science. Adobe calls all of their code-writing employees Computer Scientists. After all, that's what most of us studied in college, right?

This is completely bogus. Someone who studies algorithmic complexity, or programming language semantics, or type theory: that's a computer scientist. Calling someone who writes software a computer scientist is like calling an auto mechanic a physicist.

Software Craftsmanship. Some people (most famously Pete McBreen) argue that what we do is more like craftsmanship than engineering. There's something to that. Despite all the college degrees, the knowledge that we pass down is more like guild wisdom and rules of thumb than rigorous training in known methodologies.

The problem is that craftsmanship, even more than engineering, is about repeatability. A craftsman builds similar products over and over, and gets very good at doing so. But software is supposed to be not just better, but radically different, than its predecessors. A marble table that's every bit as good as one from the Victorian era is a triumph. A program that's just as good as last year's is a failure. Forget our products; even our methodologies are supposed to be radically different than those from a decade ago.

Software Development. "Developer" doesn't sound bad at first glance. But that's only because it doesn't seem to mean anything.

As a consequence of that vagueness, most fields use it for those people who are neither actual workers nor creatives. Within the software industry, we're the workers and the creatives--or at least what passes for them. Look at development executives in television, or the career development team at a performing artists' agency, or the business development team at your own company. That's about as far from what we do as anything I can imagine.

Tinkering. Others have likened us to tinkerers. There are no rules to what we do, but there are lots of tricks that we figure out, and these tricks look like magic to the outside world even when we try to explain them, even though they're really pretty simple.

But that doesn't really work, for much the same reason. Tinkerers make minor improvements to existing products, Whether or not we succeed, we're always trying to build new things.

Mechanics. Sometimes people in "traditional engineering" fields like to disparage us by calling us mechanics or technicians. But mechanics only exist in fields where there are already engineers. Without automotive engineers to build cars, there'd be no auto mechanics to fix them. We're the top guys in our field, sad as that may sound.

Besides, this suffers from the same problem as the last two categories, only more so. A mechanic who ripped out your working engine and replaced it with an untested new model because he had a cool idea would not be in business long.

Software Writing. Why not run with the "creative" thing. We write programs, so we're writers. Maybe it's not exactly writing novels, but then neither is punching up dialogue in screenplays, producing tech manuals, or doing biographical research--and yet people who do those jobs are called writers. And if our hours and work conditions aren't as weird as writers', they're not exactly normal.

That all sounds appealing, but I think it misses something crucial: We're creating products. Actual things that do work for people--at least when they work. Writers don't do that.

Plus, nobody wants to read what we write. I know, the linux kernel is available online, and thousands of people download it and read it. But every one of them is doing so in order to improve it, or get ideas for a different kernel, or write linux drivers, or debug linux applications. Not a single person reads the linux kernel just to read it.

Programming. What about programmer? We make programs, so we're programmers.

If it sounds a bit dull and old-fashioned and unglamorous, so what?

That's really the crux of the matter. Most people in our field want an impressive title. "Engineer" has some kind of cachet that many of us covet.

But why? Who are we trying to impress?

Girls aren't impressed because you call yourself an engineer. If they're impressed by your job, it's because you're so overpaid that you can afford to buy ridiculously stupid toys. Or maybe because you can get away with dressing like a teenager and showing up to work at 11:00.

Banks and lenders aren't impressed because you call yourself an engineer. They're impressed because you make enough to pay interest. And because even if your company tanks or you get fired, there's so much turnover in your industry that you'll have another job in a month anyway.

Your grandmother may be impressed, but she doesn't know the difference between you and a computer repair technician or an AOL tech support drone. Besides, your grandmother would be a lot more impressed if you just called more often, or married someone nice.

Do you really want to be a guy who wears a buttoned-up white shirt, black socks even with sneakers, and a slide rule in a pocket protector? Not me.

The best title I ever had, I was in charge of a team that, as far as our founder could tell, just randomly banged away at keyboards until eventually an approximation of working code came out. Like Hamlet, but he didn't need an infinite number of us.

So I was Big Chief Codemonkey.

Unfortunately, we soon had to start dealing with H1B visas and partnership deals and next thing you know, I was Lead Software Engineer.

Sigh....

1 You Scan Through Monster...

In the piece that follows, all names have been changed. Not to protect the innocent, but because I'm trying to forget most of them.

I've already written about plagues, but here's one I missed.

Until recently, it had been a long time since I actively looked for a job, so I'd forgotten what it was like. If you've forgotten too, let me refresh your memory about recruiters.

<div voice="Andy Rooney">Have you ever noticed that recruiters these days don't know how to use email?</div>

Every email I get from John Smith has the subject "John Smith: Recruiter." Every email from Joe Blow has the subject "Joe Blow: Contact Info." Every email from Sue Brown has the subject "Sue Brown: Hipressure Headhunting Agency."

So of course they all get filtered right into my Bulk folder. This means that instead of checking my Bulk folder once a week to make sure there's nothing useful there, I have to check multiple times per day.

Then there's Mary Marks, who ends every call with "I'll send you the details by email" and then sends a messaging saying, "It's all set."

At least she's better than Jesse Jones, who replies to each and every email I send by clicking "Reply" and then "Send" without typing any text whatsoever.

I think the founders of Zimbra are right that email is broken--but I can't imagine how it could be fixed well enough to help these guys.

<div voice="Jerry Seinfeld">Have you ever noticed the way recruiters just love to offer you jobs that even a monkey could tell aren't a match? Who are the wizards that came up with that? I mean, they'd offer Superman a job in the Kryptonite mines! What's the deal with that?</div>

I'm a C++ developer. I mostly work on network software. So I love when I get a call like this:

"I've got the perfect position for you. They need a Visual Basic developer with 15 years' experience working on in-house farm management applications."

I especially love when they ask you in detail what you're looking for:

"So, what in particular do you want?"

"Well, I've spent too much of the past three years dealing with Microsoft technology, so mostly I want to get back to cross-platform work."

"Wonderful! Do I have the position for you! We need someone to build Microsoft Management Console GUIs for a Microsoft Active Directory plugin on Microsoft Windows!"

Even if you've never seen a computer, you should be able to tell what's wrong here.

<div voice="Dennis Miller">Recruiters know geography like Zahir-ud-din Mohammad Babur knows how to keep the Uzbeks happy, Chachi.</div>

I live in San Francisco. I don't mind taking the train to work. (Hell, I used to take the subway to work in LA. Yeah, that was me, the one guy they built the subway for, and I don't even live there anymore.) What I don't like is driving down 101 through rush-hour traffic.

So, when recruiters ask how far I'm willing to commute, I always say something like this: "I live right next to CalTrain, so I'm willing to go as far as Mountain View if they're by a station. But I absolutely hate driving down 101, so even San Mateo is too far if they're not by a station."

And the answer is invariably something like this: "Right, of course, of course! I mean, you left LA for a reason, right? Hahaha! Yeah. So, I have this position in Sunnyvale, well, I think maybe it's Milpitas, that you'll just love, they're right between the freeway and the bay, perfect!"

For those who don't know the area: This is about 5 miles past Mountain View. It's also about 4 miles from the train. Getting there generally means transferring from the CalTrain to a VTA train to a bus, and then walking sixteen blocks along a road with no sidewalk under the watchful eye of Lockheed/Martin guards on loan from the US Navy. Total commute time between 80 and 150 minutes, depending on how you time the transfers.

Or, of course, you can drive down 101.

<div voice="Slick Rick">Now sit down, and I'll tell you a story.</div>

I'm nearing the end of the job-search process. Companies A.com and B.net want to make me offers, but I still want to talk to C.biz. I have a second interview with C.biz for tomorrow at 11:00. I very clearly explain the situation to everyone involved.

I tell A.com's CTO that I'll call him at 2:00. I tell B.net's hiring manager that I'll call him at 2:30. I tell the recruiters who set me up with A.com and B.net that I'll call them later in the afternoon, after I've called their companies. Everything's good.

Tomorrow, at 11:00, right as I'm shaking hands with C.biz's team lead, my phone rings. I check to see if it's anyone important. It's Josh Stone, the recruiter who hooked me up with B.net. I hit ignore. Ten minutes later, he calls again. Two minutes after that, he calls again. Then my phone begins ringing continuously. I can't even navigate through the menus to switch to silent mode, because a new call comes in and cancels navigation before I can get there. I settle for turning the volume all the way down, which puts it in vibrate mode, and stuffing it in the couch cushions.

Now it's 2:00. I'm done with the interview, and ready to talk to A.com's CTO.

But I can't, because my phone is dead. All that vibrating has killed the battery. I have to go all the way home first.

By the time I get in touch with B.net, their CTO is on a phone interview with someone else. The receptionist tells me that he assumed (quite reasonably) that I was going to turn down the offer based on the fact that I didn't even call him back after my interview, and that neither my home voicemail nor my cell voicemail will take a message from him. (Did I mention that both are completely full of empty messages from Josh Stone, so they won't take messages from anyone?)

<div voice="Sam Kinison">Oh! Oh! Ohhhhhhhh!</div>

What would possess someone to act like this? I've had crazy ex-girlfriends call me 20 times in 15 minutes, but they were (a) crazy, (b) girlfriends, and most importantly (c) ex-, and therefore had nothing to lose by pissing me off. When someone who's trying to put together a business deal with me acts this way, what am I supposed to think?

It goes without saying that this was a dumb way to achieve his goal of getting me hired by B.net. But I'll say it anyway.

I came very close to summarily turning down B.net because I was so annoyed. And even if I had been sure I wanted to go with them, they might have found a better candidate (through a different recruiter) in those phone interviews before I got back to them. Or they might have just decided I wasn't reliable enough to hire because I don't call when I say I'm going to and don't answer my phone.

Either way, he's out a big chunk of money. (That's where recruiters' money comes from: If B.net hires me, they pay his company something equal to a percentage of my first year's salary, and his company pays him a commission on that deal.) And what does this do for his repeat business with B.net, or with me or any of my friends?

How do these people stay in business, not to mention get good accounts like B.net?

It's almost as if the only competition factor among recruiters is luck. (I'm not an expert on economics, but I believe that's the only situation where you end up with drooling morons and highly-trained professionals succeeding at the same level.)

<div voice="Yevgeny Petrosyan">That's all time for laugh today!</div>

To be honest, looking for a job as a computer programmer in the Bay Area in 2006 is great, recruiters notwithstanding. In the end, I got four good offers (including A.com, B.net, and C.biz) so quickly that Google didn't even get a phone interview set up.

I'm sure to people in other industries, or other times and locations (I remember LA during the Crash), being buffetted with calls from people trying to offer your high-paying jobs doesn't sound all that bad.

I remember looking for a job as a computer programmer in LA in 2001. That wasn't so great. I'm sure if you're a 60-year-old aerospace engineer, or a 19-year-old single mother, or an immigrant from Chechniya whose work visa is on hold because someone saw you go into the same mosque as a guy who looks kind of like Osama, it downright sucks.

And there are a few really good recruiters among the batch. I even have some good-recruiter stories; they're just not as interesting.

And once upon a time, I thought Bruce Sterling was going to be right about the future, and a headhunter would be someone who kidnapped you on the way to work and brainwashed you until you thought you'd actually been working for the rival zaibatsu your whole career. Compared to that, 25 phone calls in 10 minutes doesn't seem so bad.

So, I feel a bit guilty for whining. Until I check my voicemail and have to clear out 20 more messages from recruiters who already know I accepted an offer but still want to tell me about this great job just north of Port Sonoma for a MS SQL database administrator who speaks Serbian.

And then I think, maybe Shakespeare was wrong: Second, we kill all the lawyers.

The Hobbit

No, I have no rumors about what Peter Jackson's up to. I just watched The Hobbit for the first time in a couple decades. In some ways, it was better than I remember; in other ways, worse. But this isn't a review.

I'm here to talk about the voices.

Take a listen. That's gotta be Orson Bean as Bilbo, Snidely Whiplash as Thorin, old-time comedian Brother Theodore as Gollum, Captain Hook as Elrond, someone doing a bizarre parody of Otto Preminger as the king of the wood elves, Leonard Nimoy as Gandalf, and Harry "Captain Murphy" Goz as Bard, King of Lakeland. So, as soon as Leonard Nimoy finished telling Orson Bean about his adventures to come, I rushed off to IMDB to look them up.

Yeah, that's Orson Bean, and Hans "Snidely" Conried, and Brother Theodore, and Cyril Ritchard (who really is Captain Hook, even in real life). And who's doing the Otto Preminger impression? Oh, Otto himself. Well, he did it for Stalag 17. "Vith Christmas coming on I haf a special treat for you. I'll haf you all deloused und haf a little tree for every barrack, and then ve vill kill the dwarfs und take zere gold."

But it's not Leonard Nimoy. In fact, of all people, it's director John Huston. To think, if he hadn't been wasting all that time on that Bible movie (you know, the one that had the balls to call itself The Bible--and was good enough to get away with it), he could have been wearing the pointy ears, telling Kirk how illogical everything is, and getting a Swedish synthpop band named after him. And why didn't he give that overly-emotional Mary Astor a nerve pinch on the Maltese Falcon set?

OK, so I was wrong about Nimoy, but surely Bard is The Goz, right?

I mean, who else could deliver a line like "Hooray for the King under the mountain!" with that panache? (And without giggling!)

Who else could say, "Our town has been ruined, many of our people have been killed, and I'm still not an Adrienne Barbeaubot, damnit!" (I may be slightly misremembering that one, but it was something like that.)

But lo and behold, it's not Harry Goz. Harry was apparently too busy playing his first supporting role in the long-forgotten Looking Up, so they had to go with some guy named John Stephenson.

Who the hell is John Stephenson? He has a decades-spanning career with dozens of credits, but nearly all of them are as "Additional Voices" in lame Hanna-Barbera cartoons. He must have had at least one major role in the 70s, right?

There it is. Star of the original Sealab 2020, Captain Murphy.

If you haven't watched The Hobbit in a long time, it's worth it. The scene where Smaug chases Bard around the corridors in the Murphmobile until Stormy accidentally blows up the whole station rocks.

Curses to Smaug, and to Pod Six!

So now I have to go find Return of the King. I vaguely remember three hobbits that sound like Orson Bean, Roddy MacDowall, Casey Casem, and a guy who sounds like Casey Casem doing an impression of a bad Mexican actor doing a British accent, renacting the first two books in five minutes flat. Is that right?