In my first week as S.A.D. (Supervisor, Applications Development) at TCTSRN, I started looking through some code. Lots of it. It wasn’t hard to find. They didn’t even use any version control, just some rudimentary archiving features of Sharepoint, which sucks at version control.

I started worming my way through the various portals they had set up. All the projects had cryptic names, and they were setup willy-nilly in folders called “Code” and “Specs” and “Docs”. Script files, batch jobs, stored procedures, even Unix Korn scripts (shit - are they running Unix?…That would suck.). I grabbed a handful of stored procedures that Sharepoint said were owned by people on my team and dumped them to the printer.

10 minutes later, they were still getting printed. I killed the print job and took a look at the files. They were massive. Thousands of lines of code in each proc. On and on they went…cursers…temp tables…a few hundred lines of commented-out code…more cursers…some case statements…more lines of commented-out code. Aliases. Eight table inner joins. Crappy naming conventions. Breadcrumbs left by other developers (“Bob – put your code here”).

I was wading through the alimentary canal of TCTSRN. This is where all the shit came from. All the extracts, downloads, uploads, everything. All of it living in hundreds of 5,000 line files. Procedural. Hacked. Undocumented. I felt like Martin Sheen in Apocalypse Now, going through the dossier of Colonel Kurtz. Bewildered. Floating up the river on a secret mission to Cambodia.

Speaking of Cambodia, I called TAC into my cube. I pulled out some stored procs with his name in the comments.

“I am trying to sort out this code. Can I get a report on all the production jobs that you guys have running?” I asked.

“Well, id iz so many. Dad wud dake long dime.”

I parsed his response. Hardly fluent English. “OK, I don’t need all the stored procs documented. If you just get me the batch files that call the procs, I’ll track them down.”

He nodded and left.

They must have some idea of what code is actually running, I reasoned. What if there is a disaster and they have to restore their environment? How do they even keep track of who did what? The answer to the former is “they are fucked” and the latter is “they don’t”.

But I was S.A.D. – it was my job to get a handle on the code, improve the process, understand the systems, and be the go-to guy about all things app-dev related at TCTSRN. That’s why I took the $15k/yr pay cut – for the challenge and responsibility.

Or maybe because it was the first offer on the table after getting fired from TJIHFOW(The Job I Had For One Week).

Posted in:   Tags: ,

I went back to my cube, eager to figure out what exactly Charlie had going on with the Online Inquiry App. I cracked open the project.

It was ugly. A big lab experiment. A sandbox. Textbook worst practices.

The first consultant had ignored any new .NET technologies like server controls. He literally streamed out HTML from endless lines of StringBuilder objects. On and on it went…no concept of postbacks, no clue about how .NET manages state, nothing.

That’s the problem with .NET. Anybody can hack out some web site with completely un-maintainable, unreadable, non-encapsulated code, and call himself an expert in an Object-Oriented language. And this consultant had gone to town at the company’s expense.

I examined more code. Charlie had proceeded to refactor, some (but not all), of the code. Refactor is a fancy term for “clean up all the garbage logic and eliminate redundant code.”

I use the term generously; because what Charlie was doing was crap. A stinking pile of spaghetti. He would do things like take an old method named FooBar, rename it to something FooBarOld, and write a new FooBar method. The new FooBar method was sometimes just like FooBarOld, sometimes it was entirely different. If you did a search for a variable name, you’d find two matches, one old and one new. But my biggest problem was the code would not run. I COULD NOT COMPILE IT.

Not at first. I had straighten out some references, clean up some function calls, and in general, take a proverbial plumbing snake to the mass of sewage that was the “Online Inquiry App.”

Two hours later, I had the app running on my system. Cool, I thought. Now I can run through it, figure what doesn’t work, fix it, and get the thing out the door.

Wooah, Nelly. Not so fast. Charlie had added new modules, except that they were written in VB.NET. And they were a totally different architecture than the old stuff. Worse, they didn’t talk to the old stuff very well. If you moved from a page written in the old C# code to one written in VB.NET, you lost your session and got kicked back to a login page. Nice.

I was getting pissed. I dialed Charlie’s extension.


“Charlie, you gotta second to go over this Online Inquiry App with me?” I asked softly.

He stepped into my cube hesitantly. I had pages of printed out code strewn all over my desk. I wanted to send him a message. I DID NOT LIKE THIS KIND OF CRAP.

This was not going to be a tender mentoring session. I wanted to vent. He stood in front of my desk wearing a dingy white button down and gray bell-bottom slacks. Ugly shoes. The black belt was wrapped almost around to his ass.

I pointed out all his bugs. I inquired about his flaky techniques. I wanted to know why a user has log to log in every time he goes more than two pages deep into the app. He got defensive quickly. It got ugly.

“I’m still working on that.”
“That’s not my code.”
“That’s not part of the requirements.”

We weren’t getting anywhere. He had an excuse for everything.

Some of his excuses were outright attempts at obfuscation. Technical mumbo-jumbo streamed at me in rapid fire.

“The viewstate is getting corrupted by session variables that get re-initialized in the post-back!” he said with authority. Bullshit, I thought.

Anything but a concession that there were any problems at all with his code. I pondered how he ever managed to fit his massive head into my cube. His ego was sucking up all the oxygen. And his breath stunk. Really bad.

I knew my face was getting redder. I was deep in the tunnel now.

“…A foot above Flower’s glistening and grimy face, the trapdoor was quietly turned round and slotted into its frame. Flowers froze; the gook was right there. Suddenly the door moved again. Something dropped into Flower’s lap in front of his eyes. He watched it fall, momentarily transfixed; then the danger to his life overwhelmed him as he screamed ‘Grenade!’”

- The Tunnels of Chu Chi

Charlie had dropped the grenade called the “Online Inquiry App” in my lap. It was now my mess to clean up, because there was no working with this bozo. I could work around him, or through him, but not with him. His whole soul, his entire being, was tied to the code he wrote, and he thought his code was great. There was no management technique, no leadership strategy, no computer based training from Human Resources that equipped one to deal with such a personality. His type was known as a “Prima donna” in the business.

Joel Spolsky recommended marginalizing this type of programmer by having him work on bug fixes:

“Even the best teams can have a bozo or two. The frustrating part about having bad programmers on your team is when their bad code breaks your good code, or good programmers have to spend time cleaning up after the bad programmers…

You've got a perfect opportunity to neutralize this moron for several months. Just keep reporting bugs against their code. They will have no choice but to keep slogging away at it for months until you can't find any more bugs. Those are months in which they can't do any damage anywhere else.”

- Joel On Software

But I didn’t have time to have him fix his bugs. First off, he didn’t think they were bugs. Secondly, Mr. Bill wanted the site out, now. And I couldn’t trust Charlie to help me reach that goal.

He would have to be eliminated.

Posted in:   Tags: ,
tunnel rat posted on October 7, 2006 16:53

After a few days at TCTSRN, I got a call from Mr. Whiteboard’s boss. I’ll call him Mr. Bill. I had met him a few times, once at one of my interviews. He had popped in and made small talk while Mr. Whiteboard stood at his side, gleaming.

There was something odd about the way Mr. Whiteboard acted when he was around his boss.

He would, um…throb.

Almost vibrate. Like he was masturbating. Weird look on his face, almost like…pleasure.


As he would bask in the charismatic glow of his boss, I fantasized about offering him a napkin to wipe Mr. Bill’s fecal matter off of his nose. Mr. Whiteboard was Mr. Bill’s Yes-Man.

“Can you come up and talk about a project?” Mr. Bill asked.
He had a nasally voice, almost gay. Not that there is anything wrong with that. In fact, from here on out, I will suffix (a technical term meaning I will follow every mention of a word with something) the word “gay” with the acronym “NTTIAWWT”. I don’t want to piss off any gays (NTTIAWWT). I have some good gay friends, and they would get ticked if my online alter ego were a homophobe.

Back to Mr. Bill. I didn’t think he was gay (NTTIAWWT), just, um, delicate? He had two kids and was around my age. But the combination of his pastel wardrobe choice (lavender and pink dress shirts are very in now), high-pitched voice, and a last name that is a derogatory term for homosexuals had my Gaydar buzzing.

The name thing was out of his control, but everything else had me thinking that if ever got in an elevator with the guy, I wouldn’t be surprised if he busted a move on me, like Donald Sutherland did to Michael Douglas in “Disclosure.” You know, where they are alone in an elevator and Sutherland, who is Douglas’ boss, starts making out with him. BTW, that movie has one of the best damn quotes:

Why don't I just admit it? Admit that I'm that evil white guy everyone is always complaining about? Hey Chau-Minh, come down here so I can exercise my patriarchal urge!

Anyway, I go up to his office on the 7th floor, with the nice view of the 22 Freeway, where everyone wore ties. He tells me about the project, something to do with a web page to log calls that suicidal people make to the company. Evidently, it happens fairly often. A guy with a gun in his mouth will call up TCTSRN because he thinks they can help him get medical help, and starts threatening to commit suicide. They needed some way to respond to and track those calls.

No big deal, I explained – couple of web pages that we can throw on the InfoNet. Mr. Bill liked things on the InfoNet. The portal was his baby. It was nothing more than an intranet site where all things company related got dumped. The online phone director, the help desk app, links to HR forms, even a classifieds section where employees could sell stuff. It ran on Sharepoint. Barely. There were always problems with it. And when there were problems with InfoNet, Mr. Bill would call somebody, like the guy on my team that tried to maintain it, Mr. Coffee. It was his baby, and it better damn well be running.

Then it got weird...

“Uh, I was trying to demo that Online Inquiry App for some people the other day. It wasn’t working. Do you, um, know what’s going on with that?” he asked.

“Online Inquiry? Yeah, I think we’re still working out some issues with that site.” I was bluffing.

I barely had any idea where the break room was, much less why the “Online Inquiry App” wasn’t working. All I new was that Charlie was working on it, and it was a mess. A hacked up goo of a web site, C# layered with VB.NET, written by a flaky consultant and junior developers who didn’t know what they were doing. I had glanced at the code and was going to urge a rewrite.

Bill continued. “It’s very important that we get that site up.” He was smiling at me.

“Definitely,” I said. “I’ll look into it.”

“Good. You know, it seems like this project should be done already. Sometimes Mr. Whiteboard indulges his staff. A bit too much, in my opinion. I mean, we sent this guys to .NET training…”

It was getting dicey. Here was the CIO dissing my boss and putting the squeeze on me to get this pet project of his out the door. I treaded lightly.

“Sure. I understand.”

He smiled some more. “Good,” he said as he stood up.

Posted in:   Tags: ,
tunnel rat posted on October 4, 2006 16:50

On my first day at TCTSRN, I took some time to meet my “team.” Team was a nebulous term, because Mr. Whiteboard had not yet introduced me to my “team”. The admin girl took me around the whole department and suggested that so-and-so may be reporting to me, but she wasn’t sure.

The org chart was six months old, and from it, I figured I had four direct reports. I knew who two of them were for sure – Mr. Coffe and the TAC (Thick-Accented Cambodian). They had been in on one of my interviews. They had asked generic, meaningless questions like “What do you think of design patterns?” and “How do you deal with deadlines.” I had answered with generic, meaningless answers.

The third guy was Burning Man. Long hair, dyed purplish, tied in a bun. In a bun mind you, not a ponytail. More on him later.

When “Charlie” walked into my cube, I did the math and figured that was the last guy my “team.”

He was tiny. Maybe 100 pounds. Short, lean, terrier-like. He even had an odd scar on his nose, like he had been clawed by a simian . Close-cropped hair. Gray, bell-bottomed slacks (Sears?) and a dingy white button-down shirt, and a belt that almost wrapped around him twice (99 cent store?). He looked like he lived on nothing but pho.

I couldn’t stop thinking of the stories I had read about the tunnel rats in Vietnam, the men who went in after the Viet Cong hiding in tunnels.

“Then I cautiously raised the upper half of my body into the tunnel until I was lying flat on my stomach. When I felt comfortable, I placed my smith wesson .38-caliber snub-nose (sent to me by my father for tunnel work) beside the flashlight and switched on the light, illuminating the tunnel.

There, not more than 15 feet away, sat a Viet Cong eating a handful of rice from a pouch on his lap. We looked at each other for what seemed to be an eternity; but in fact was probably only a few seconds.”

I envisioned that this is what they encountered in the dark tunnel complexes of Cu Chi – a diminutave, fierce warrior that my (Marine brethren) had faced decades ago .

I’ve seen his type before. Excruciatingly technical. Zero people skills. They suffer from some mutation of (Aspergerger Syndrom), one that makes them appear normal, except when challenged. So smart that they are stupid, as they say in Texas. I worked with a guy like that at the Fountain Valley contract, another contract programmer that had pulled a typical geek bitchslap when he had emailed me, and a dozen of our closest colleagues, to inform us that he thought I was a big idiot because I dared to disagree with him about some technical minutia.

My geekdar, like (gaydar), started squawking. I tried to get over my initial impressions. We made small talk. Geek small talk is not like normal small talk:

“Yeah, there’s some cool stuff in 2.0.”
“Yeah, have you tried the object data source?”
“No, but the master pages are nice”
“Yeah. And Atlas is cool”
“That new grid view is way better than the old control”

And then it was time to wrap up the small talk. “I look forward to working with you,” I said.

“We’ll see about that,” he responded, grinning. Or smirking. Whatever. He left.

“We’ll see about” ?! What the fuck was that supposed to mean? Cocky smart-ass, I thought. Typical hot-shot young developer. Binary mentality (I am smart, therefore you are stupid).

I could deal with him, I reasoned. I started to fell like a Tunnel Rat, being lowered into the hole to face Charlie.

But I kept thinking of a scene from the Big Lebowski. “The man in the black pajamas, Dude. Worthy fuckin' adversary,” Walter Shobak had said about guys like Charlie.

Posted in:   Tags: ,
Tunnel Rat posted on September 29, 2006 16:47

On the morning that I got fired from TCTSRN (THE COMPANY THAT SHALL REMAIN NAMELESS – at least until I get all my damn severance), I brought in pictures of my family to hang on my cube. I’d been there 6 weeks, Mr. Whiteboard had just fired "Charlie", and I thought it was safe to personalize.

As John Lennon sang, “Instant Karma’s gonna get you, Gonna knock you off your feet.”

That afternoon, Instant Karma landed one to my balls.

At exactly 5 PM, I got a call from the Julie (nice body, but has seen her better days) in H.R. The one who had convinced me that TCTSRN was a great place to work. “Hi Kevin. Can you come down?”

Not a good sign, because all she did was hire and fire. My reptilian brain processed this binary equation:

If (Julie Calls From HR)
If(You are already Hired)
Then (You are Gettting Fired)
End If

I was already hired, so I must be getting fired. I walked down to the H.R. conference room where they did the hiring/firing. Mr. Whiteboard was there, blank-faced as usual. Julie had a stack of documents in front of her. I had seen documents like those before. Three months before, in fact. SIAN (SWEATSHOP IN A NIGHTCLUB) had presented me with those similar pages when they fired me. Legal stuff. Severance agreements, to be exact.

“We’ve come to conclusion that we will have to let you go,” Julie said.

That was it. No job reassignment, nothing. Except six weeks of severance pay – almost one for every week I worked. Mr. Whiteboard said little, as usual. I was graceful, Julie was firm yet nice, and he was stone-faced. I agreed to always speak highly of TCTSRN. Julie looked me in the eye and reminded me that I better, asserting that I should read the legaleaze i.e., if you don’t keep your mouth shut, you will not get this nice package.

“We like to do these things in a dignified manner,” she said. “You can go upstairs, pack your stuff, and I’ll meet you outside to take your badge.”

Mr. Whiteboard had followed through on the threat he made a month ago.

Posted in:   Tags: ,
Tunnel Rat posted on September 28, 2006 16:44

I have a lot of thoughts on how application development should be done. Almost 15 years in the business, and I am now at a point where I have a vision of what it takes to build applications "right". I have also seen a lot of garbage in this business -- this is where I expose it. I may even name names.

Posted in:   Tags:

- Vineet Nayar, CEO, HCL Technologies

Recent Posts

Slumdog Comment Generator

Not Sure How To Respond?
Use the Slumdog Comment Generator!


«  August 2017  »
View posts in large calendar

Month List

The thoughts expressed on this blog may or may not be the author's own and are protected by the 1st Amendment. Any attempt to reveal his identity by contacting a slumdog hack at Google, or a corrupt Desi sys-admin at his ISP will be dealt with promptly and severely. Civil and criminal penalties may apply if one is found to have used private information in an attempt to get the author fired at the Hindu-only I.T. ghetto he currently works at. In addition, any Desi who attempts to burn the author's house down because they are enraged over his writing will be prosecuted to the fullest extent of the law. This isn't India.

© Copyright 2017 Life of an I.T. Grunt

View My Stats