Seconds before they had listened in horror as Grandad apparently walked out after he had rejected the deal Ethan had set up.
The trio scanned the lift lobby of the building and the street outside.
"Where is he?" Ethan asked his equally perplexed friends.
As the lift doors opened on the 35th floor, Ethan and Sam looked around. The office foyer was empty. "Where is he?" Ethan repeated.
Sam shook his head, bemused. "There must be another way out. But Jenny will see him if ..."
He stopped as a door opened and Grandad emerged. He smiled when he saw them.
"What have you done?" Ethan began ... but Mr So was following his grandad out of the office.
Sam grabbed Ethan's arm and dragged him down behind a sofa. From their prone position, they heard Grandad say, "I'll see myself out", and the sound of a door closing.
Ethan and Sam remained frozen where they lay until a head loomed over the back of the sofa.
"What have I done?" Grandad asked them. "I've got a far better deal than you offered him."
Ethan peered up at him. "You got the money?"
"And the right to buy back his share of the business," Grandad replied. "So leave the negotiations to me in future, ok?"
Sam and Ethan looked at each other for a moment then laughed.
Over the following weeks, Ethan, Sam and Jenny finished not only their end-of-term exams, but also the coding for the shamefacebook site. Now, with the launch set for December 9, they had little time to test whether it worked as it was supposed to.
In the spacious study of his and Jenny's home, Sam looked at Ethan, slumped over his laptop gently snoring.
"He's tired?" Jenny complained bitterly. "He's the one that set this ridiculous deadline."
"Well, we can all have a rest now the capacity tests are running," said Sam, shaking his friend awake.
"Huh?" murmured Ethan, lifting his head and squinting blearily.
"Go home," Sam told him. "There's nothing we can do tomorrow. Or Saturday."
"But ..." Ethan began.
"Up," Jenny told him. "Go and annoy somebody else for 48 hours."
That same evening, Maya, Ethan's classmate and the unrequited object of his affections, was at home thinking.
What have I got to lose, she asked herself. She knew Ethan must, sort of, like her - he'd already invited her out on a date in his clod-hopping, I-know-you're-going-to-say-no way. But then she identified with this approach, and she identified with him. They were both outsiders at their school - albeit for very different reasons - and neither was prepared to bend themselves out of shape to fit in.
Maya also knew that her approach - especially with anyone she liked - could be, at best, described as "amiably insulting". Why, for once, didn't she just try some straight-talking?
Friday morning. Ethan sat alone in the empty classroom drumming his fingers on the lid of his closed laptop. He had been single-minded for so long he was now at a loss what to do as the programme running on Jenny's computer busied itself generating phantom users to test the scalability of the website.
He felt a shove in his back and turned to see Maya standing over him clutching a small envelope. "Two tickets for the premiere of the new Batman film," she told him, then shrugged. "I tried everybody else but ... you wanna come?"
Inside she winced - so much for straight-talking. What have I got to lose, she asked herself again, bitterly - besides my dignity and my will to live, that is.
Ethan, however, looked up at her and smiled. "I'd love to," he said.
Was Ethan ever coming out of that bathroom, Grandad wondered.
Inside, Ethan looked in the mirror and, still incredulous, told himself, "I, Ethan Tai Sui-man, am really going on a date with Maya Robertson". And, if this worked out, they could - steady now - be going to the end-of-term party together.
His phone rang and he looked at the caller ID and sighed. "Hi, Jenny, I'm just ... What? But it must be able to handle more users than that ... Yes, I know scalability can be an issue, but ..." He looked in the mirror again, now feeling less of a superhero. "Can I call you back tomorrow, it's just ... Yes, I know I set the launch date, but ... Ok, half an hour."
As she sat in the cha chaan teng waiting for Ethan, Maya smiled and thought maybe she who dares sometimes does win. Her phone buzzed, at the arrival of a text: "Sry. Meet at cinema instead? Call me when there. Pls."
Ethan glanced up from the laptop and across his bedroom to where his mobile lay on the shelf. As soon as Maya rang, he'd leave. Finding this bug could wait - whatever Jenny said. But, as he turned back to his computer, unnoticed, the one bar on his ancient phone's battery indicator faded and died.
Maya had skulked and fumed in a corner of the cinema foyer as the crowds flocked in. Now, as she finally offered her ticket to the usher, she prayed the baddies got a real beating in this movie.
Lost in his search for the bug in the code, it wasn't until an hour later that Ethan glanced at the time. Panic washed over him as he realised why no ring tone had alerted him.
Plugging in his dead phone, he discovered he had missed three calls and two messages - all from Maya. "Forget it!" the last text read.
The lights inside the cinema were dimming as Gilbert Chan leaned over from the row behind and gestured at the empty seat. "Hi Maya. Someone not turn up?"
That creep Chan was the last person she wanted to talk - well, right now, the second last one. She slid lower and tried to ignore him.
There was no way the usher was letting someone without a ticket - and especially someone as sweaty and crazed-looking as Ethan - into the premiere.
Of course, there had been no answer when Ethan had tried calling Maya, and now all he could do was pound the pavement and wait.
Finally, the babbling audience spilled out onto the street. As he scanned the crowd, Ethan felt a tap on his shoulder. It was Gilbert Chan. "You should have seen it, man, it was awesome. And Maya loved it."
Typical Chan, always there to twist the knife.
"Where is she?" Ethan demanded, grabbing his arm.
"Let me think." Gilbert waited until the taxi behind Ethan pulled away. "There," he said, pointing.
Ethan turned, just in time to see the tail lights of the vehicle disappear around the corner.
To be continued next week