Consultant

February 14th, 2010

The much hailed Senior Consultant arrived for his first day of work in a blinding wash of holy light. We could barely see through the glare, but with sunglasses we confirmed that his feet did not touch the carpet, nor did he have to operate doorknobs. He did, however, have to sign an NDA. After this small ceremony at the front desk, a bearded priest someone had hired for the occasion of this, the Consultant’s advent, preceded His Grace with a low chant and a smoking, swinging censor. Small children cast flower petals before them, a dozen maids in white gowns (presumably virgins) performed interpretive dances of their passage, and a grizzled old man followed them all, uttering portents (it was the Ides of February, or nearly, and Mercury was ascending while the moon was in wane). Ropes of incense twisted in the air, and yet somehow did not trip the smoke alarm. The receptionist complained that she was slightly sunburnt, but it turned out that her acne had been cured, and Jonas the Sandbagger stopped limping (though he turned out to be allergic to jasmine).

The Senior Consultant’s reputation had been built up by management over several weeks to the point that any other mere Consultant could have been Tom DeMarco, Ed Yourdon and Barry Boehm simultaneously co-habiting the body of Fred Brooks, and he still would have been a letdown. We did not know where they had found the fellow, but there were plenty of rumors; he have been delivered from on high to a rock on a mountain, or sprung full-grown from a crack in a volcanic island, or discovered in a fantastically decorated sacrophagus in a hidden South American valley. We never found out which.

—-

We put down stupid schoolyard bets about his engineering skills.

“He could beat Sedgewick.”

“Well, anybody could do that.”

“Rivest?”

“Blindfold, with a foot in a bucket of ice, unless it’s crypto math. Then this guy would be toast.”

“Schneier?”

We all laughed. Anyone knows that Bruce Schneier can just look dangerously at any consultant on the planet and they will simply wither away, not worth the effort for Bruce to flex even the tiniest muscle in his weakest finger. An eyebrow twitch of certain death.

—-

The Senior Consultant was stuck in meetings of a deeply secretive nature with nosebleed layers of management all the first week, and apparently he had his own manner of arriving and departing, likely involving an angelic host and bodily transport through the ceiling tiles, because we didn’t see him again until the next week’s regular engineering meeting.

More rumors flew over the cubical walls. We were all going to be fired. Management was all going to be fired. They were going to replace us with contract programmers from Outer FORTRANistan and run all of our software on wicker effigies of copies of IBM 360 computers stolen from still-radioactive nuclear test sites located in the heart of Mother Russia. The truly paranoid amongst us thought that our project would be cancelled and that we’d be farmed out to write Visual Basic apps for tracking shipments belonging to humorless Columbian drug lords, or else work on a web site for some sock-puppet Internet company.

It was worse.

—-

Meeting Standard Time is five minutes past the hour, at any company I’ve ever worked for. I was doodling in my notebook, Dave was reading something about databases, Tim was staring into space thinking about XML and making the odd face twitches he always made when he was wrestling with Standardese, and the Kid Pirate was multi-booting yet another stolen OS on his laptop. As the clock ticked to 10:06 we made a silent accord and gave it another five minutes. Ten minutes, fifteen. Finally, on the half hour and just as I was finishing an awesome drawing of a evil alien octopoid consuming and then retching up our SourceSafe server (don’t get me started), our boss and the Consultant entered the room.

Our boss: Mid-forties, growing a belly, going a little bald. Afraid of his own shadow, and never kept to a schedule or shipped a successful product in his life.

The Consultant, fully visible now that his aura was on “dim”: Obvious, obvious ex-military hard-core type, with a no-nonsense attitude that owned the entire room the instant he set foot in it. He kicked ass with only one foot in the door and the other one still in the air.

I thought, This guy has probably killed people with his bare hands.

I heard Dave whisper to himself, “… with his bare hands.”

We looked at each other.

He’s fucking killed people with his bare hands. And now he’s our real boss.

—-

We made polite introductions around the room. Doodler, Dave-who-doesn’t-do-databases, Tim, Boy Pirate, the Three Amigas, Testy Betsy and her H1-B entourage. Oh, and our bulgy little boss, who didn’t matter much before and sure didn’t matter now. Pleased to meet you.

The Consultant smiled and seemed to communicate something private to each of us with very small little nods as we went around the room. He might have been counting internally. He could even have been silently farting. Each acknowledgement of our existence summed us up completely; we were beneath his notice before and after our successive turns under his gaze. We were all equally unworthy. We might, someday, if we worked eighty hour weeks for the next couple of decades, be competent to write a ten line program in a company that he used to consult for. But until that day we were microbes, simple animated meat puppets whose sole purpose was to type the curly-braces and semicolons that sprang from his vast, unimaginably competent, nearly incorporeal mind.

Then he got busy.

The next hour was a hell of Powerpoint and jargon about project management and technologies that were referred to only by three and four letter acronyms, often amended with slashes and version numbers. I clearly remember two things. First, I wanted out of the room so that I could throw up in the fake plants outside. Second, I was pretty sure the very highly paid Senior Consultant –

“The release team takes the weekly tear-down schedule, commits to each of the items by converting work-points to task management action checks, and then delivers estimates to the ARTS committee. Of course we follow the ISO-9001 protocol you’ll find on the new web site.”

– no, no, not just pretty sure, I was completely and absolutely fucking sure that he –

“… flush the coherent semi-idempotent transfer modules, with the release system using standard RESTful posts through the front-end server cache system. Right?”

Mumbled assent, mostly from shock.

“Get to it, please.”

– was a total fraud.

We nodded dumbly as we filed out. I went to my desk, put my notebook down next to my mouse, checked my email, then went outside and threw up in a planter.

—-

“I did a web search on this guy.”

“So?”

“I don’t think he’s ex-military at all. I don’t think he’s killed anyone with his bare hands.”

“So?”

“Do you have any idea how much we are paying this bozo?”

We were eating lunch in the crappy little deli that our start-up incubator ran. It was a poorly lit cavern made of dark-stained anonymous wood. The tables were deeply gouged and stained with years of accumulated grease, and the chairs were lightweight wicker things whose favorite trick was to catch your heels and tip over just as you were sitting down on them. The owner of the deli had been serving mid-eastern food for decades, and the smell of deep-fried falafels was forever embedded in the room, at the molecular level.

Dave considered a limp onion ring. “Look at this onion ring,” he said, flopping it back and forth in his fingers. Greasy crumbs from it fell onto the scarred table top, where they merged with the rest of the table’s history. “It’s not a very good onion ring, but it’s what I’ve got at the moment, and I’m going to eat it.”

“So?”

He ate the ring. “This basket of onion rings represents all the marginal, just-making-it startups in the valley. Here, I represent a rapacious predator who used to eat at all the best places in town, way better stuff than rancid onion rings from Farjahd’s grease pit, but I am now reduced to subsisting on junk food in Falafel Hell. Chomp, chomp, there goes Xibitive, chomp there goes Quarktech, and I’m going to choke down ZetaTech now.”

“ZetaTech laid off half their people last week.”

“Q-fucking-E-dee.”

“Well, sure this guy is a predator. We knew that.”

“The question is, why did he fall from grace, and what has he got that makes all these little barely-alive companies hire him just before they go out of business?”

I thought about it for a while. “I know who to call.”

“I beat you to it,” said Dave. “They want to see us Sunday morning.”

—-

It’s no accident that Bub’s Pancake Diner is next to some of the most successful Silly Valley financiers; the food is plentiful, cheap, and the customers are the tightest cheapskates to be found west of the Rockies. The air in the place hums with deals, with terms sheets plotted out on napkins and client-server architectures drawn and re-drawn in permanent pen on the table cloths. One set of linens had been used to design what later became a billion-dollar networking startup. Rumor had it that at least one of the VC firms in the area regularly swept the restaurant for listening devices, but was too cheap to buy Bub’s a better brand of bleach.

The place was crowded, with a half-hour wait out the door, but we were spotted by a gofer and were led in right away. Our hosts were a pair of six foot skinny cadavers with identical fountain pens, black notebooks and cell phones. They had already ordered us banana waffles, which arrived as we sat down.

The cadaver on the left poured syrup for us while the right-hand cadaver started right in.

“We understand that you have trouble with Zotar Dwibble.”

Who?”

Left cadaver: “Some call him the Consultant of Doom.”

Dwibble?”

Right cadaver: “He doesn’t make his real name common knowledge. Usually he’s Zotar Ubermensch or Drago Darko something equally dreadful.”

Dave: “I can’t say that I blame him.”

Left cadaver: “He gets something on one of the founders or officers, then gets hired for a while. Usually he’s involved in the shutdown of the company, recommending his security staff for help in layoffs, or his friends for selling off the equipment and supplies.”

Right Cadaver: “He makes more money selling cubical walls and furniture than he does selling any of the computers, can you believe that?”

It was a rhetorical question, Left Cadaver: “Eat your waffles.”

We ate, and they continued.

RC: “We need you to do something for us.” From under the table he produced a small paper bag, labeled in elegant script. Whatever was in the bag was well-packed, with fine paper poofing out the top. “We want you to place this on the front desk, where he is sure to see it when he arrives tomorrow morning.”

Dave asked, “Then what?”

LC: “Then you can take the rest of the day off, and everything will be better in the morning.”

RC: “And, as you leave the parking lot?”

“Yes?”

LC: “As many wise faerie tales are written, don’t look behind you.”

The two of them stood up. “Feel free to finish breakfast,” they said, and left. Later it turned out that they had paid for the meal, but had planned to stiff the waiter.

—-

Tuesday morning we were milling around in the parking lot. The trucks had arrived very early, perhaps six in the morning, and were loading what remained of the company’s furniture. Most of the computers were a total loss; the building’s fire sprinkler system was plumbed with iron and when the alarm had cut loose it had sprayed ancient, funky and rust-laden water over everything. Two vans from “damage treatment” companies were open, with fans roaring, and big tubes going into the office itself. We could hear deeply depressing squelching noises.  All our data.  I caught myself thinking remorseful thoughts of the SourceSafe server.

No sign of the consultant, upper management, or even our boss. But someone “had heard” that we were supposed to stick around for an announcement. Dave and I got out our phones and started calling up friends and old contacts, getting interviews for our next gigs in order.

Around nine o’clock a woman we had never seen before stood in front of this group of forlorn people who no longer had an office to work in, clapped her hands and called for attention. She was in her mid 40s, wore a shabby jacked and jeans, and would not have looked out of place at a Wal-Mart checkout stand.

“Hello there. Hello, everyone. Can I have your attention, please?”

Dave hung up his phone with a grim look. I’d already gotten a couple of replies; nobody wanted to talk to us. It was like we were pariahs.

“I’m Dorothy, and I’m your new CEO. In about half an hour you’ll get directions to the new office. This afternoon you’ll meet with the other new company officers, and you can settle in. Do that fast, because the release is still scheduled for next week.

“If any police officers come to talk to you, please refer them to Mister Bragg, here.” She gestured at a small smiling black man who had suddenly appeared at her side. “Our funders require us to carry fire insurance for precisely this reason, and the VCs are fully informed and behind us. We’ve contracted an IT house to do full restores onto your shiny new workstations.” She smiled. “See you at work in about an hour.”

We made a small caravan away from the blackened and damp shell of our old office. I did not look in my rear-view mirror.

—-

The new office was nice, but as befitting a start-up, not too nice. The air conditioning was either full-on or we were roasting. The choices for lunch were better, however.

Miracle of miracles, we had a new boss who actually knew what he was doing. Our releases weren’t the gut-wrenching, thirty-hour cluster fucks they had been; we were working fewer hours, having to fix fewer bugs, and it was clear that something had been unblocked and born anew in our group. Light at the end of the tunnel for a start-up can often be simply having more than three months of money left, but we had actual paying customers, and they seemed happy.

One morning I saw someone, a janitor or workman I didn’t recognize, doing something strange to the door frame. On the way to lunch I examined it; there was fine writing, in gold, all up and around and back down the inside of the door. Then I noticed the patterns on the carpet, and everything came into focus.

I mentioned it to Dave, and he got a little pale.

“You looked, didn’t you?”

“Yes. So did you.”

“They always tell you not to look when then really want you to look, but not too hard.”

Zotar had seen the paper bag on the receptionist’s desk and a whole sequence of emotions had played across his face: Puzzlement, delight, fear, anger. He went over to the bag, pawed in it and lifted out something bright and small. Then Dave and I had left, and we were well into the parking lot when the earth shook slightly and the screaming started.

“He was burning, and there was this hole in the air…”

There had been a wrenching crash and a gabble of voices, then more screaming as an entire management team had been dragged into a vortex, changing form as they flew through the air. Nobody from inside the office remembered anything more than the fire system suddenly turning on.

“These other places, the really successful companies, who do you think they’re run by?”

Dave munched his sandwich. “I dunno. But you notice a couple things about the servers we’re running now — no Oracle, for instance.”

“Oh, right. And our routers are . . . yeah, that makes sense.”

We finished lunch in silence, returning to the office through the wards and across the carpet covered in pentagrams. I swear that some bugs had fixed themselves while we were gone. Not, of course, the really hard ones…

Sparse, Olympics

February 13th, 2010

I’ve been buried at work, and it’s been a while since writing anything here.  As one wag has pointed out, you can ask for your money back.

Yeah, yeah, M-X standard-blog-apology.  There’s probably an EMACS command for that.

In the meantime, things that would normally be distractions are not.  The Olympics, for instance, are dead to me.  They’re happening just a few hundred miles from here, in the same time zone, and we have to wait for NBC’s miserable time-delayed coverage.

I know NBC doesn’t give a crap that I’m not watching, but the sponsors who are actually shelling out for commercials might be interested to know that I’m tuning out.  I just can’t take any more twenty minute segments on how Joe America overcame crippling childhood cases of impacted wisdom teeth, bubonic plague and color-blindness to become a star curling captain while there is plenty of good competition going on.  I can’t stand the numismatic medal counting and the US-centric sound bite coverage that simultaneously diminishes our own athletes and those of the rest of the world.  I don’t care if the ice skater had to pull herself out of primordial slime, evolve through fish, shrews and apes and then compete for an Olympic team slot on a bed of nails and broken glass; I just want to see the athlete deliver, in that arena, when it happens, and I want to see who she’s up against.

Here’s a challenge for NBC: Show your reporting staff for five minutes an hour, tops.  That’s it.  You’ll save a ton of money on the hair styling and make-up.

[Actually, I rather like curling.]

—-

Update: NBC is showing a ton of curling right now.  I can’t say that I’m giddy, but it is rather nice to see.

Aside from the time delay, the coverage I’ve seen has been relatively decent; light on talking heads and overcoming childhood trauma involving clowns.  Lots of ads right now, though.

Ruling with an iron fist

January 11th, 2010

Someone more or less anonymous tried to comment:

the fact that you removed my first (quite witty, although critical) comment is as ridiculous as you making all of these points up just to score some “fun points” with your readers.

In this particular case I never saw your original, witty post.  Sorry.  It probably got swallowed by my spam filter.  I rarely look at the spam bin; there’s a lot of it, and if something gets mis-filed then I’ve decided so be it.  I have better things to do than wade through thousands of rip-off ads and scams.  Sorry if I’m dropping diamonds on the floor, but if your deathless prose needs air, you can put it up in some other forum.

I’ll be blunt: This is my forum.  It’s my ball and I am accountable to no one.  Some people have actually phoned me up and complained, or asked for retractions or more credit.  I do not give a damn about equal time for everyone.  I will do as I like here, and if you don’t like that your options are limited.

Another point of clarity: Comments must be approved by me.  I don’t approve comments that are off-color, or that I feel are not in the correct spirit, or that I just plain don’t like.  In other words I exercise ruthless and total editorial control.  I generally try to be nice and let even jerks through, but I’m not required to.

About a quarter of the things I wrote below are made up (but I wish were true).  The remainder are things that I have done, or that I have seen people do.  Since this is my ball game, I’m not going to identify which are which, simply because I like it that way.

Finally, scoring “fun points” with my readers is not high on my list of priorities (frankly, thinking I have a responsibility to an audience is a pain in the ass).  If you like what I write, then have fun.  If you don’t, there’s a whole internet full of other, better writers, and I invite you to spend time enjoying what they write.

On the other hand, “I liked that post” versus “You suck, you liar” is running in the low-hundreds-to-one, which I think speaks for itself.

Things I am not allowed to do any more

January 8th, 2010

[About three quarters of these are actually true, about half of them are true for /me/.]

I am not permitted to replace a cow-orker’s reference books (including his Knuth, Sedgewick, and C++ reference manuals) with several linear feet of steamy hardback romance novels.

I will not name my variables after nasty tropical diseases, or executives who are under indictment for fraud.

Elevators are not toys, nor should they ever be wired into the corporate net.

It is not allowed to put the Halo 3 Master Chief into a gingham dress, or to give him cheerleader pom-poms, or attach flowers to his pulse rifle, as it upsets the Bungie people when they visit.

Yelling “Fire in the hole!” whenever I make a checkin is not team building.

Claiming a feature in a planning meeting by declaring “I’m going to rub my nuts all over that” is right out.

Using “butthead” in a reply-to-all email is not allowed, even if everyone is in agreement.

I will not refer to the head of corporate research as a “lamer,” especially when he is in the same stairwell when I utter this.

I will not paste labels onto the after-hours HVAC buttons, especially if they read “Eject,” “Arm,” or “Detonate.”

Lasers are for pointing, and that’s it.

I am not allowed to have a bucket of paint in the building.

Nor any power tools, especially if they have blades.

I shall not place a supply of “Sharpie” permanent markers in any whiteboard trays.

Cuckoo clocks are not allowed in the executive conference room.

The elves in the lobby’s “winter holiday” display must remain unmolested.

I am not allowed to have a cup of coffee resting nearby any essentially irreplaceable, one-of-a-kind, multi-tens-of-thousands-of-dollars circuit boards I have been asked to write code for.

Spinning cow-orkers in their chairs until they throw up is now forbidden.

Since I am red-green color-blind, I am not permitted to do wiring, pick resistors, or choose office carpet.

I must not check in a new memory manager two hours before going on an overseas vacation.

Tossing computers off the roof is not an accepted form of “stress testing.”

I will not dial someone at random and conference them in to the building’s intercom system.

Motorcycles are not allowed in the CEO’s office, even if it’s 2AM and he’s not there. Starting the engine is also not permitted.

I am not allowed to put a “logout” command in someone’s “.login” file.

The View from Mt. Deja Vu

January 3rd, 2010

Sorry, I’ve been busy.  The books pile up, the relatives come into town, there is LEGO to build with your son, or videogames to beat.

Also, when things are going pretty well, I don’t need to vent.  So I’m not posting much.

But to get 2010 started….

—-

You see it again and again, the same stuff over and over again: Newly clever implementations of linked lists. Somebody’s idea of what a hash table should look like, crippled with innovation. Yet another object file format, another command line option parser, another memory allocator. A thread pooler that you can’t find any /obvious/ flaws in, but that you know will expose some subtle, nasty eleventh-hour race condition that will make your life living hell just before ship.

And a shiny, fresh face pops into your cube, quivering with excitement: “Say, did you know that you can do (insert gnarly, evil thing here) with C macros?”

“Yes, but the last person to try that had his soul seized by Knthulhu, and was dragged screaming down to the Place Where They Still Use Punch Cards and Octal, and if you listen carefully you can hear –”

“Octal? What’s that?”

Your generation did not invent the facepalm. It’s probably been around since the caveman days; I can easily imagine Throg hitting his head repeatedly on a rock when Grognak tried to nasaly insert Fire again.

Deja vu, ad infinitum.

The future of computing is its own past, mashed-up and remixed by young’uns who have yet to fear the dark corners, the places where us old farts went in with similar bushy-tailed attitudes and came out with ashen-faced, eyes barn-door wide and with fifty new words for “pucker.” Heed us. The stove is hot if you touch it. The stove is not only hot, it will incinerate your soul. At some point you will want to make pancakes or wash dishes for a living rather than run another build or merge another check-in or fix another bug, and at that moment you will be worthy to take up this mantle of curmudgeonly benevolence and utter the words:

“Son, you ain’t seen nothin’ …”

[usually they start edging away when you get that wild look]

“… back in ‘09…”

[they are consulting their cell phones and iExcuse generators]

“… uphill, both ways…”

[you are left alone now, in blissful silence. Code away.]

I have too many important things to type with these fingers before I retire than to waste time on another hash table. Unless it’s a really, really good one.  Or I’m bored.

To hell with taking off shoes (updated)

December 27th, 2009

“I’m sorry, ma’am, but you’re missing some important items in your carry-ons.”

“You’re kidding, right? I read the TSA web site before I packed. I’ve got the –”

“Yes, you have the 3 ounce canister of pepper spray and the handcuffs. But nothing else meets the requirements.”

“Well, my husband has –”

“Ma’am, I’m going to level with you. The Glock 19 is a good choice, and I’m happy with that, but you only have one ten round magazine, and they’re all 95 grain loads. What if you have to shoot someone?”

“My husband has a 1911, a 357 backup, and –”

“We’re talking about you, ma’am. I’d like you to dig around in that bin over there and find some better ammo. We’ll even upgrade you to a 45 if you want. And the airline is offering free miles for passengers with body armor.”

“Well . . . three magazines? Annnd . . . a set of those cute pink throwing knives?”

“That will do. Have a safe flight.”

—-

International flights: Not being able to read a fucking book for the last hour of a flight?

Fuck that.  Impeach the TSA. It’s time to drop the curtains on security theatre.

Also: A thread on Bruce Schneier’s site: link

—-

Update: Looks like they’re letting people have stuff on their laps again.  Link.

Some Movies

December 18th, 2009

The first: Avatar.  I read Ebert’s review of it last week, and he compared it to when he first saw Star Wars.  I can’t say it was that good, and certainly only time will tell if Avatar holds up, but I did enjoy the movie immensely.  Technically, very nice.  Plot-wise, about what you’d expect from “Dances with Wolves” set on an alien moon.  Avatar is breath-taking and thunderous and brimming with gob-smackingly beautiful special effects, and is only a little sickly sweet.  I do wonder if a sequel will be titled “Avatars.”

The second film was my son’s request this evening, and ironically enough, Star Wars Episode I, The Phantom Menace.  I can’t say enough bad things about this movie and the two follow-ons that Lucas excreted, and if I start bad-mouthing it I won’t be able to stop, so I have to use someone else’s words.  After he first saw it, the Gibber remarked “That wasn’t a very good movie, daddy,” which made me smile.

The third: Yesterday my group at work saw Inglorious Basterds.  I have a peculiar kind of impatience when it comes to Tarantino films, namely that I don’t truly appreciate the fine dialog until the gore ramps up and reminds me how good the movie was up until the point that the blood started flying, and yes, I close my eyes during some of the really bad bits.  Overall: Meh. Bad people get what they deserve, so do some good people, and sometimes it just sucks to be in the line of fire.  I get it, but I got it like three movies ago, too.

Finally, I was sick earlier this week and spent a day or so at home.  I re-watched Star Trek, and it was still a blast.  I’m hoping the genre has been successfully rebooted, and I hope they re-make The Trouble with Tribbles.

The Ungiving Box

November 28th, 2009

Once upon a time (at a company definitely not the one I’m working at now) there was an administrative assistant who thought that the group she worked in was not giving enough. So one holiday season she set up a “giving box” in the lobby, and put a sign on it saying that the box was for donations of toys. The idea was that you would buy a new toy, put it in the box, and the box would be sent to some place with lots of kids who didn’t have toys.

Whatever her perception, this group was already pretty full “about up to here” with giving requests.  So several days went by, and when she checked there were no toys in the box. So she sent email to the department, she had managers remind their employees about the box, and she put up flyers in the hallways and in the break rooms. Meetings in the group typically began with a written agenda on a whiteboard, and soon the toy box was discussed first in nearly every meeting.

A week went by. No toys. Soon everyone was being inundated with memos, stickies left on monitors, and random button-holings about the toy box. And there was resentment.

Indeed, at the end of two weeks, the box contained a single toy: A rubber chicken.

“She’s really upset,” said one manager, drying a tear from an eye.

—-

A year went by, and the admin tried again, this time with a gaudier box, and even more publicity and pushyness.

I heard the next part from that manager: At the end of two weeks, the box contained the very same rubber chicken (which had apparently not been donated to a kid who didn’t have a toy, and had been liberated from the group’s storage room), and nothing else.

I do not know what happened after that.

An ultimately unsuccessful interview

November 25th, 2009

[No names, and I'm deliberately fuzzy about dates. Not even names of technologies. There were some really good and quite nice people at this company -- if you're reading this, you know who you are :-) ]

—-
… so after that start-up I took nine or ten months off to decompress. My needs were modest: I had a small mortgage, plenty of savings (certainly enough for several years of just going to coffee shops and bookstores), and I didn’t really want to do anything serious for a while. I motorcycled some, visited relatives, and finished a lot of books. Mucked around with a bit of code, but nothing epic.

Boredom set in, and with it, bad judgment.

I made the mistake of going to a “Brass Ring” high-tech job fair, more out of morbid curiosity about what jobs were available than actually wanting to find work. The job fair was a “fair” in the same sense that “camps” are sometimes used to hold prisoners of war; it was not a happy, joyful place. Silly Valley was six months or so into of one of its periodic downturns, and the lines of hopefuls were ten or twenty deep in front most of the booths. The anxiety was practically visible as people jostled each other, presented sweat-stained resumes and tried look confident and competent instead of abject and desperate. You could smell the fear, and I’m not kidding. I was detached, relaxed and had brought along just five copies of my resume, with the intent to be choosy and not give out any more than those copies.

Lockheed was there, or maybe it was Martian Douglas or Huge Aircrash, in any event some massive, soulless defense firm was looking for US Citizens Only eager to help blow things up with software and lots of government surplus money. There were some telecom companies, now long gone, and Cisco was looking for hardware engineers and sales types with flexible ethics. There were also a dozen companies I’d never heard of (and you haven’t either) with standard-issue Silly Valley names consisting of the letters X, Y and Z stirred in with some vowels and a light serving of other consonants: XyGroove, Zilyow, ZoodBarf, YankDix and Zxwzzyz. I’ve always wondered how someone answered the phone at Yrzyqk, and how many callers thought they had misdialed the Yrkzogistan Consulate.

One booth screamed “Low budget start-up!” — no frills, just the standard tables that the fair provided, and some wickedly uncomfortable Costco-issue chairs [I know those God damned chairs; they're cheap and they last exactly two VC rounds and if you don't sit down in them carefully you can tear off important bits of your anatomy]. The company had a cheap plastic banner with a generic company logo.

This job fair was being held in the Time of the Swooshies, and all corporate logos were required to have arcs representing excited arms, people leaping around in joy, and maybe stars and comets falling to earth (thus forshadowing the dot-com industry’s later crash). The logo belonging to this company was a Medium Swooshie — not a complete disaster, just uninspired, like the company’s name (which had only one ‘Y’ and no other selections from the right-hand half of the alphabet).

I took a closer look. The poster summarizing their open positions looked like a match of the stuff I liked to do. I waited politely for someone to talk to, handed over my resume and introduced myself.

The fellow looked at my resume. “Twenty years of C experience?”

“Um, yeah. I did –”

Twenty. You were at Apple? Um, when can you interview?”

Just like that. I did a whirlwind interview early the next week, and a day later I had a pretty good offer. Now there was just one weekend left of my long vacation and too many books to finish in that time. Dammit, I was working again. How’d that happen?

I had a hint then that their process for finding engineers was fairly weak. I’d forgotten that interviews need to go both directions, especially with start-ups.

—-

The day I arrived, the developer I was most looking forward to working with gave two weeks’ notice. A couple days later I was starting to copy his attitude and catch-phrases.

Train wreck.

The build system was primitive, basically some batch files that didn’t even check for errors. You had to manually scan the output of the file to catch broken builds by looking for words like “Error” and “Failed.”

No source control, naturally.  Who would need that?  Just put the files on the server in the right spot, and Alf will run the build script . . .

Part of the build required a bunch of files to be copied by hand from point A to point B (on the machine that had been dedicated to run the company’s mail system, be the print server, oh, and by the way, do builds), and carefully renamed so that the installer builder (another batch file with minimal attention to detail) wouldn’t choke. “Alf,” a Q/A engineer who had been roped into doing builds, proudly showed me his skills. It took most of an afternoon, and reminded me of nothing less than someone shoveling coal around with a mouse instead of a shovel.

For lack of anything better, and since it was a Microsoft shop, I stuck a loose collection of the company’s latest stuff into a SourceSafe database. A few more days of mucking about and we had a build system that was capable of figuring out that the build was broken if someone checked in a breaking change (someone promptly broke it and it stayed that way for a couple of weeks). Well, it was progress. A few days later I had the installer being automatically built, with daily build notifications and change list emails being sent out, and the IT guy was finally doing backups of the engineering server. All the stuff you need to get nice, repeatable builds and make sure that a croaked disk drive doesn’t take down your whole start-up.

During a meeting I gave a short presentation to the engineering and Q/A staff about the new automated build system. I finished, and asked if anyone had questions.

Alf looked confused and afraid. “I don’t get it,” he said, “Where’s the part where I copy the files and rename them and build the installer and rename those files?” It was then that I realized that I’d taken half of Alf’s responsibilities away, and that he was going to have to find something else to do.

Cargo-cult

Someone had read the Software Patterns book, because about every third source file implemented a factory; I’m pretty sure there were factories for making factories. Now there are perfectly good reasons to write factories, fine and wonderful reasons to have abstract instantiation, but what was going on in the bulk of this company’s code was fear, realized with indirection and thousands of lines of creative procrastination, and an attempt to be “grown up” with stuff copied from a popular book on design without doing any actual design. There was no reason to have all the factories and singletons and flyweights and visitors other than someone thought they were cool. To make a simple change to the product often involved modifying a dozen source files, carefully coordinating checkins with other developers who had pent-up breaking changes of their own.

Much of the code didn’t do anything, and it did it in some of the most indirect and complicated ways possible.  Tracking down how a line of code got run could take hours; it wasn’t as simple as just setting a breakpoint on something and letting a test case rip because entire flotillas of processes were launched in the course of a run.   This was organically grown software with all the architecture of a bowl of soup, with mystery floaty bits on top as a bonus.
Shrink

A couple months into my stint, the company brought in a psychologist to interview all of the technical staff. We were given a few days’ warning. And, as promised, a shrink showed up and started having hour-long sessions with everyone on staff.

I wish I had a good story on top of this, but I don’t. I have a little experience talking to shrinks, and it’s not like you’re taking a polygraph or anything. You give ‘em something to chew on (”Doc? My editor reminds me of my mother…”) and shut the hell up about what you really think about things.

What this really meant was that this company knew it was screwed up and that things weren’t functioning, but the people in charge didn’t have the honesty and guts to find out what was wrong themselves, or to make any hard decisions. In the end nothing happened (well, the psychologist got paid) and things ran on as before (well, the worker bees were a little more cynical now).

Beef


Well, I rarely saw my boss; his door was nearly always closed. He was in there doing something with the company’s “architect” (who was a buzzword luminary in the particular technology this company was heavily invested in). Every couple of weeks I’d see one of them and ask a question; I never got a good response. I saw the architect every month or so; he never sent email, and I never saw a design from him that was less than a year old or that read as anything more than a set of vaporous bullet points you might find on a marketing hand-out at a trade show.
I was starting to look for another job, but at the same time we were also interviewing candidates. I thought it would be tough to give a technical interview for someone to work on a product that I didn’t really believe in, but I was wrong; you can detach yourself and do a technical assessment. The moral quandary being, is this a good place to work?, and nobody asked that question.

Two of the big investors had heard rumors and were concerned about the company, and they decided to start digging to see how their money was being spent. So a number of us got dragged into the offices of one of the VCs and we were asked to spill our guts. I’d already decided to bail, so it wasn’t hard.

The culmination of this was a Sunday morning meeting at a local bank where some independent technical experts grilled the daylights out of the engineers. The company’s president gave a ten minute song and dance at the beginning of the meeting; he was brushed aside quickly and the two heavies started drilling down. It didn’t take long.

“Where’s the beef?” asked one, looking incredulous. In twenty minutes they’d drilled down into the company’s technology and come up with a pile of ashes in their hands and the smell of burning money.

I shrugged. A couple of my worker-bee cow-orkers shrugged. There was no beef anywhere, not really. The product did more or less what it was supposed to do, but fundamentally it didn’t do anything very interesting. It was a little bit like a start-up for doing toothpaste; there’s nothing wrong with toothpaste, even a new kind of toothpaste, but technological advances in toothpaste are incremental at best, and it’s crazy to sink VC money into something that is mostly perception and marketing.

—-

I learned some valuable lessons from this:

Interviews work both ways. Ask hard questions. Is this a good place to work, do you use your own product, what is the turnover like, are you excited to come to work every day, how much of the technology actually works well and is innovative, are you planning to quit any time soon?

Don’t be afraid to throw away crap. In its short history this company had accumulated tens of thousands of lines of bad, boat-anchor-class code, and this self-inflicted pain made it very hard for them to do anything new. The delete key is your friend. Sometimes the best thing that can happen to a company is catastrophic loss of its source code repository . . . and I’m not even close to kidding about this.

Hire carefully. This company had very poor hiring practices. I mean, they probably shouldn’t have hired me. What they needed was a strong development team; what they got was a loose collection of developers of various strengths and random skills. Combine this with poor product vision and weak management and you have a recipe for a money-burning party.

—-

I quit after six months. I found my next job (which was a lot better) when I ran into an ex-cow-orker at a technical bookstore; we chatted, I mentioned that I was looking, and pretty soon I had a slightly longer commute.

That’s the way to do it. Job fairs suck.

Cat memory

November 22nd, 2009

We got our cat used; I think she was a couple of years old.  We’ve had her for about 8 years.  The whole time she’s been with us we have fed her solid (crunchy) food, lately an organic brand that has gotten her weight down.

Last week, due to a medical issue, we had to start feeding her canned food.

I opened the first tin. It made that metallic “snick-scrliffff!” noise.  And she teleported right next to me, and she started meowing.

What a memory.