July 15, 2007 – I got here on a sunny July morning. The guards opened the door and I was taken up to the 17th floor to meet the HR manager. I was still feeling nauseous and lightheaded from the beatings and cuts that I had endured a couple of hours earlier. That made it difficult to concentrate on what the guy was saying. When he was done, he beckoned for the two guards and they dragged me to my cubicle. They left me there. I sat in the quietness, in the darkness, with not a person in sight. There wasn’t anyone around except for an outsourced team of developers who had been brought here from the other side of the ocean.
I was shivering. I didn’t know whether I should approach them or not. The lights started to flicker. I knew that was a sign…that I should stay put for now. I could hear cars zooming by on the highway adjacent to our towering building, but I was too scared to move. I sat still, with a talisman in one hand and an O’Reilly book in the other. Fate had brought me here. I was determined to make it through. I rested my head on my knees and fell into a deep sleep.
Less than twenty minutes later, I was awakened by a knock on the wall. My wooden eyes slowly made out the figure of what seemed like an ironclad lady. She identified herself as a member of Infrastructure and said that she had a special delivery for me.Â She proceeded to reach in beneath her outer iron shell with her right hand. Before my mind could get all creative, she took out a medieval-looking device that was probably the ugliest piece of man-made equipment I had seen in all my years of existence and handed it to me. She noticed that I was in pain, so she opened it up and pointed to the logo: it said “Dell”.
I turned on the godawful device and began to ceremoniously tap on the desk while waiting for Windows to boot up. Once it did, I started Outlook and my PC immediately shouted out the words “You’ve got mail”. “That’s strange”, I whispered; I thought that only happened in movies. The email was from my supervisor. As it turned out, my manager was going to be on holiday for the next five weeks and so my acclimation process was going to have to be taken care of for the most part by myself.
I planned on starting with the boatloads of documentation that had been unloaded in my cubicle. Some of the technical stuff was new to me, so I noted down the things that I needed to learn or get up to speed with. It was going to be a quiet five weeks. The silence of my cubicle was once again interrupted by Outlook. There was an outage in the government network it seemed and so our Internet connection was going to be effectively unusable for the next couple of weeks.1 comment
The next morning, I decided to spend some time exploring the building. One of the first things I noticed when I got here was the eeriness of the place. You just get a sense that something isn’t right when you’re inside. For some reason, it kind of reminds me of the hotel in “Room 1408″ mixed with a little bit of the one in “The Haunting”. I would soon learn that my comparison wasn’t all that far-fetched.
I got in at exactly 7:30 AM and walked up to the finger scanner that hangs on the security desk, behind which two gigantic chunks of human flesh sit, motionless. I placed my right thumb on the finger scanner, making sure not to make any eye contact so as to avoid potential humiliation. Unlike those two guards and the other ones who are scattered all over the ground floor, eyeing everyone who passes by, employee or not, the machine greeted me with a very warm “Good Morning”. With the level of security here, it would probably be easier to break into the NSA than this place. I walked towards the elevators to the left and pressed the button. A few seconds later the one on the left opened up. I walked in and pressed “15″. The doors closed.
The 15th floor is where all the developers live. They occupy most of the floor, with only a few offices spared for trainees, temps and consultants. Originally, there had been close to fifty outsourced developers, but as the project progressed, the numbers decreased. Now, a little under two years into the project, there are about 15 developers who work here full-time, which means that over three quarters of the office space is empty. Management recently decided to start hiring local developers to take over since their contract with that company is set to run out in a year; I was the first one to be hired per the new plan.
I had applied over eight months ago when I was still fresh out of school. Thinking back to those days, I actually had a pretty hard time finding places that did software development to work for; the market was already saturated and almost all such jobs were outsourced. So I had to take a job in infrastructure at a company that took care of IT for an aviation company. It was better than being unemployed and, in hindsight, a brutal and unbelievably callous break-in into industry, which was good.
I placed my laptop on my desk and sat down in the 3×3 meter metal enclosure that was to be my home for the foreseeable future. I stretched my arms and legs and sat back, enjoying the quietness. My mind drifted to my college days, my freshman year. Being a freshman is great fun: so many opportunities and so little worries.
Having daydreamed for a good ten minutes, I stood up again, refreshed and ready to begin exploring the building. Our floor’s main attraction is the huge office space that has no fewer than seven ways to get in. Six walls had to be knocked down so that all the developers could work in a single area. Unfortunately, the area only has two toilets, one of which is almost always out of order. There is a small canteen in one corner that sells sandwiches and coffee. All the outsourced developers are clustered in the corner closest to the working toilet. Wise.
I chose a door and walked out into the corridor that everyone here affectionately calls the “corridor of infinitude” since it is dimly lit and slightly curved, which gives the impression that it is infinitely long. Incidentally, a major technical school in Cambridge decided to copy us. Not cool. Not cool at all.
There is a relatively small office opposite our office space (only two ways to get in) that houses the project manager, the project director and the DBA, as well as the color printers. The DBA seems to be the most important guy in the whole place since there are always people swarming to his desk with questions and requests. Given that the entire operation relies on the integrity and accuracy of data, that shouldn’t have come as much of a surprise. He spotted me peering through the door and so he gave me a very warm and firm salute from afar. He must have been a military man in a former life. I replied with a weak-ass thumbs up. He seemed like a really nice guy. Intellect and character; what more could one want in a coworker, or a human being.
I walked through the dark and humid corridor for what seemed like an eternity until I got to the end of our office space. Exactly opposite it was a small kitchen and behind it was another room guarded by a wooden door. I slowly pushed it open.
“Aaaaaaaaah!”, my heart screamed for a split second as my eyes spotted a human being sitting in the darkness with his back towards me, slowly rocking back and forth. I figured he must be the janitor. Should I say something or just pretend like I didn’t see him? I opted for the former.
“Sorry for disturbing you. I’m new here and was just looking around.”
He carried on rocking back and forth as though I hadn’t spoken a word. I’m not a wuss, but I had a very bad feeling about going in the nearly pitch-black room. Just as I was about to close the door, I heard a low crackly voice painfully utter:
It will eat you alive; it was swallow you whole; it won’t let you leave
I slammed the door shut! The guy, whoever the hell he was, had some serious issues. If his intention was to freak me out on my second day on the job then he sure succeeded. What the hell.
I walked to the end of the corridor and came across three vacant offices and an executive meeting room. I was too freaked out from I had just witnessed to go into either so I just had a quick peek and made my way back. I then went up to the 16th floor. There was nothing exciting up there; it was basically the same layout minus the huge office space. I was about to go down to check out the Business Center when I bumped into my supervisor. He asked me how I was doing and why I was up here. I let him know that I was exploring the place. He smiled.
“Hey, I came across this weird guy in the room behind our kitchen who really scared me. Any idea who he is?”
“You need to get some sleep, Karl. Don’t stress out too much. I’m sure the job will grow on you.”
I was a bit annoyed, not only because of his assumption that I was stressed out, which I wasn’t, but also because he didn’t answer my question.
“But the guy in the room behind the kitchen, who is he?”
“Karl, there’s no room behind the kitchen, ok. And there’s no one sitting inside it rocking on a chair, ok!”
With that, he walked away. What the…Who the hell took the jam out of that dude’s donut? And more importantly, how did he know that the guy I saw was rocking on a chair when I didn’t mention that to him! This was all too weird. I didn’t want to think about it too much, so I decided to let the whole thing go for now.
I went down to the Business Center on the 11th floor. It looked really flashy. It was still being worked on, but the parts that were ready were really really nice. The place looked like the lobby in an exclusive hotel. People were walking around in crisp Italian suits and spotless leather shoes. Everyone used hair gel, even the ladies, and they all walked with their backs straight and their heads held high, engaging in professional and well coordinated discourses with each other. I looked down at my three-year old dusty shoes and at my stitched and restitched plastic belt and at my no-frills shirt and realized that I was in enemy territory. My $1.99 tie was no match for the silk jewels that everyone here decorated their chests with. I ran towards the elevator and made my way down to the 9th floor.
The 9th floor was the most impressive. It has huge programmable Xerox printers that are hooked up to a couple of workstations that spend all day furiously printing out documents on one side of the room while folding them and putting them in sealed envelopes on another. I figured that the setup most probably worked by being fed some kind of delimited text file, which it would then process and print according to some template. It all looked great. Amazingly, there was not a single guard in sight. It seemed like the $100 finger scanner on the ground floor was more valuable than hundreds of thousands of dollars worth of state-of-the-art equipment.
With that, I decided to end my journey. I walked up the stairs for a change and in the process greeted all the smokers who were lingering in between the floors. I got to the 15th floor, hurried past the kitchen and arrived at my cubicle. I sat down, satisfied, and looked out the window.1 comment
August 2, 2007 – Two weeks had passed and everything that could be read had been read and the parts of the codebase that I was allowed to experiment with had been experimented with. Alas, this being a government job, the time period of the so called acclimation process was etched in stone so my pleas for being given actual work or on-the-job training were met with indifference. In hindsight, that was probably the reason why I, unintentionally, decided to unleash a devastating attack on the already slow-as-a-turtle-on-weed network by loading Slashdot, xkcd, a few YouTube clips, Infinite Mario, Heli Attack 3 and The Classroom 3…at the same time!!
The network was brought to its knees. Sirens went off in the help desk office, which only aggravated the already stretched team of…one (on call duty). Sleeves were rolled up, sweat was wiped away, and, at some point, a shirt was ripped off in hopes of boosting stamina. The network was on the brink of collapse. And yet there I was, with legs crossed, in my isolation chamber, sipping a cup of hot cocoa and reading then laughing at all the brutally honest, and occasionally unbelievably bizarre, musings of Slashdot readers.
Considering the amount of free time I had, now seemed like a good time to approach The Others and attempt to break the ice with them. As the short and succinct saying goes: “If you feel like there is a close-knit, outsourced team on your premises that doesn’t show any interest in welcoming an outsider into their circle and trusting him or her with actual work then you must overcome your tendency to be passive and impose yourself on them and show them that you are worthy of joining their special circle of developers…by any means necessary!”
It’s a popular saying, and for good reason it would seem. I had to put it to practice, particularly since our project manager, being the unique and interesting little fellow that he is, had told me from the outset: “To be honest, I’m not really sure how to handle new recruits.” That’s good to know, thanks buddy! I wonder how you ever became a project manager. Those few words sure upped my spirits!
So I decided to approach those developers-from-beyond-the-ocean with confidence and assertiveness. Long story short: the saying is overrated.
Sure, I got on good terms with a few developers, but was met with ego-shattering, condescending remarks from one of the senior developers and some of his posse.
I have a theory that people who get into high positions and act sadistically and condescendingly towards their subordinates either have an authority complex or for one reason or another got promoted too early in their career, which totally screwed up that part of their brain that distinguishes descent human behavior from primitive savagery.
I picked up what I could salvage of my ego from the floor, looked at him and said: “Do you have some kind of psychological problem?” His facial expressions changed; it was obvious that in his mind, the set of stereotypes he had associated with new recruits in a country where getting a job in itself is an achievement didn’t include “Stands up to arrogant mofos”.
Him: “What, sorry?”
Me: “No, I’m just saying, is there something wrong with you or are you just innately demented? I don’t know, maybe you have some kind of complex that you’ve been carrying with you since childhood, because that there is no way to talk to someone who has just joined a department and is all excited about making significant contributions to its flagship software product. How about you do us all a favor and drop dead so that we can deep-fry your gigantic ass and end world hunger!” [Auditor's note: come on! This is a clear fabrication and a totally ridiculous and biased account of what actually happened. You fail...loser]
Him: “Yeah, no…You know, I’m just kidding with you. It’s ok, yeah, no, it’s fine…so, what is it you said about…I mean…your question was about…what was it about…what exactly?”
Me: “Don’t worry about it; I can figure it out myself. It’s not the question that was important.”
Eventually, I got assigned to work on an ok-sized component of the 1,200+ class system. I didn’t have to worry about EJBs for now; it was Java, JSPs, Struts, DTOs, DAOs, Delegates and things of that sort. They also had some processes that they wanted automated with Windows scripts for use in their external offices. It was a skill that their developers lacked, so I got assigned to work on those too.
I fired up RAD, ClearCase and Test Director, sat back with my legs crossed on the table and my hands behind my head while the newly imported build was being compiled. I looked up. The flickering light had been fixed. I looked outside. The dark clouds had disappeared. I look at the maze of uninhabited cubicles. Still no one in sight, but that was ok. In time…
Embellishment Rating: [ Low ~ Moderate ~ High ~ Extreme ]No comments
August 20, 2007 – I underwent some self-therapy a couple of years ago to overcome the crippling “Not Invented Here” syndrome: a special type of disorder that is known to cause sleep deprivation, stress and the frequent desire to reinvent the wheel. Symptoms include dark circles around the eyes, pale skin and rubbing one’s nostrils every so often. I realized that I had hit rock bottom when I started to lose the ability to fall asleep. So I smacked myself upside the head and decided to go back to school.
Now though, it was time to put things into practice. I was given huge chunks of code written by (gasp!) other developers along with a set of change requests and reported defects. I looked at the code and the code looked back at me. It gave me a very dirty smirk and then, would you believe it, spat…right in my face! I contained my fury and decided instead to very calmly wipe the spit off my forehead. I looked at the bastard as one hand approached the keyboard and the other slowly approached the mouse. “Listen to me carefully”, I whispered, “You don’t know me. You want madness? I’ll give you madness”: HASTA…LA…VISTAAAAAAAAAA!!!*
And that’s when I charged with the force of a Spartan army! I started biting it with ferocious brutality, ripping it to shreds, attacking it from every angle, casting spells on it that I didn’t even know I had. I punctured its lungs, I extracted its guts with my bare hands, I shattered its skull. In turn, it fought back with bombs of cynicism. The battle went on for several weeks. In the end, a bloodied man arose with his head held high; his antagonist lay before him, slain.
The developer was victorious. He could now work with other people’s code. The sun started to shine; birds started to sing; children started dancing in the streets. A new day had been born.
I was going to conquer this place. The entire organization was my oyster! Then the phone rang. With my left hand still grasping onto my defeated opponent’s dripping internal organs, and my lungs still in desperate need of a fresh supply of air, I turned to the phone and picked it up. It was HR. They wanted a few of us to attend a day-long induction program that was scheduled for about two and half months from today. The unbelievably extreme idiocy of what I had just heard was simply too difficult to comprehend. Even my brain was pissed off; it screamed: “What the F, bro; I’m the most powerful supercomputer in the universe and you want me to rationalize a ridiculously irrational statement like that? Not in a million years.”
I had always heard that government organizations were incredibly slow and bureaucratic, but I never realized they were this bad!
Cynics: 0, Protagonist: 1
* : Ok, that sounded lamer than it did in my headNo comments
August 26, 2007 – I was having trouble getting the WAS Test Environment to start up in debug mode, and being relatively new to the codebase, tracing through it with System.out() was getting tiresome. So after searching the Internet, Usenet and asking around, I decided to approach one of the developers here whom I hadn’t interacted with before, mainly to break the ice. Consequently, he turned out to be as unbalanced as myself.
Me: I’ve tried everything I can think of to get WebSphere to start in debug mode, but to no avail. What should I do?
Him: Hmmm, not sure…it works ok for me
Me: Ummm…So what should I do?
Him: Try reinstalling
Me: I did, and it didn’t help
Him: (pause) Try reinstalling again?
Me: Ummm…yeah…ok…I’ll do that then. Cheers.
So that’s when I decided to give up for now and instead, and on the recommendation of one of my friends, rely on log4j, which I’d never used before. It’s a wonderful invention by the way. Most of the classes were already filled with info() and debug() lines, but nobody had pointed out that the system could do logging with a few minor tweaks, and my mind for whatever reason just couldn’t be asked to infer anything from a blatantly self-explanatory line like “logger.info(…)”. So I modified the logger class in my local project to pipe all that juicy goodness to the console window and I could now trace through classes and files at runtime, which was pretty useful.
The moral of the story is this: If you don’t have a debugger, log4j is a pretty cool alternative. Actually, even if you do have a debugger, it’s still pretty useful to do logging in case you need to pinpoint a fault in a UAT or Production environment.No comments
August 28, 2007 – With the softest of footsteps, a mysterious man approached my cubicle. His right hand held onto a brown envelope. Once we were a few feet apart he stopped and examined me from head to toe. He was a tall man, wrapped in a beige “Inspector Gadget”-like coat, with his collars hiding his face. I looked at my watch; it was ten minutes to going-home time. Without saying a word, he took out a piece of paper from the envelope and handed it to me. I was too scared to move my eyes, but I was able to make out the word “URGENT” written on it.
I tried to back way, but he came closer, and closer, and closer, and then without warning gnashed his teeth and pounced on me! I didn’t even try to put up a fight. I knew it was a losing battle. That was it. There was no running away. There was no hiding. My time had come. I had to be taxed just like everyone else…by being handed an urgent incident ten minutes before the end of the day and being asked to fix it…before the end of the day.
My unfortunate and extreme love for statefulness has so far made it difficult to complete tasks on the same day that they are assigned. Ever since I installed Windows XP a few months after it was released, I’ve had the habit of hibernating my PC instead of shutting it down before I go to bed so that I can wake up the next morning and carry on from where I left off*.
What this has meant is that my taskbar is locked at five rows high and is always littered with open windows. It might be time for Microsoft to consider allowing users to hide windows so that they’re only accessible via Alt-Tab. It might also be useful if they replace the taskbar with something like, I don’t know, a dock. Actually, while they’re at it, why not also add features like, I don’t know, “ExposÃ©”?
Multi-tabbed browsing added insult to injury. Now I have double the number of windows open, most of which are articles on all sorts of subjects that I’m planning to read at some point. You can’t really think with a clear mind when you have so much volatile data cluttering it. Not everything that’s interesting has to be read.
Anyway, three and a half hours later, I looked outside our window and admired the night sky. The cars were whizzing by down below. The moon was out and as bright as ever. The stars were dancing in the darkness. The city looked beautiful. I breathed a sigh of satisfaction, checked in the fixed files and sent out a deployment request.
I was just about to go home when the phone rang. It was an international number. I picked it up.
A sweet voice replied: “Hi, Is that Karl?”
It was Fate. Whenever she gets bored, she has a habit of calling me and winding me up, you know, for a laugh. Maybe she has a thing for me, I don’t know. After chatting with her for a few minutes, I realized what the issue was this time round.
What had happened was that she had arranged for my profile to be forwarded from the Mountain View company that I had a series of interviews with last year to their Zurich offices. Then she arranged for a nice lady to call me a few days later. The lady introduced herself and said that she wanted to set a date for a phone interview. No problem. I couldnâ€™t let her know what I really felt about phone interviews. Itâ€™s difficult enough as it is having an accent, a low voice and the unenviable trait of forgetting things when Iâ€™m asked questions on the spot; imagine adding a two second delay and a static-filled line to the mix.
So the day of the interview came and I got asked about algorithms, optimization, termination problems and a few other things. I thought I did pretty well, but as it turned out, I didnâ€™t. I have a tendency to get those two things mixed up.
So now, Fate was just “checking in” on me and wanted to make sure that everything was alright. She also wanted me to know that she would always “be there for me”. I flat out told her that her poorly executed seduction techniques were simply reinforcing the embarrassment that she is. I was already already in a relationship with a much gentler and more loyal person called Karma** and she was everything I could ever hope for.
With that, our conversation ended and I went home.
* : Long gone are the joyous days of Windows 98, which ever so kindly crashed with a BSOD every few hours, thus forcing one to restart.
** : See what I did there? That’s what people in the industry refer to as first-rate humor.
November 11, 2007 – You won’t want to miss this. Google has a useful directory service called GOOG-411, which unless you live in the U.S. you’ve probably never heard of, but that’s ok. As it turns out, one of the highlights of the service is the strange sound it makes while it’s searching. Now, and for the first time ever…brace yourselves everyone…Bill Byrne, the engineer behind the sound, who I’m sure is a great guy, spills the beans and reveals all!
“We call it the â€˜biddy-biddy-boopâ€™ sound”, says Byrne.
Why thank you very much, Bill. That’s good to know.
â€œThe system working sound is a particularly difficult sound to do. You have to have just the right tone, the right mood, the right signal. It canâ€™t be busy or too monotonous…It has to be a quick noise to evoke efficiency. It canâ€™t be too uniform, like a ticking clock.â€
Again, good to know.
So why the sarcasm you ask? Well, here I am, at work, questionable as it is browsing Slashdot and CNN.com and wondering two things: What if my boss came into my cubicle and for whatever reason decided that Slashdot was the devil and that I was fired*? Wouldn’t it suck to get fired because of a story about a stupid sound that had to be painstakingly invented and then UAT’d? And secondly, half the world is up in flames on the other side of my screen and here I am reading about and, alas, writing about a friggin’ sound in a directory service that I’ve never used!
Aaaaaaaaaaaaaaaaaaaaaaaaa…wait there’s more…aaaaaaaaaaaaaaaaaah!!
*: Thankfully, my boss is a very cool guyNo comments
December 2, 2007 – I stayed up until God knows when to fix the dreaded CR51: a cross-cutting change request that impacts almost every module in the system. I was all pumped up after having fixed every one of the failed test cases. I was confident that I had overcome. The era of passiveness had ended and with its demise a developer had been reborn. Nature joined in the celebration by blowing a soft breeze in the direction of our office space.
The next day, the callous tester came strolling in and even though all the test cases had passed, refused to close the change request because some issues had not been fixed. My otherwise conservative subconscious went mental and screamed out: “What other issues you neckless sack of crap!!!” Ok, so it turns out that the issues are valid. I had made the mistake of not reading between the lines in the change request and extrapolating the defects that were hidden behind pronouns and punctuation marks. On careful inspection, it turned out that even the seemingly insignificant coffee stain had a couple of defects hiding behind it. It didn’t matter that they were never explicitly mentioned or even remotely alluded to in the request document and were absent in the original set of test cases.
But what can one do other than shrug one’s shoulders and oblige. I had let my ego down. CR51 had yet again proven to be unbeatable. The slings and arrows of beautiful code and legible comments were no match for its might.
Perhaps we will meet again, on another day, at another time.
And perhaps, just perhaps, I will beat CR51 once and for all. Perhaps I will uproot its evil existence and zap it into oblivion.
Hope is all we can hope for, comrades. It’s…all we can hope for.
Cynics: 2, Protagonist: 2No comments
December 15, 2007 – An exception was being thrown in one of the pages only a couple of hours before the scheduled UAT deployment. Since the JSP was about as long as a novel, it was difficult to pinpoint the culprit. Two developers looked into it and soon enough, the less than ideal, and yet somewhat comical, formations of some of the conditionals got to them. I had a look. 30 minutes later the bug was fixed. I let the developers know and they were so elated that for once I thought I saw a smile of content that said: Hey, you’re alright, kid. It ended well.
What they didn’t know of course is that I was responsible for slipping in the faulty lines in the first place. In a strange twist, I forgot to add comments indicating that I had added them and had absentmindedly checked in the files anonymously, so I ended up getting credit for fixing a high-priority bug and didn’t get told off for inserting it into the code in the first place. I must have been nice to an orphan or something on that day.No comments
January 28, 2008 – YOU ES AAY
Dine dineh dineneneneeneneeeh
Didenetene denenetenetena denenetenetanenehnehneh
Igesh igesh kah kah dhow dhow
SONIC SONIC SONIC BOOM!
Gesh deg deg
Agish Agish Desh Desh Agish Agish
Iyaaaaaaaaa Iyaaaaaaaaaaa Iyaaaaaaaaaa
I couldn’t find a more eloquent way of describing my relationship with the testers in Operations. The sight of a reopened CR isn’t a pretty one. The fact that testers’ comments are added to Excel sheets called crxx_round1, crxx_round2, etc. adds humor to an otherwise humorless experience. Oh well, I guess it’s better to put up with over-stringent and occasionally irrational testers than to have to go through the headache of fixing defects in production, regardless of who or what they were caused by.No comments