‘Maybe they’re just chatting.’ I tried not to sound concerned for Deelie.
Jenna whispered occasionally into George’s ear during the speech and then clapped, watching the room, when George took the platform.
‘I just want to add that Fred actually won his charity run.’ George picked up after James’ speech. ‘So, congratulations again, Fred. Right, I don’t know about you but I’m pretty drunk so I won’t keep you long.’ He cleared his throat over laughter and received envelopes handed up from below the platform. ‘How much did you raise Fred?... Two thousand pounds? That’s incredible. As James said there’re more details on the website and taking part in events is really what it’s all about so do check it out... Right, drum roll please? The prize for the best female runner goes to...’ Vocal drum rolls accompanied his opening the envelope, ‘Vivienne Tyler. Come on up Viv.’ It was easy to spot the tall lean woman with short blond hair making her way to the platform. She always wore little more than a sports bikini on the club runs and broke ahead of everyone else with effortless rhythmic movement.
‘Vivienne is taking part in a triathlon this month so we wish her luck with that.’ George handed down a bottle of champagne. ‘How’s the training going?’ George asked her. She nodded with a thumbs up. ‘Viv gets up at six in the morning to go swimming before work,’ clapping came again as she held up the bottle on her way back, ‘Put the lot of us to shame. Right, the best male runner of this season...’ He looked about, waiting for attention, ‘Goes to... Fred Thompson. No surprise there. It’s your night Fred,’ he said handing over the second bottle. ‘You doing any marathons this year?... Still recovering? That’s fair enough. Right, last one. This is the exciting one. The one you all have a chance at. The most improved runner of this season is...’ He held out the card, ‘Delia Harrow!’
Deelie screamed as cheers erupted and then moved into the space made for her towards the stage. ‘Deelie, see you’re making it all the way to the big tree without dropping anything these days. Well done,’ George said.
She took hold of the wrapped gift and her thank you was picked up over the microphone.
‘What did you get?’ Alex asked when she returned.
‘I don’t know,’ She tore at the wrapping, ‘What is this?’
‘It’s an arm pocket.’ Alex took it out of the box, ‘You put things in it when you’re running,’ she tried to hold it the right way up, ‘like your keys I suppose. See, it straps to your arm,’ she held it against Deelie’s arm and then lifted out a clip and a water bottle, ‘then you attach this clip and it will carry your water.’
‘Is it a joke?’ Deelie asked.
‘It’s a really personal gift, Deels. You always carry a water bottle, don’t you?’
‘As always, we’d like to thank everyone for making this club great,’ George said, in a moment of seriousness. ‘Hope to see you all on the track over the coming year. Events will be posted on the website and... ’ He raised his voice as the music started. ‘The next social will be in autumn. Cheers everyone.’ He handed the microphone back to the D.J.
Alex and I watched as Deelie and George met through the crowd. She showed him her gift. He seemed to explain it the same way Alex did and fixed the pocket to her arm. He put an arm around her when she leaned up to kiss his cheek.
‘Champagne,’ George commanded when they reached us. ‘I know where there’s an extra bottle.’
We lined up more drinks for the end of the night and I threw them back until suddenly I could see the docks, life-size and looming. I looked at my watch. It was 1 a.m. The night was out of time and there were only seven hours before BelOpt went live. ‘Excuse me,’ I slurred. Holding a hand over my mouth, I pushed my way outside and met with a breeze circling the boat that forced air into my lungs. ‘You’re breathing. See, you’re breathing,’ I said to myself as I found my way to the same spot as before. I saw the path that would lead me back to the city slowly creep towards us and leaned over the deck to watch the waves replace each other.
My memory of getting home and into bed was disturbingly vague. I tried to piece it together after a restless sleep while I resurrected myself for work – pulling on the nearest clothes – the same trousers from the night before and barely able apply makeup or brush my hair. I bought a cup of coffee before the commute and fought to keep my eyes open on the tube in case I fell asleep. I realised when I leaned into the florescent light of my screen with my head pounding that I was still drunk.
‘Hey, you’re in. How are we?’ Boris’s voice drilled into my head.
‘Don’t ask,’ I said trying not to slur my words.
‘BelOpt pricing kicking in shortly?’
‘8 a.m.’
‘Okay,’ he said, ‘I’ll come back in a few minutes.’
I sat staring at the empty terminal, waiting for the feed to spring into life. I could actually be fired if things went wrong. I tried to imagine how I would handle it – what could I say? It wouldn’t just be due to a lack of experience or their bad management this time. It would be because I had seriously dropped the ball.
Boris came back and we watched as the BelOpt prices started to spill down the terminal. He grabbed the mouse and clicked on a strategy market to access its graphs.
‘Okay,’ he said. ‘This all looks good. I’ll check back again in a minute.’
He left me alone, unsure if I was swaying. I wondered if he could smell the alcohol. My haze was disturbed by a beeping. I peered in to my screen trying to deal with the piercing light and read the message. My one-to-one with Jerome Ross was in five minutes.
I made it to the toilets before I threw up and then limply sat back, crumpling like a leaf next to the white bowl. How had I got myself into this mess? I held out a hand. It was shaking. ‘Shit,’ I whispered. Should I wash my face? Get some more coffee? Was there any point?
I stepped back out to the relative calm of the floor. I wished I could be like everyone else and hide in my cube all day.
‘Fuck!’ Boris shouted from his cube and the sound hit me like a bullet, stopping me in my tracks. I watched Boris jump up and come down the aisle. My stomach twisted in pain as if I was really sick, not just hung-over. He turned into Cameron’s row. I reached my desk and typed in the keys for Cameron’s feed.
Warsaw Pricing Down
‘Fuck. It's fucking crashed.’ Boris was saying as I arrived behind them.
‘Shit,’ I whispered.
‘You muppet,’ Boris said to Cameron. ‘Give me the keyboard.’ Boris started up the feed again. ‘There, okay, it's starting. Checking the logs... looks like it was a SegV. It could happen any time,’ he said desperately. ‘Cameron, do you have any idea what this could be caused by?’
‘I’m not sure,’ Cameron said, hugging himself.
‘Didn’t Sam help you?’
‘Yes.’
‘Sam,’ Boris called, ‘get over here. I want you to fix this code now and I want the fix on production in the next half hour.’
‘I can probably pull up the code,’ Cameron suggested.
‘You've done enough mate. Just step away from the computer. I'm going to spend the rest of the afternoon now explaining another mess to the US.’
‘Go fuck yourself.’ Sam had arrived.
‘Pardon me, mate. What did you just say to me?’
‘I said go fuck yourself. This is your mess. Not Cameron’s or mine.’
‘You are in big trouble, mate. I’ve had enough of your attitude.’
‘You've had enough of my attitude? We're in this position because of your lack of balls. You should be standing up to Stern, not trying to cover up this charade, you management gimp!’
‘Sam.’ I put a hand on his shoulder as keyboard tapping died around us.
‘I'm going to kill him.’ Sam buried his face in his hands.
‘Is there a problem here?’ Felix broke into our circle with Jerome Ross behind him, opening up his camera.
I snapped my hand away from Sam’s shoulder.
<
br /> ‘Someone tell me what is going on now.’ Felix looked at Boris.
‘Warsaw’s crashed. Looks like it’s overwriting some illegal piece of memory,’ Boris said.
We all looked dumbly at Felix, waiting for his reaction. Jerome Ross took a side step to get a better angle.
‘Well, what’s the problem?’ Felix demanded from Cameron.
‘Em... I don’t, well I don’t know,’ Cameron stuttered.
‘It is Cameron’s first feed as a programmer.’ Boris defended him. ‘It could be something subtle, memory leaks are like that.’ He looked at Sam as if he wanted back up. But Sam still had a hand over his face. ‘I mean, Sam did the code review and obviously didn’t notice anything,’ Boris continued, ‘But I’ve managed to restart the feed again so at least ‒’
Sam launched at Boris punching the side of his face. I yelped as Boris fell back against a chair and then stumbled to the ground.
‘You should be fucking fired,’ Sam spat after him.
‘Get security,’ Felix said over his shoulder and then lifted Sam back by the collar.
‘Get the fuck off me,’ Sam sprung away from Felix and turned to face him, ‘This department is a joke.’ He pointed at the floor. ‘And you’re responsible for it.’
I cupped my mouth watching Felix puff out his chest, looking down at Sam.
‘I have never come across such a bunch of incompetent clowns,’ Sam continued, ‘and you’re the biggest clown of all, mate.’
‘Do you want to be sued as well as fired?’ Felix barked.
Jerome Ross’s camera was tilted limply, away from his face and it never swung around to see security reach the top of the stairs.
Chapter Eleven
Saturday afternoon was quiet. But not the same sort of quiet that lasted on the floor for the rest of Friday; a loud quiet, because Sam had exploded with the same frustration we all felt and now he wasn’t coming back. Saturday was quiet too because I was the only one in the office. I tried to pay attention to the updates about the Data Centre progress that flashed by the screen but my mind kept going over the events that followed Sam’s dismissal. When Jerome Ross found his voice again, he called us ‘folks’ and asked us to get back to work. Felix disappeared to his office for the rest of the day and management and security came and went on the twentieth floor like bees in a hive. All other business went on hold. Including my 5-Minute Snap interview.
Finally the phone rang, justifying my weekend supervision. I straightened up in my chair before answering.
One of the discs had gone down during the move. It wasn’t unexpected. And I was happy to help out with a problem that wasn’t caused by me.
‘We’ll need you to transfer the feeds to a temporary server while this is being fixed,’ Gary said, ‘Could be down for a while.’
I logged in and went about rebuilding our feeds in the affected cluster. I handled my own feeds last. The compiler did its job, whisking through each file, to build the executable. BelOpt finished and I copied it over to the temporary server. METX took longer. Once complete, I ran a command to list its contributing files, to make sure the executable was built with the correct version of Utils.cpp – which contained my last-minute bug fix from the day of the METX delays. The version was correct, but just to double-check I also retrieved a history of all Utils.cpp version numbers.
‘What the...’ My voice trailed, frowning at the list. The last one was mine alright. But there was an earlier version that should not have been there at all. It didn’t even have my name against it.
Boris Briggs version 6.05 2nd Feb
My mouth went dry as my mind raced ahead to calculate what this could mean. I ran a comparison between my version of the file and Boris’ version. The comparison tool only found one difference. I scrolled down to the blinking line of code and thought back to my code review with Boris. We had talked about it over email, before I flew home for a long weekend and when I got back he had updated the METX site with his approval... I stared at the screen. My version of the code used a binary search in the ISIN Generator. Boris’ version used standard find. Boris had made the coding error that caused the delays on the morning of go-live. I jumped when the phone rang again. Networks were ready for my freshly generated feeds and happy for me to leave after that. I rolled out the feeds on to the temporary server and after staying to make sure data was being processed correctly, I left the office.
When I returned home it was like going somewhere new. What I had just found out seemed to change everything. I pulled on my running gear and bolted out the door towards the park. Luckily the club run was long over. I was in no mood to be sociable. I pushed myself for the first ten minutes, focussing on getting my lungs pumping. Then I slowed down, trying to keep the pace steady. I’d been totally shafted. That little shit, Boris. Did he do it on purpose? No, the idiot doesn’t know what he’s doing. Besides, he didn’t cover his tracks. I came out of the park and slowed to check for traffic. I’d been so angry with myself for these last few months, I realised, feeling the weight of it beginning to lift. For so long I’d been thinking everything was my fault. I sped up again on the path. My plans had been totally derailed – I’d lost a good project – and the opportunity to move into Quants. I’d even been thinking about leaving the industry. I was running on anger through the second park into the final stretch back towards the gates. My head was full of arguments with Boris. His denial. His surprise that I found out. His ignorance of the whole thing?... I still couldn’t figure out how things went so badly wrong, but I did know one thing; it all started with that bug.
I walked home holding a stitch in my side but I still wanted to run.
My paintings and family photos were lying on the living floor as usual. Why aren’t they up yet, I thought, annoyed. Where’s my drill? I looked around as if it was the drill’s fault and spotted it, still in its box, in the corner of the kitchen.
You never know what you might find behind a wall. Twigs, rock, wood. As I tunnelled through my anger, somewhere in between crooked measurements, Polyfilla and wall dust, a plan came to mind.
On Monday morning I approached Boris’s cube quietly and deliberately made him jump. ‘Can we talk?’
‘Oh! You’re in early for a non-rollout day, Orla.’
‘Yeah. Coffee?’
We sat opposite each other over the damp, freshly-wiped canteen table. Bunting for the Data Centre Opening covered the walls and extra glasses were already laid out by the kitchen doors, for the reception later on. I wasn’t going to go. Our eyes met. His usual grin was replaced with nervous blinking but his laughter lines were deep like a forced smile on an unhappy clown. Despite my best efforts to keep my body language neutral, I immediately leaned forward, pressing my fists into my cheeks.
‘So, the whole disk-down incident on Saturday. I had to rebuild a few feeds and mount them on a backup server.’
‘Yes, I heard. But the transition seems to have gone smoothly otherwise.’
‘When I was rebuilding METX I checked the history of Utils.cpp. Just to make sure I definitely had the version with my fix. Noticed something funny though. There was a version of the code, checked in before my last one. It was checked in by you.’
I paused to let him digest the information and looked for traces of guilt.
‘Er... I don’t remember making any changes to your code. But, I suppose I might have around the time I took on METX for you when you went away.’
‘Think about it. What might you have changed?’
‘I don’t know, Orls, to be honest. I have to do a lot of things as team leader. Perhaps I found a bug in your code and fixed it.’
‘Boris, just shut up you idiot.’
‘Orla, that is out of line.’
‘Why did you check-in my code without talking to me about it? That means I rolled out code without knowing exactly what was there. Yes, I handed my project over to you but you were only supposed to do the code review.’ I smacked the table.
‘Look, Orla, I�
�m going to have to stop you right there. You’re being very emotional and unprofessional.’
I opened up a sheet of paper and pushed it in front of him. His hands were shaking as he blinked over the page.
‘The results of a diff between my file and yours. Look at the change you checked in. You replaced binary search with standard find.’
‘Yes, we always use find for our searches, and as I always say, we should standardise these things. That’s good practice. Anyway, binary search is only optimised on a binary tree.’
‘Really, Boris? What’s a binary tree?’
‘Look don’t get smart, Orla. We use find on all our maps.’
‘Yeah, on our maps, Boris. But the ISIN generator uses a vector and when you use find on a vector it’s linear. You should know that.’
‘Fuck it, fuck it,’ his voice trailed off, ‘was that the reason why it was so slow?’
‘Yes. I'm on a fucking revision programme, Boris. Why didn’t you ask me about it?’
‘You rushed off. I thought you had made a mistake and I was correcting it. I didn’t think it would make any functional difference at all. Look they won’t take you off the programme you know. You still left out certain test procedures and you didn't react fast enough which resulted in your feed causing delays for other feeds.’
‘Look, Boris, I have an idea. Before you write a letter of resignation I suggest we explore it together. If I tell Felix you made my coding mistake and then helpfully checked in the code without telling me, after your grand deception, you’ll probably get an official warning. If I fail this revision programme and get made junior, it’ll be very hard for me to get another job or another position here. So, since you’re in charge of making sure I pass this thing then as long as that happens I’ll continue to take the blame for the coding mistake. I’ll get back to being a senior, then I’ll leave the company as soon as the time is right.’
‘Well you’ve got it all worked out haven’t you. You are a sneaky little thing. But what happens if you make a big mistake in your next project? I can’t cover up everything y’know.’
The I.T. Girl Page 12