Showing posts with label Wall Street. Show all posts
Showing posts with label Wall Street. Show all posts

24 October 2021

The Digital Detective, Wall Street part 4


When corporations upgrade large computer systems, they typically run the old and the new in parallel a few weeks or months until the bugs are shaken out. Occasionally events take a turn as discussed last week.

Mutual Admiration Society

Back in New York, our mutual funds firm (not so fondly referred to as MuFu) faced a different problem. They had completely rewritten the primary application, changing over from Cobol to C, and it hadn’t gone well. Four months after parallel commenced, they were experiencing glitches and crashes.

The sizeOf problem I’d caught wasn’t a contributing cause. An unidentified problem was triggering errors, an oversight so simple it would boggle the mind.

Robert, their very defensive senior C expert, hadn’t told me about a front-end program written by yet another programmer. I had to figure that out for myself. The bug wasn’t in the program they’d assigned me; it was introduced by what came before.

Front end and Back end Processing
Front end and Back end Processing

As previously mentioned, Cobol reads like English and C… well, C is sometimes great and often horrible. C had become the most recent fad and application programmers were feeling the bite of its double edge sword.

The staff was comprised of university C students and the last Cobol member on her way out. Machine language (and assembler) weren’t in their purview and when they dismissed John, ‘the old guy’, they'd rid themselves of their only person who could poke around in memory (RAM) to determine what went wrong.

And memory was a problem. The program used customer numbers to index into a table and reference records in storage… in theory. In practice, I soon learned the customer was occasionally wrong, wildly wrong, trying to access a memory location off in the wilds of Kansas.

Cobol could detect out-of-bounds matrix subscripts; C could not. Thus it took me a little while to figure out the bogus account code was coming from a front end program. That preprocessor queued submitted entries, performed minor verification with a check digit, converted the input to binary, and passed the record on to the back-end program I first investigated.

In short, sometimes the data entry folks included dashes in the account number (e.g, 7654321-1) and sometimes they didn't. The Cobol app extracted only the digits; the C program didn’t. Both programs tentatively vouched for the account number (7654321) using the check digit (1), indicating it resided in the realm of possible valid numbers. Unfortunately, the newly written C routine included the hyphen when attempting to convert the number to binary. Both versions then ‘piped’ (passed along) the massaged data to the back-end program where hell and fury would erupt when a bad number with the mashed-up hyphen was passed along.

For all the grief it caused, correcting the C front end was trivial. Worryingly, the front-end program, instead of creating the transaction serial number, left that task for the back-end program. Bad, bad, error-prone design. And, as I would discover, prone to manipulation.

I returned the program to service and turned my attention back to the mysterious ‘sizeOf’ conundrum.

Faith, Hope, and Charity

Many organizations buy into mutual funds for long term storage of their money. City, county, and state governments store tax revenues, fines and fees there. Churches and charities divide money between money market and mutual funds.

In the mutual funds program, a template field labeled IRS501C was data-typed binary in the old Cobol Record data division and as boolean in the matching C Struct.

When I returned to the section with the anomalous ‘sizeOf’ routine, I could see this field being referenced, but I didn’t know why. A library search for original source code for sizeOf and the parent routines turned up nothing.

Growing more suspicious, I asked operations to dig through their archives and find the code. “Don't hold your breath,” they said.

Next day, the IT director gave me the conference room to spread out my work. I mapped binary instruction after instruction, recreating an assembler code version of the program. C could fool the eye, but machine code, even in the absence of context, revealed details of what was going on– if I could figure it out.

I constructed charts of data structures, trying to figure out what was taking place. At last when I spotted buried instructions trimming fractions of a cent from daily interests earned, I knew I’d stumbled upon skulduggery.

Figuring out the sleight-of-hand was mind-bending, but I got a break. Like so many magic tricks, the chicanery was breathtakingly simple. Only the surface artifice was complex.

I had accumulated a suite of experimental data to test extremes of the system. It contained only a dozen records but I noticed the audit log reported thirteen. What? A record with a proper transaction serial number had materialized like a magic trick.

As mentioned previously, the front-end processor should have been creating the transaction serial number, not the back end, but apparently no one here knew better. That oversight facilitated the deception, allowing crooked code to create records undetected.

Computer hours were reduced that day. Being the first of the quarter, month-end and quarter-end reports took priority. Idling, I suddenly wondered if month-end had anything to do with the mysterious symptoms I was witnessing. Once again I nagged operations about searching archives for source code.

An hour later found me wrestling with that data cleverly hidden beyond the end-of-data marker. An impatient operator slapped a cartridge on my work table. "Try this," he said.

Former employee John had made a rare oversight. He’d deleted the source files, but… Each evening, operations backed up everything, and that included John’s source code. It filled in gaps.

No comments, of course, but lo, I beheld the twisted mind of a criminal genius. The routines were rife with indirection and misdirection. The ‘sizeOf’ trick merely hinted at the scam iceberg. While the obfuscated C code suggested one thing, the meticulous machine instructions I’d decoded step by step helped me understand what was really happening.

The scheme launched from a database record under MuFu’s own name and address, 100 Maiden Lane. The registered agent was listed as K. King, address 103rd floor, 350 Fifth Avenue, Manhattan, New York 10118. Midtown… I looked it up… Empire State Building. The street address was legitimate, but 103rd floor?

interest truncation example

Greed Kills

The charlatan routine skimmed thousandths of a cent or so following rounding errors– interest and binary-to-decimal trailing digits after rounding high. On average, the algorithm could have siphoned a quarter of a cent per transaction without setting off alarms, but our sneaky programmer apparently wanted to stay well below nets cast by auditors. Those fractions of a penny accumulated in the bogus MuFu self-owned bucket until the end of the month. Dollars– thousands of them– and been created out of thin air.

I fully expected John’s wife or a friend had opened another account to receive the transfers, but as I traced the code, it invoked a random number generator to index into an entry in the hidden part of the file, just one binary field,  which turned out to be an account number. At month end, the subversive routine transferred out between $1200 to $5000 a month from the bogus MuFu in-house account to the account selected by the random number generator. But why only certain accounts? What was special about them? How was John profiting?

As always, I sat outside on the ferry shielded by a bulkhead. As I started at the lights of Brooklyn, the answer hit me, knocking sleep out of the equation. I rode the ferry back.

With suppressed excitement, I extracted the account numbers and checked the first indicated record. Bingo. And the next one. And the next. And then the 20th and the 100th. Bingo, bingo. Every case showed the IRS501C non-profit tag.

Damnation. I’d unmasked a freaking Robin Hood. John– or should one say Little John– was stochastically selecting non-profit accounts to donate to. That generated the thirteenth record.

Fascinatingly, the audit trail reinforced the fraud’s legitimacy rather than exposed it. Only a paper trail might suggest a missing document, but who was going to dig through reams of flattened dead trees?

If United Way or Scouting USA or Bethune Cookman read their statements at the end of the month, they might have scratched their heads but concluded they surely made a deposit and misplaced their record of it.

I made copious notes and documented everything. When presented to the firm’s CIO, she looked disbelieving, then doubtful, and finally bewildered.

“I know your reputation,” Loretta said, “but this can’t be possible. Besides, IT claims John had aged beyond usefulness. He couldn’t keep up. He barely finished this, his last project, before we let him go.”

“If so, he put effort into making a final masterpiece.”

“Leigh, darling, can you fix it?”

Call me darling and I can fix anything. I yanked the too-clever code out by its roots and their senior programmer, Robert, fixed the hole and, upon my recommendation, moved the transaction serializer to the front-end.

“What will you do about the spurious deposits?” I asked.

“They go back months. We wouldn’t look good demanding hospitals and heart foundations return money deliberately deposited into their accounts. John gave away money we couldn’t detect was missing. We’ll leave it that way.”

“What about John?”

Loretta sighed. “Same reasoning. Arresting him will bring nothing but bad publicity. Can you imagine the Times or the Journal with headlines about a Wall Street Robin Hood? That’s bad enough, but a sympathetic soul would raise issues about ageism. No, we can’t win there. Thank God we discovered it.”

“Can you get me John’s contact info?”

“What? No, maybe, yes, why not. I’ll discreetly ask HR for it.”

Robbin’ Robin

I phoned ‘John’ and invited him to lunch.

“I don’t think so,” he said. “Who is this again?”

“Leigh Lundin.”

“Oh shit, you? What do you want?”

“Just a chat. Really.”

“You’re working for MuFu?”

“Yes, today I am; tomorrow, no. I’m wrapping up.”

“So you know…?”

“Lunch,” I said. “Let’s not do this on the phone.”

“Fraunces Tavern?”

“Whew! If you pay.”

He laughed. “Okay. If you accept that, you aren’t out to nail me.”

“I’m not. John, can you afford it?”

“I landed on my feet. Arthur Lipper knows me and his son hired me.”

I respected Lipper Inc. He chose well.

The Wolf Pup of Wall Street

We met in the pub where George Washington bade farewell to his troops. John looked like a mad Santa with puppy dog eyes and an Albert Einstein hairdo. I’d bet a dozen grandkids employed him as a stage for hundreds of adventures.

He said, “You’re not recording this?”

“No.” I kept my smile easy and relaxed my body language.

“I’m not admitting anything including this statement.”

“Hmm. Let’s talk hypothetically, this entire conversation, okay?”

“Sounds fair. What have you figured out?”

“Most of it, I imagine. Cancer research received a couple of grand on the first before I could stop it. That will be the last payment.”

“Good,” he said. “I mean, embezzling’s awful.”

I snorted. “SizeOf.”

He laughed. “I thought that was clever hiding in plain sight, but apparently not clever enough.”

“I overlooked it at first. John, what was going on? Why did our suppositional programmer take such a risk?”

He dropped the hypotheticals.

“They dismissed anyone approaching retirement, figuring to save paying pensions, I suppose. You heard about Walston?”

“I was there, John.”

“The MuFu bastards had a definite preference for young faces. I knew for months they were going to fire me, I could smell it in the air.”

“I know that feeling, John.”

“The staff treated me like crap, acting like I was in my dotage. They figured my brain had rotted along with Cobol, but they needed me to effect the conversion. I learned C until I knew it better than they did and then studied it more. Their superstars couldn’t read a dump or comprehend machine instructions during debugging. I turned the joke on their little experts.”

“Sheesh. I’m sorry you went through that, John.”

He shrugged. “What will happen to me now?”

“Far as I know, nothing. I think they’re too embarrassed. One or two, the CIO and the VP maybe, have shown a touch of grudging respect. They’re coming to grips with the senile grey-beard who fooled them.”

“Good, because I’m a coward. I’m not looking for fame and misfortune.”

“Don’t worry, John. Everyone but the sheriff loves a Robin Hood.”

Final Thoughts

And that is my favorite Wall Street crime case. I’m called when matters go mysteriously wrong, so Miss Marple-like, I occasionally stumble upon another puzzle and test of wits.

In this case, charities profited and the bad guy turned out a good guy. Some may object that a criminal avoided prosecution, but personally, I couldn’t imagine a better outcome.


Following are a few more tech notes.

17 October 2021

The Digital Detective, Wall Street part 3


I’m still astounded Fortune 500 companies and government facilities not merely allowed, but invited me, a 19-to-20-something freelance me to play with their very expensive computers. I mean work, not play, yeah, work is definitely the word. Reputation is everything. And okay, I have authority issues. So I’m told.

Striking off on my own meant no security blanket, no 401K, no pension, no profit-sharing. It meant scary months when I wondered if the phone would ring with a client and months when I wondered if the previous client was going to pay or not. That’s a concern– some companies withheld payment until they once again needed help. Sometimes managers wouldn’t like what I reported. My type of work– designing systems software– was specialized, so occasionally famine struck.

During one drought, camels were toppling over, birds fell from the sky, and my bank account appeared a distant mirage. Finally a call came in before the telephone company could cut me off. It was Wall Street again, a mutual funds house we’ll call MuFu. Loretta was their CIO, Chief Information Officer.

100 Maiden Lane, NYC © Emporis
100 Maiden Lane
NYC © Emporis

“Darling, are you available?”

“Personal or pleasure?”

“Are you saying personal isn’t pleasure?”

“You’re married.”

“Was, Darling, was.”

“Loretta, I’m sorry.”

“Don’t be, I’m not.”

She lied. I could almost hear the sounds of tears leaking from her eyes. She was a nice lady who’d come up through the ranks.

“Loretta, what’s happening?”

“If you’re available, I need help.”

“Please don’t let it be application programming.” Even if it was, I desperately needed the work.

“Well… Did you hear we’re undergoing a conversion from Cobol to C?”

“You and every other firm with fresh university graduates.”

My professors, Paul Abrahams and Malcolm Harrison, were language experts. Abrahams was chairman of ACM’s SIGPlan and would eventually be elected president of the US’s professional organization, the Association for Computing Machinery. They received early releases of Unix and with it the C language. For my part, C was co-respondent in a love-hate relationship. It constituted a step up from assembler language, but I wanted more.

She said, “I know you’ll be simply shocked, but we’re experiencing crashes. We can’t cut over until we nail the problem. Nobody around here can read machine code. I know it’s not your thing, but nobody knows Cobol either.”

In the following, I’ve tried to trim back technical detail to make it more accessible and I apologize where I failed to restrain it. The gist should suffice.


Next day I took the Staten Island Ferry to lower Manhattan, where I strolled up Pearl Street and turned onto Maiden Lane. The mutual funds house took up a few floors of an older building, although the interior was done in chrome movie set futurism.

The glass room remained there running their big iron computer. Off to one side was a new server chamber covered in curved, blue plexiglass. Very spaceshipish.

Loretta blended 10% boss and 90% Cub Scout Den Mother, which made her a popular manager among the guys. She called in her lead analyst and chief programmer, Richard and Robert. The latter radiated lethal hostility.

“Leigh’s here to shoot that bug that’s killing us.”

“We don’t need help,” Robert said. “He’ll just waste our time.”

Loretta said evenly, “You’ve had months and it’s still not identified. Please give Leigh all the help he needs. He’ll likely work after hours to have the computer to himself.”

After Loretta departed, Robert said, “I know who you are. You used to be hot shit.”

“I’ve never heard it put so charmingly. Listen, I’m not here to take your job. I’m not here to threaten you. I’d like to get the job done and move on. Show me what’s going on.”

As predicted, the program started and died with an out-of-address exception– the program was trying to access memory that wasn’t there.

I asked for listings and a ‘dump’, formerly called a core dump, a snapshot of memory when the system died. The address of the failing instruction allowed me to identify the location of the link map, an org chart of routines that made up the program. Sure enough, the instruction was trying to reference a location out of bounds of its memory.

I took the program source listing home with me and spent a couple of days studying it. It was ghastly, a compilation of everything wrong with bad programming and especially in C. It contained few meaningful variable names and relied on tricks found in the back of magazines. Once in a while I’d see variables like Principle or Interest, but for the most part, the program was labeled with terse IDs such as LB, X1 and X2. This was going to take a while.

The company had no documentation other than a few layouts from the analyst. When I called in to ask a question, Robert stiff-armed me. I arranged my first slot for Friday evening with time over the weekend.

I began with small cleanup and immediately hit snags. I’d noticed a widely separated pair of instructions that read something like:

hash_cnt = sizeOf(Clientable);
      :
cust_cnt = abs(hash_cnt);

Wait. What was the point of the absolute value? C’s sizeof() returned the number of items in an array. It should never be negative. You could have five apples on a shelf or none, but you couldn’t have minus five.

As part of the cleanup, I commented out (disabled) the superfluous absolute value function. Robert dropped down as I compiled and prepared to test. I typed RUN and the program blew up. What the hell? Robert appeared to sneer, looking all too pleased.

He said, “That section was written by that old guy, John. We fired him because didn’t know crap, so no surprise it’s hosed up.”

I knew who he was talking about, a short, pudgy bear in his late 40s with Einstein hair. I’d never been introduced, but I’d heard him on a conference panel. John was no dummy, no matter what Robert said.

Robert smugly departed. I stepped through the instructions, one by one, studying the gestalt, the large and small. My head-smack arrived on Sunday. Curious why sizeof() would return a negative value, I traced how hash_cnt was used. As I stepped through the instructions, I saw it descend into a function called MFburnish().

I couldn’t find source code for MFburnish(). No one could. Without source, it would be very difficult to determine what happened inside it.

I went back to the variable Clientable passed to sizeof(). The array was loaded from a file, Clientable. Both consisted of binary customer numbers. I spotted something odd.

C is peculiar in that it uses null (binary zero) to mark the end of arrays and ordinary file streams. This file had two nulls, one about the seven-eights mark and another at the absolute end.

At first, I thought the file had shrunk and the marker moved down while remaining in the same space. But when I looked at the file, it had the same defect… or feature.

As some point, I looked at the link map to check upon another routine and for the first time noticed what I should have spotted earlier. There amid C Library functions of isalpha(), isdigit(), islower(), isupper(); was sizeOf().

Double head-smack. First, C’s authors claim sizeof() is a unary operator like +n and -n. To me, sizeof() looks and acts like a function and nothing like a unary operator. But by their definition, it shouldn’t show up in a link map with real functions. On closer inspection, the program read not sizeof() but sizeOf(). Another annoyance of C is that it’s case sensitive, meaning sizeof and sizeOf and SizeOf and even SIZEOF are not the same thing. This kind of nonsense wouldn’t have been possible with their old Cobol system.

The deception seemed awfully abstruse, even by C standards.

interest truncation example

The Clientable contained account numbers of a sizeable fraction of clients. Why some customers and not others would take me a while to discover. Unlike sizeof(), the ginned-up sizeOf() showed the actual record position within the full file expressed as a negative number, hence the abs() function.

Someone had written deliberately misleading code. But why?

Money, of course. Moving backwards, I began to look at the code with a different eye. And there it was… not merely the expected interest calculation, but the conversion from binary to decimal, another Cobol to C difference. I suspected one of the company’s programmers had pulled off the oldest thefts in computerdom– siphoning off money by shaving points when rounding numbers.

This wasn't the problem Loretta had asked me to solve. Robert had directed me to the wrong program, which turned out to be a stroke of luck. Loretta had invited me to track down a program bug, but I suspected I had unearthed traces of virtual villainy.

Next week: The Confrontation

Following are Cobol versus C notes for the technical minded. Feel free to skip to next week.

23 June 2013

The Digital Detective, Wall Street part 2


continued from last week
The Best of Times…

Systems programmers held a unique niche in the multiple mainframe corporate structure. We didn’t practice ordinary commercial programming but were responsible for keeping the software side running– the operating systems, telecommunications, and utilities. The best of us knew assembly language– the cryptic machine instructions that underpin more or less human-readable languages like C, Cobol, Fortran, and Java. We dealt in bits and bytes, binary and buzzwords, not credits, debits, and balance sheets.
77 Water roof

77 Water plane
Plane atop 77 Water St

Walston was flush. Shortly after I joined, they moved into their fancy new skyscraper at 77 Water Street, a few steps south of Wall. It featured an artificial stream, a padded soda dispenser shaped like a floppy-eared dog, elevators illuminated like the night sky, and a full-size sculpture of a biplane on the roof. You can see it in the opening fly-over sequence of the disappointing movie The Forgotten; there you can spot the airplane still atop 77 Water.

Walston’s cast of characters included my boss Alex, his boss and vice president Paul, and an assistant vice president, Jim. Brokerage firms contain nearly as many vice presidents as they do brokers. The wrinkle in the relationship was Jim had originally hired Paul who passed him on the corporate ladder. Nearing his 25th year with the firm, Jim became marginalized, holding down a desk but no responsibility. Upon retirement, he planned to buy a Land Rover, move to South Africa, cultivate a mustache, and live a life of alternating adventure and leisure. As the weeks ticked away, that’s all he talked about.

Lower Manhatan Financial District
Wall Street and Financial District
Walston’s third floor contained two sections: the computer room and offices occupied by Arthur Anderson overseen by a Walston executive with the musical name Glenn Miller. As systems programmer, I was the rare programmer allowed in the computer room. That drew the attention of Arthur Anderson.

It wasn’t unusual for large corporations to provide offices for their accounting firm, but it wasn’t kosher for one’s auditors to use provided offices to perform work for other companies. The rules for AA were different. As one of the accounting wonks said, saving office space didn't hurt anyone. It may have been true, but violating rules exemplified the looseness of managerial oversight.

Toad in the Hole

Walston brought in two consultants, guys who would tell a company the same common sense advice at five times the price of listening to their employees. That’s one reason I later became a consultant– companies pay to listen to you.

As far as I was concerned, this was more background noise, but one day my boss Alex called me into his office. There sat the consultants and two Arthur Anderson guys amid palpable tension. They wanted me to perform a task: write a program to scan files and ‘correct’ fields, i.e, numbers within the file.

I pointed out I didn’t do that kind of commercial programming and this was far more suitable a task for one of the Cobol programmers. No matter, they assured me, they wanted me. I should be flattered.

Who’s the analyst who designed this? I asked, not feeling the least flattered. I’ll talk with him. No, said the consultant, only you. The Anderson guys nodded while my boss frowned.

Reasonably, I protested that the Cobol programmers possessed the pension suite’s data structure templates. Without them, I had no idea what the data was. It would be like blindly machining a part while they withheld the blueprints, which could damage the data.

The Arthur Anderson guys exchanged glances. My boss started to fidget. The background noise sounded like a clanging alarm. Practiced deceivers they weren't. Something felt wonky but I didn’t know what. They didn’t quite say I had no need to know, only I needn’t be concerned.

Where did a shift of responsibility end and liability begin? Were they buying blind loyalty or blindness? A light bulb went on. I raised my last objection. What about the lack of an audit trail, I asked. Assembler language would bypass all the record and financial controls.

Of course they knew that. They went into a huddle. Moments later, my boss said coldly, “We’re done here. You’re dismissed.”

I slogged back to my desk feeling dark and dysphoric. With good reason: shortly the VP called me in. He informed me the firm would cut my salary and no longer pay my tuition. Alan, the office political toady, would replace me.

Fire and Ice

Suddenly I didn't feel so brilliant. A thunderstorm had squalled up out of the blue. A kid like me didn’t make or have a lot of money and I desperately needed my classes. It didn’t dawn on me to ask why they didn’t dismiss me. Maybe they feared what they thought I knew or wanted to keep tabs on me, but my ego suggested they kept me because Alan the toady was incompetent and incapable of doing my job. He didn’t know machine language but he knew Cobol… and probably knew where to find the questionable data templates. Meanwhile, they were slamming me for questioning orders.

My boss and his boss cold-shouldered me. They almost fired me when the payroll department screwed up and continued paying my tuition, but as was pointed out, that was their error, not mine. We were at loggerheads, but they needed me as much as I needed the job.

The VP’s secretaries treated me with surprising sympathy and kindness. I don’t know how much they knew, but one took me out to lunch and the other gave me a small gift. In the cold light of Walston, they radiated warmth.

In the outside world, Ross Perot had been tacking his way through Wall Street, taking over data processing services, a forerunner of out-sourcing. When the F.I. DuPont scandal hit, Perot stepped in and bought the firm.

I received a cagey call from EDS, the company Perot founded, asking if I’d come to work for them. EDS had a rigid stiff-necked (most said 'tight ass') reputation with a dated, regimented dress code– white shirts, narrow dark ties, grey suits, pants with cuffs, shoes with laces. They subjected potential employees and their spouses to a battery of interviews. Creative thinking was not encouraged. EDS employees liked the money but not one I knew liked the company. I politely declined.

We picked up a programmer from DuPont. Perot had arrived in NYC and put his DuPont troops through sort of a surprise dress parade. As he marched down the line of employees, he came across a girl who wore the fashion of the day– a miniskirt– and fired her on the spot. At Walston, we didn’t mind miniskirts and hired her.

Word on the Street

One day, employees awoke to a lead article by the Wall Street Journal announcing Ross Perot would take over the computing facility of Walston. Vice President Paul turned shockingly white– he hadn't heard even a whisper– but brokerage houses mint vice presidents like they print stock certificates. The company denied the story and things sort of returned to normal.

Except an odd and unsettling thing happened. One month from his 25th year and retirement, Jim, the marginalized AVP found himself called into the VP’s office. Paul, the vice president, fired him. Full retirement gone, no Land Rover, no African adventure, no life of well-earned leisure.

Another discreet call came in for me. The woman on the other end asked me to identify myself, asked if I could talk privately, then said, “Please hold for Mr. Perot.”

Despite what I've heard before and since, Ross was polite, even gracious, and I was flattered he asked me to work for him. But, as I pointed out, I attended university full-time, I wasn’t as regimented as his usual workers, I enjoyed a bachelor life, and– thinking of Perot’s cozy relationship with Richard Nixon– our politics didn’t mesh. He’d famously said he didn’t like gunslingers and lone wolves– and I was the epitome.

He said, “Son, thank you for being honest,” and wished me well. I wondered why he wanted me.

Take Two

Once again, employees learned the news not from their own company but from the WSJ: For the second time within weeks, employees woke to a Journal article confirming Perot would be taking over Walston’s computing center. Again, our shocked vice president had been left out of the loop.

When Perot dropped in to inspect the troops, he spotted the same girl in her minidress we’d hired from F.I. DuPont and again fired her on the spot. Can’t say Perot wasn't consistent.

Days later, Walston fired Vice President Paul two weeks from his 25th year– and full retirement. The firm dismissed the consultants and Arthur Anderson's office underwent a shake-up. Programmers found themselves not only locked out of the computer room, but locked out of the computers.

Except for me. A good systems programmer could run the shop without operators, without analysts, without programmers. Perot didn't trust Walston's people, which explained the recruitment calls to me.

A panicked EDS crew asked where certain files could be found. They asked if I could find backups of older versions. They asked if I knew anything about original programs and data alterations. Unsurprisingly, those hotly desired files were the same my bosses asked me to ‘correct.’ The unasked question finally arose: were they corrections or were they coverups?

I dug into the files only to learn what Arthur Anderson already knew. It appeared Walston’s proprietors had embezzled the company’s retirement fund. Now it made sense why they fired the AVP days from his 25th year. That’s why they fired the VP days from his 25th year. The money was gone, reflected in the records my bosses and Arthur Anderson (or certain employees within Anderson) desperately wanted 'corrected'. The scheme was so compartmentalized, I doubted how much any one party in my department knew, remembering my boss, Alex, claimed the instructions came from on high. "Just follow orders," he said.

I'd been lucky: What might have happened to the joker who tampered with the data? Alan had been lucky: Unable to find his assets with both hands, he'd botched the changes although he left an audit trail.

Trinity Church from Wall Street
Trinity Church framed
by Wall Street

How The Mighty Had Fallen

Perot took over Walston, folding it in with DuPont and again saving Wall Street considerable embarrassment. Two and a half years later, he lost his financial shirt and dismantled a hemorrhaging DuPont Walston. Perot arranged for Congress to give him a special late night $15-million tax break, causing an outcry of socialism for the wealthy when the bill became public knowledge.

Dark forces on Wall Street gleefully watched Perot depart, some accusing him of trickery, some suing him on the way. Whatever the truth of that matter, Walston had been rotting internally before Perot arrived.

Arthur Anderson survived with their reputation barely sullied. Indeed, Anderson and Walston’s Glenn Miller caught more flack for the Four Seasons Nursing Centers scandal than the internal decay within their own firms. It would take the Enron affair to bring down Arthur Anderson.

My services remained in demand and I moved on, still on Wall Street, starting my masters degree before joining forces with two of the earliest software entrepreneurs.

Imagination Noir

In imaginative moments, it’s easy to envision the kernel of a mystery intrigue plot. I picture a John Grisham novel, a storyteller's movie in my mind like The Firm. Had Walston’s board reacted viciously and violently, I might have found myself in a dire plot, on the run for my life with a miniskirted damsel as VPs, AVPs, and Anderson drones dropped dead around me. Excited movie audiences would gasp between mouthfuls of popcorn, women would cry, and children would whisper, “He’s so bwave.”

Maybe a dastardly plot isn't so far-fetched considering the mysterious suicide (or assassination?) of Enron executive Clifford Baxter, about to testify before Congress. But in the world of finance, what’s crooked isn’t always an actionable crime. Commit a fraud of sufficient size and business will hush it up rather than prosecute– not unless something can be gained in the guise of ‘investor confidence’.

Footnote

The case ended with a gentler tone: I commuted to Wall Street on the Staten Island Ferry. One surprisingly sunny afternoon, I spotted Paul, the ex-vice president. He said hello and sat down across from me. Once again open and pleasant, he appeared the man I’d once liked– and could come to like again.

We didn’t talk about Walston. He explained he moved with his aging mother to Keene Valley in upstate New York. Turning his back on Wall Street, this former executive now worked as a carpenter. He spoke of small town pleasures where old men sat in front of the local hardware store whittling and discoursing upon merits of lawnmowers. For the first time in decades, he felt relaxed and at peace.

That pleased me. Paul wasn’t a bad man, merely a figure caught up in the machinating machinery of Wall Street. He offered his hand and we shook warmly.

Looking back, I think his chat was sort of penance, kind of an apology without the words. That was decent, more than many people would have done. And it was enough.

Besides, I’d eventually consult for banks, institutions where further fruits of fraud lay concealed beneath a public veneer.

16 June 2013

The Digital Detective, Wall Street part 1


High Finance and Low Crimes
I learned a couple of curious things when I worked at IBM’s Wall Street Data Center. One was that my friend, Curtis Gadsen liked mayo sandwiches and fleecy-legged girls. The other was my friend Ray Parchen could be fooled because he was too good at his job as a mainframe computer operator.

IBM 360 mainframe
IBM 360 computer room
Like an old-time stoker fed the fires of furnaces and steam engines, an IBM operator stuffed the huge machines with programs and data. Very good operators could act and react instantly without thought, confident in their experience and skills, mounting discs and responding to messages as they'd done ten thousand times before, giving them no more thought than donning their underwear in the morning. The keyword was efficiency.

Unintimidated by hulking computers the public suspected were semi-sentient, Ray worked quickly and accurately, and for that reason, he held down the first shift position. For him, I wrote a silly little psychological program that worked only with the best.

Amidst weighty programs queued for the giants of Wall Street, I slipped in the prank while a dozen employees gathered outside the computer room’s glass wall, waiting for the small program to do its thing: It made discs chatter, tapes whirr, lights blink, and the data center rumble as if Colossus was taking over the world.

We watched Ray bend over the console, reading the first mundane message:
05483A Press ENTER.
Ray pressed the ENTER key. The machine responded with another message:
05483A Press ENTER hard.
A few of us watched from outside the computer room as Ray hit ENTER again. The machine came back with:
05483A Press ENTER harder.
Ray punched the ENTER key, and a couple of the girls giggled. The computer responded with:
05483A Press ENTER even harder.
Ray smacked the key hard, very hard. The machine responded with one last message;
05483I Did it occur to you I can’t tell how hard you press ENTER?
Ray looked up with a red-faced grin and spotted us chuckling. Afterwards, he joined us for a drink where we argued why the program fooled some and not others.

Of course he knew pressure couldn't be detected, but he hadn't engaged his knowledge hidden behind the wall of his expertise. I would discover this common quirk could be exploited, as Simon Templar might say, “by the ungodly.” As noted in the article about kiting, confidence men take advantage of confidence.

Over the next few days, we tried our little joke on other operators and observed this interesting fact: Only the best fell for the stupid little prank. Novice operators stopped, studied the messages, and tried to look them up.

Ray and the other top operators reacted immediately and without thinking. Self-assured of their abilities, they acted instinctively by rote.

Less experienced operators questioned everything, including themselves. We caught more than one systems engineer trying to look up the bogus message number in the reference manuals and they sometimes called for help. That spoiled the little program.

Lesson: Sometimes it’s easiest to fool the most experienced.

There’s a reason I tell this story. It leads to how I became sort of a detective, a digital Dashiel of a Continental Op.

Over the next few weeks, I'll talk about an accidental career as a investigator in a field yet to be invented, that of computer forensics. I reveled in the chase, but my career often hung in the balance under threat of firing, even blackballing. Often the only reward was termination but hey, that happens to all the best private eyes.

Background Noise

An early case exploded with little of my own involvement, or, perhaps because of my lack of involvement. The players: Walston & Co, the nations third largest brokerage house, and Arthur Anderson, the biggest of the Big Eight accounting firms until participation in the Enron scandal brought about its demise. Anderson had dirtied its manicured fingers long before Enron arrived on the scene.
Lower Manhatan Financial District
Wall Street and Financial District

Search the internet for Walston & Co and its Wikipedia entry merely reads "(Walston) was acquired by Ross Perot following pension account fraud and then merged it with Dupont, which had found itself in financial difficulties." Here's the story behind the story.

Despite the Wikipedia gloss-over, the wheels of merger with F.I. DuPont began turning before revelation of Walston’s fraud. Fifteen million in securities had vanished from DuPont’s accounts. The White House grew nervous. Wall Street threw up its collective hands, Oh woe, what to do, what to do?

A Texan rode into town, Ross Perot. He’d bulldozed through the insurance industry (an intriguing inside tale of its own) and encouraged by Felix G. Rohatyn, he made his move on Wall Street. For an initial $30 million, the impossibly old, impossibly young forty-year-old Napoleonic Perot acquired control of one of the Street’s most prestigious houses. (N.B: Regrettably, Time Magazine articles referenced herein require a subscription.)

At the time, that seemed background noise for me, a full-time employee and a full-time student, living paycheck to paycheck and barely sleeping. I couldn't guess how it would alter my career.

Trinity Church from Wall Street
Trinity Church framed
by Wall Street

Crime on the Street

In the Financial District, denizens simply call Wall Street 'the Street'. Philosophical sorts read a moral into its long, narrow confines, noting it begins at a church and ends at a river: When times get tough, in depression or desperation, one may choose salvation or suicide.

The Street fosters its own culture. On the one hand, a man’s word is his bond– multimillion dollar transactions hinge on verbal promises. On the other hand, huge regulatory holes allow brokerage houses to commit the sleight-of-hand that brought the economy to its knees ten years ago. We can’t say we weren’t forewarned, but in the heady days of deregulation, greed and giddiness carried the day. We never seem to learn industries cannot police themselves.

One of the first observations of the Street is that the market's moody– it reacts, even overreacts to political news of the day. But I stumbled upon other emotions, which included surprisingly little hanky-panky. A few notes from the era:
Francine Gottfried
Miss Francine Gottfried

  • Wall Street can be a mad marketplace when the economy's in a lull. Late one summer, a sweet keypuncher named Francine Gottfried caused a sensation with the mostly male lunch crowd as her 43-23-37 figure bounced down the steps of Chemical Bank & Trust. For a few days, a sort of silly mating season reigned and then, as so often happens, her 15(0) minutes of fame were up.

  • Once, as I strolled with my boss down the street, we encountered a beggerman squatting on his flattened cardboard. My boss stopped and chatted with this derelict before moving on. I didn't say anything but he confessed: The homeless man once worked as a broker, what Wall Street called an account executive or AE. When my boss and the man’s wife carried on an affair (and subsequently married), this man– the husband– collapsed in despair. He now lived– literally– on the Street.

  • During the 'Hard Hat Riots' (then called the Wall Street Riots), I picked my way through roving construction workers from the rising World Trade Center left by police to run wild, bashing kids protesting the war in Vietnam. On my way to school as police idled, I helped a girl and her boyfriend bloodied by a musclebound thug. It was no contest: the canyon-like Street corralled the teens, leaving them easy pickings by hardhats with pipes and wrenches. That wasn’t one of Wall Street’s prouder moments. Hard-hats went on to attack the city's mayor's office, smashing the face of one of his aides.
The Young and Restless

A precocious if unaware teen, I worked as an IBM shift supervisor in their Wall Street Data Center, Number 11 Broadway. I had the greatest boss, a pretty blonde named Judy Kane. We boys loved her; the girls– not so much.

And I loved software, the machine-level bits and bytes and Boolean stuff. A teenage mad scientist, I found computers a giant puzzle, one I learned to solve and control. It was a battle of wills, me versus machine, immersive therapy for a broken heart (but that's another story). I'd come to know these Daedalus creatures like a mother knows her own children; better even, I'd learned their DNA.

A sales rep, Herb Whiteman, discovered I spent weekends camped in the computer room, teaching myself to program the huge monsters, then catnapping on the couch as the computers blinked and toiled, compiling my routines. Herb asked if I’d be interested in joining a three-man team that would change Wall Street and put video terminals on broker’s desks. Argus Research, the parent company, would double my IBM salary.

The company gave us secretaries and an entire floor of offices, no expense spared. Unfortunately Argus, in the business of prognostication, shortly deduced the economy teetered on the brink of recession and pulled the plug. Not long after Walston & Company hired me as their fancy-pants systems programmer offering tuition reimbursement as part of my hiring package. Me! I was just a kid from nowhere.

Thus began my introduction to low crimes and high finance.

Stay tuned for more next week, Wall Street's big boys and big crimes.

21 November 2011

Criminals and Protesters


Jan Grape What's all the big deal about the Occupy Wall Street protesters? What do they want? Do they expect the rich to give them part of their money? Take from the rich and give to the poor, really? Most of us are happy when someone makes a mint. We don't want their money. Especially the money they earned by working for it. Are they asking for a hand-out? After hearing some congressmen and other people who say they are in the 1% tell the protesters on national television to "get a job." I realize they have no clue. They have erroneously decided most of these protesters are homeless/hippie/college-age or teens who just want to protest.

Maybe so, and since I'm not out in the midst of these folks, I can't say for sure. I've read and heard that stealing food, leaving horrible unsanitary areas and sexual assaults have taken place in the tent cities, and that's just all wrong. But seeing the 84 year old woman who got pepper-sprayed in the face and the marine who got the skull fracture and the peaceful sitting protesters out in CA getting pepper sprayed in the face, by police who've been ordered to disband these peaceful demonstrations. I have a feeling there are a lot of people who feel that something is terribly wrong on Wall Street and in congress. I understand cities already in debt racking up even more debt to try and keep things peaceful. The police are given orders even though they don't always agree. Yet some policemen get totally out of hand. I saw and even personally know some college students who've been protesting, I have read about teachers, police officer, military personnel, people out of work for months, union workers, and even plain ordinary folks joining the protest. Tonight many artists and musicians are joining in with the LA protesters after the AMA awards.

Most of the protesters out there are trying to make Wall Street fund managers and politicians wake up and do what needs to be done to fix some grievous wrongs. However, I don't hold out much hope they will.

The fact that banking and financial institutions were bailed-out with taxpayer money, then the boards of those institutions gave themselves and most of their top management people huge bonuses. When called upon to explain, these corporate Greedy-Gus CEOs never explained. Not one of them has ever been sent to jail for malfeasance or mismanagement of funds or even called on the carpet. Not one of them ever paid back any bail-out monies that I know about or have heard.

Seems as if I recall a huge outcry when the bail-outs were given to the large auto companies but I've heard more than one of these companies has paid money back to the US Government. The banking and brokerage institutions who haven't paid any money back are criminals. To me that's the same as defaulting on a loan. These are same characters got our economy into this mess in the first place.

Okay, having said that, let me digress to why I write crime fiction. Throughout many years of living, I've seen, read and heard of many, many miscarriages of justice. In fact, a recent case happened here in Austin just last month. A man convicted of killing his wife twenty-five years ago was found to be totally innocent. He spent twenty-five years in prison knowing a killer was out there someplace, having gotten away with murder. The man was recently released but his life has been destroyed and his daughter's life destroyed because the man was falsely convicted of killing her mother. Imagine the sorrow his own mother and father went through. The only good part of the story is that last week they finally arrested the person who DNA shows is alledged to be the real killer. It's believed that he killed another woman two years after the first initial murder in the same manner.

In my stories and books the criminal is somehow caught and punished. He or she is put in jail or is killed The criminal get his "just desserts." Harsh justice? I think not. In real life there seldom is satisfaction when a crime is committed. Sometimes the criminal is caught and put on trial, but gets off by a technical error. or an inept prosecutor and inept jury. There is no justice. No satisfaction. Sometimes in one of my stories, I write the criminal gets a psychological punishment...having to live the rest of their life thinking of what they have done.

Real life is full of these huge miscarriages of justice. This echoes back to Dixon's blog the other day. Happy endings. People who read crime fiction want the bad guys/gals caught and punished. They want a criminal to suffer for their crimes. Writers of crime fiction usually write a happy ending. Maybe not every time but enough times to keep readers coming back. This is why I think crime fiction is so popular. If you keep track of the best sellers, the list generally has many books of mystery or crime fiction.

The Occupy Wall-Street protesters just want the criminals punished and these huge companies to STOP giving away money that was not really theirs to begin with, it came from the people. Why weren't those bonuses used to create news jobs? Why not restore a little faith in our society? Why allow criminals to get away with their crimes?

We writers of crime fiction must continue seeking truth and justice and let the bad guys be punished. If all else fails we may have to join the protesters.