Authors: Ike Hamill
Next, Ed found several emails from people seeking jobs. The first had a résumé attached. Ed opened it with a big grin. He loved this part. This was the part where he got to meet someone for the very first time. His smile faded immediately. The document from was from Yule Greenwich—great name—and the skills and background were impressive. Unfortunately, the résumé had been cleaned up by a résumé doctor—Sarah Burns, if Ed was correct. An engineer’s résumé was usually a grammar nightmare. Spell-check would make sure all the words were real, but it wouldn’t turn an engineer’s idea of a sentence into actual, readable English. A lot of engineers eventually got the clue that their résumé needed help. If you gave Sarah a couple-hundred bucks, she would fix up all your mistakes. Ed hated rewritten résumés. They didn’t have any personality. He couldn’t see how Yule’s brain worked now that his words had been cleaned up by Sarah. Ed sent back an email asking Yule for a meeting. He would defer judgement until then.
The next document was pure, uncut, poorly-written gibberish. It was from a kid—Francis something—who had graduated three years earlier. Ed didn’t usually work with people that young. Under “Objective,” the kid wrote, “Working for a large Software Developer in the field of Artificial Intelligence or operating system development.” Ed put his finger on the words glowing on his laptop screen.
What a beautiful sentence, Ed thought.
He’s so frustrated, and so misguided.
Ed looked back at the kid’s education and imagined young Francis working hard to finish his Computer Engineering at a state college. Francis had clearly wanted to jump in and work with the latest and greatest advances in machine learning and AI, but found himself with a focus on OS and microprocessor system design. Who had railroaded young Francis into operating system work, when that drudgery would clearly make him crazy? Ed flipped windows and looked up the professors who taught at Francis’s alma mater. He found the man—Dr. Greg Lancaster ran the department. Lancaster was a frustrated kernel developer who held that today’s operating system approach was too monolithic to carry computers forward. That was the professor who had ruined Francis’s chance to work on his passion. Ed was sure of it.
An alarm went off on Ed’s machine and he quickly shut it and tucked it back in his bag.
No tech at the table—that was the first rule of their group. Otherwise, they would just be seven geeks sitting around eating sushi and pouring over code.
Seconds after Ed put his laptop away, Maco walked in. He took the seat in the far corner and angled his chair towards the door.
“Hey, Maco,” Ed said.
“Hey.”
“What’s new?”
“Still working that DOD crap,” Maco said.
“I thought you liked that work,” Ed said.
“I like the work. I don’t like having to go in there every day. They have key cards, RFID everywhere, metal detectors, cameras up the ass, microphones, and probably brain-scanners.”
“And they don’t let you work remotely because of the protocols,” Ed finished.
“Exactly. Not like I couldn’t though. I could reverse port-forward over four-four-three through a spoofed shopping site and they would think I was buying shoes all day. Meanwhile I could sniff all of their traffic from my couch if I wanted,” Maco said.
“But you would never do that,” Ed said.
“Not in a million years.” Maco smiled—a rare sight.
“How much time you have left over there?” Ed asked.
“I don’t know. Depends on the team. Maybe a month?”
“And then are you up for something new?” Ed asked.
“Absolutely,” Maco said. “Get me some sweet banking gig or something. Those guys are focused on what matters.”
“I’ll keep my eyes open. You need this to be back to back with your current job?”
Dale Stewart came in and set his bag down on an empty chair next to Ed. He pulled out the chair next to that.
“Next day,” Maco said. Maco didn’t like any downtime between jobs.
“Can do,” Ed said. “I’ll shoot you an email with the particulars.”
“PGP that shit,” Maco said.
“I know. I know. All unencrypted email goes to the spam folder,” Ed said.
Dale interrupted. “I thought we said no work talk at lunch. Didn’t we say that?”
“We’re done,” Ed said.
“Yeah, keep it clean, Ed,” Maco said. His smile was gone.
“You brought it up,” Ed said, laughing.
“I spoke in generalities. You got specific. There’s a big difference,” Maco said.
Jim, Lister, and Kevin filed in through the door. Kevin shut it behind him and then moved to the head of the table. He set a black felt bag down on the table and unrolled it. The bag was actually a series of pouches. Without comment, each person muted their phone and stuck it into one of the pouches. When everyone had contributed a phone, Kevin rolled the bag up and set it at the end of the table.
“So Harry’s not coming?” Jim asked.
“Nope,” Ed said.
The men sat down, spacing themselves around the big table. As everyone settled in, the door slid open and a waitress appeared with a tray of tea. She moved around them silently, placing cups and filling them.
“He’s on vacation,” Kevin said.
“Who?”
“Harry,” Ed said.
“Harry doesn’t take vacation,” Jim said.
“His grandfather died,” Maco said. “He didn’t want everyone to know.”
“Good thing you mentioned it then,” Ed said.
“He should have thought of that before he sent his email unencrypted,” Maco said.
“Are you spying on Harry?” Kevin asked. All eyes turned to Maco. Anyone at the table could pretty easily spy on the others, if they had the desire, but even amongst the socially-backward it was known to be a rude thing to do.
“No. I was kidding,” Maco said. “His sister sent me the obit. I didn’t even know it was a secret.”
“I think the point is, he’s not ready for condolences,” Ed said. “So let us all presume that he’s on vacation, okay?”
The people around the table nodded.
The waitress handed out little paper copies of the menu with pencils. A few of the men were done filling out their order before she had left the room. Dale held four fingers on the paper as placeholders as he tried to decide.
“You guys hear about what Harry did with o-Glax?” Kevin asked.
“No,” Jim said.
“You still play that?” Maco asked.
“It’s still the best co-op space commerce MMO,” Dale said.
“You’ll like this, Maco, check it out. The company that wrote o-Glax was going to retire the servers last week. They weren’t making enough money on expansion packs to keep the server farm up.”
“Because the original game was so compelling,” Jim said.
“Exactly. Who needs expansion packs when it was so perfect out of the box?” Kevin asked. “Anyway, they had like a thousand guys with like a million hours of game time between them. Nobody wanted to see it get shut down, but the company refused to listen. And they wouldn’t open source anything because they said it was their core libraries at the heart of the thing.
“So Harry wrote them and asked how much they needed to keep the server up. He figured it was on a shared farm somewhere and maybe everyone could chip in for the rack. Turns out the whole thing was being run out of their office, and the company was literally shutting its doors. So this thing was going to be powered down and scrapped.”
The waitress came back and collected the order slips.
“Would anyone like anything to drink with lunch?” she asked.
“No.”
“No.”
“No, thanks.”
“Tea’s fine.”
“No, thank you.”
“Water?”
Kevin resumed his story when she left. “Anyway, there was no hope. Harry starts poking around on his drive and he finds out that the user data is mirrored on the client. It’s not used for decisioning, but just for local display or something.”
“So you don’t need the server,” Maco said.
“Not for the user data, but the client can make decisions on its own,” Kevin said.
“I meant you don’t need its data store.”
“Exactly,” Kevin said. “So Harry starts looking at the packets. He asked me some basic questions about this and that—how the headers, time codes, encryption, and everything would work.”
“You haven’t done that stuff in years,” Ed said.
“Exactly, that’s the point,” Kevin said. “Last time I was working on games was about seven years ago, but that’s when this game was written. I told him to send me the packets, but he said he was simply poking around. He couldn’t get a debugger working on his machine, so he was working on the packets by hand. He thought about what information should be passed up to the server and then collected the packets. It was the chat packets that broke it for him.”
The door slid open and a different waiter came in with two pitchers of water and a stack of glasses. He set the pitchers down and began distributing the glasses. Maco flipped his glass upside-down before the waiter could pour and several other of the guys did the same.
“Can I get water without lemon?” Lister asked. The waiter nodded and stopped before pouring the glass. The waiter looked around at the flipped glasses and set the pitcher back down on the table. He backed out of the room.
“The chat packets were his Rosetta stone because he knew what the payload should be?” Jim asked.
“Right,” Kevin said. “He would type out a message and then send it to another player. Meanwhile, he has another machine sniffing the packets. Then, he changed one letter and sent it again. The whole payload changed because it was salted with the timecode, but he stripped that out and then found that the payload was XORed with the same string of bytes.”
“They used the same key every time?” Maco asked.
“Yeah, not a great design. Anyway, Harry didn’t recognize the string but he searched his drive and found out it was same as the binary blob of the executable,” Kevin said.
“That’s a riot,” Jim said.
“So, two nights later, he had every packet mapped out. It took him about a week to rewrite the whole server logic and stand it up,” Kevin said.
“Awesome,” Maco said.
“What about the data though?” Jim asked.
“It’s mirrored on the cilents, right?” Maco asked.
“Yeah, but why would they send their data to the server? Wouldn’t it be the other way around?”
“Normally, yes,” Kevin said. “Normally, the server keeps the master copy of the player data so nobody can game the system. Harry wrote a little utility that did two things—it pointed the client over to his new server, and it sent up all the player data. He didn’t tell anyone that he was sending data up, because he didn’t want anyone trying to cheat.”
“Until someone notices that this helpful little app is uploading way too much data,” Maco said. “No way I’d run his helper until I tested in a sandbox.”
“And that was the problem,” Kevin said. “About half the players were just as paranoid as you. They freaked out when they saw that his app was trying to access their drive. He had to apologize to everyone on the forum and open his source. Then everyone found out how the user data was stored and everyone started jacking up their stats. It was a total cluster.”
“Classic,” Jim said.
“What did he do?” Ed asked.
“Nothing,” Kevin said. “That’s where it stands. They have a working clone of the server, but they either have to start again with their characters, or they have to let everyone cheat. Someone who worked for the company said they could get a mirror of the player data, but Harry’s still waiting to hear.”
“He’ll be lucky if he doesn’t get sued,” Maco said.
“It’s clean-room reverse engineering,” Jim said. “He should be okay.”
The waiter returned and set a glass of water in front of Lister. He didn’t object, but Lister leaned down and eyeballed the glass.
“Not unless he rewrites the client, too,” Ed said. “You can’t modify their client to talk to your server without opening yourself up to liability.”
“He’s working on it,” Kevin said. “He has the client about halfway done. It works a lot better than the original, too. It’s all useless without the data though.”
“People will make new data,” Maco said.
“If that’s the choice, then people will move on to a new platform,” Jim said. “I have history with that game that I’m not going to repeat.”
“If they’re running out of their own office, they probably have off-the-shelf firewalls plugged in to unpatched servers,” Maco said. “Someone could float in there and borrow all the data while Harry is out of town. He would come back to a solved problem. Might be nice for him.”
“Make sure the data stays underground until the company is fully closed. Small businesses can get bought at the last minute, and a bigger company might be vindictive about someone waving around the data they recently purchased,” Ed said.
“Yeah, we’ll see,” Maco said.
“What’s wrong with your water, Lister?” Ed asked.
Lister was holding the glass to his nose and sniffing.
“I think they fished the lemon out, instead of pouring only water,” Lister said.
“Are you allergic to citrus?” Jim asked.
“No, but I don’t think they wash the lemons properly before they cut them up and drop them in the water. I read something about it,” Lister said.
“You’re about to eat raw fish from these people and you’re questioning their hygiene?” Maco asked.
“Raw fish is prepared by the chefs. They know the dangers of handling raw foods. The waiters and waitresses cut up the lemons. They’re the ones who handle money, collect napkins, pick up dirty plates. Who knows what’s on their hands, or how often they wash them. Then they cut up lemons and put them in the water? There could be anything floating in there,” Lister said.
Dale had just finished pouring himself a glass from the pitcher. When Lister finished his diatribe, Dale pushed the water away. Lister took a tiny sip of his own water and tasted it carefully before swallowing.
“I heard there’s going to be a downturn in the market. We’ll all be working as waiters by this time next year,” Maco said.
Lister set his water down. All eyes turned to Ed.