In his printout, there was a line after the one he’d told her how to rework. But when she looked at her code, it was missing.
She looked at the piece of paper again. And back at the screen. And then back at Nathan’s printout.
After the line of code she rewrote—the one that reworked the way the photos connected to the leaderboard—there was supposed to be another line.
Nathan had included it in his printed instructions. But it wasn’t in her code.
She thought back to Thursday night. It was almost midnight when she made the changes. She hadn’t meant to even touch that line of code, but maybe she’d accidentally deleted it. It was late. She was tired. It was possible.
Allie’s chest felt heavy.
She’d known in her gut it wasn’t Nathan’s fault, and now she had proof.
She thought about the look on his face when he first installed her app. She remembered the way he joked with her as he took her quiz, how he made her take his profile picture, and the way he smiled when Click’d put her in the top spot on his leaderboard. She thought about Nathan flipping his phone upside down, saying that one friend was enough for him. And she thought about the way she smiled when he called her Gator.
She retyped the missing line of code exactly the way it was on the printout, and when she was done, she compared the two again. It looked perfect. She held her breath and pressed SAVE. And then she refreshed the data and pressed the UPDATE button without even testing it.
She took out her phone and launched Click’d.
Her profile looked exactly the way it did on the bus the day before, right before it started crashing.
She clicked on the leaderboard and found that it was completely full with her top ten friends on Bus #14.
It was working again.
She couldn’t believe her eyes. She opened all the screens, trying to make it crash, but it refused to.
She knew she should probably leave it alone, but she couldn’t help herself. She navigated over to her user list. There were flag icons next to thirty-two names; the kids on Bus #14. But she could still see the original list of twelve hundred members, and scrolled down until she found Nathan’s information. She clicked on the icon to flag it and reactivate his record.
Bloop-bloop-bloop.
She looked down at her screen and saw an old picture of Nathan, standing between Cory and Mark. She recognized the gym of their elementary school. It was taken during the fifth-grade science fair.
Allie glanced over at Nathan’s kiosk. He was surrounded by a big group of people wearing black shirts with the Stardust Games logo on the back. He was talking with them, but she could tell he’d heard the sound, too, because he touched his back pocket and kept stealing glances over at her.
She waved.
After the Stardust executives shook Nathan’s hand and walked away, she watched him pull his phone from his pocket. He looked at his screen and smiled. And then he started walking toward her kiosk.
Allie tightened her grip on her phone and started walking toward him.
The picture on her screen was bright red and flashing fast when they met in the middle of the pavilion.
“Hi.” Allie smiled nervously.
Nathan smiled back. “Hey. You got it working, huh?”
“Yeah.” Allie’s heart was racing. Her hands felt clammy and her mouth was dry. She tipped her head toward her kiosk. “I just found your printout in my bag and…it looks like I accidentally deleted the line right after the one you told me to change.” Allie swallowed hard. “I feel so stupid.”
He shook his head. “Don’t. It was late at night. It was an easy mistake.”
“No, not about that,” she said. “About blaming you when you didn’t do anything wrong.”
It was quiet for a long time. Finally, Nathan said, “I never would have done that to you. You know that, right?”
She pulled in a deep breath. “I know. I’m so sorry.”
He looked at her like he was trying to figure out what to say next. “That was horrible,” he finally said.
“What was?”
“Seeing you in the audience today. You should have been up there with the rest of us.”
“It’s okay. You were great up there. And I’m happy for you. I really am.”
She held her phone out toward Nathan. He smiled as he tapped his against it. Their screens flashed bright white and their leaderboards appeared.
“Nice to see you back, Gator.”
Allie smiled. “You too, Nate.”
Then something over Nathan’s shoulder caught Allie’s attention. There was an even larger group of people in Stardust Games tees at his kiosk that time, and they seemed to be looking for him.
“What’s that all about?” she asked, pointing toward them.
Nathan turned around and followed her gaze. “Executives from Stardust. I guess they’re all excited about Built. They really liked my presentation.”
“That’s awesome.”
“Remember Rescued, that game for shelter animals from last year?” he asked. Allie remembered it well. She even had the game on her phone. “Well, it didn’t win, but Stardust funded it and it now it’s a top game on all the online app stores. They want to do the same thing for Built.”
“Seriously?”
“They said they’ll give me space in their labs and a few additional developers, and they’ll handle all the marketing. They think they can help get top corporate sponsors, and with the right backing, they say Built could really take off.”
Allie didn’t hear much enthusiasm in his voice. “That’s good news, isn’t it?”
“Well, that depends.” He shrugged. “They want to see what they called ‘proof-of-concept’ first. They said if I can get two thousand downloads by the end of the month, they’re in.”
“Two thousand? That’s nothing! If I can get a thousand users in a week, you can get two thousand users in a month, no problem!”
Nathan laughed. “No, you can get two thousand downloads in a month. Built isn’t a naturally viral game like Click’d is.”
“Well, it should be!” As soon as the words slipped from her mouth, she had an idea. She stopped talking. She could see it forming in her mind. And she knew exactly what she needed to do.
She remembered that day Nathan downloaded her app and asked, What are you going to do with all this data?
She didn’t have a good answer at the time.
But now she did.
“Allie.” The voice sounded soft and far away. “Allie, wake up.”
She peeled one eye open. The sun was shining brightly through the crack in her bedroom curtains, and she let out a groan as she squeezed her eyes shut again. Her face was sore and her neck was stiff.
“Did you sleep here?” her dad asked.
“I guess so.” She peeled her cheek from the keyboard.
“We have to get going,” her dad said. “Your game starts in an hour.”
Allie let her head fall back onto her desk. She’d been up practically all night. There was no way she could play soccer. “Can I skip it today? Please?”
“Skip it? No way. We haven’t seen you play all summer. Besides, you can’t let your team and your coach down.”
Allie yawned loudly.
“I’m making pancakes. Be downstairs in ten minutes.” He left her room and closed the door behind him.
Allie tried to focus her eyes on her computer monitor. She blinked fast, taking in all the lines of code, forcing herself to remember where she’d left off the night before.
Slowly, it all came back to her. She reverted to the original code, and then she made Nathan’s changes again, correctly that time. It passed all her tests on the first attempt. She was feeling brave, so she decided to keep going. She wrote a bunch of code to tie the ClickPics back in, and then she tested it again. And it passed.
Somewhere around 3:00 a.m., she broke all her data up by schools and created new groups, separating everyone so there was no crossover betwee
n Mercer and Steinbeck. Right before she’d drifted off to sleep, she’d written a screen that required every user to choose an existing group or create a new one.
And she’d written new terms of use. They explained how Click’d randomly pulled photos from Instagram and stored the ClickPics in the photos app, and outlined in clear terms that the information gathered would never be sold, but might be used for research purposes and app recommendations.
She wished she hadn’t fallen asleep when she had been so close. Now she looked over everything, feeling good about her progress. She sent the update to her phone and went through every screen, one at a time.
She opened Maddie’s profile. Then Zoe’s. Then Nathan’s.
Click’d didn’t crash.
She switched from the Mercer group to the CodeGirls group, and her face lit up when she saw the CodeGirls data, back where it was supposed to be. She toggled over to the Mercer group again, back to the CodeGirls group, over to the Steinbeck group, and back to the Mercer group again.
Click’d still didn’t crash.
Even though the data had been restored, the leaderboards were still empty. Everyone would have to reclick, but Allie didn’t think anyone would mind; that was the fun part. Allie did a little dance in her seat, and Bo walked over and rested his chin on her leg. “I think we’re ready,” she said to him.
She didn’t have time to second-guess anything, and at that point she figured she had nothing to lose. She quickly typed out a message, addressed it to the entire user base, and pressed SEND.
SECURITY UPDATE: REQUIRED INSTALL
And then she changed into her soccer uniform and headed downstairs for breakfast, with Bo leading the way.
As soon as Allie arrived at the fence that lined the soccer field, she spotted Emma stretching along with the rest of the team, and Maddie and Zoe warming up a few feet away.
The second she stepped onto the turf, her phone blooped.
She smiled, walking faster, heading toward her friends.
Bloop-bloop.
Now they heard it, too. Maddie and Zoe stopped kicking the ball and ran back to their bags, digging around for their phones.
Zoe found hers first. She held it up in the air, wearing a big smile on her face, and as Allie got closer, the bloop sounded three times. A red-tinted photo of Zoe in her soccer uniform and all her goalie gear took over her screen.
“It’s back,” Zoe said as she jumped in place.
“It’s back,” Allie said.
They clicked their phones together and watched their phone glow white and their leaderboards come to life.
“Aw, we’re ones again,” Zoe said, but when Allie didn’t respond right away, she knew that wasn’t exactly the way it was on Allie’s side. “Right? Am I your number one friend?”
For now, Allie thought.
“What’s that look on your face?” Zoe asked.
Allie could feel her cheeks getting hot. “Well, I mean we’re ones right now, but…”
Zoe smirked. “But you’ll have a new one when you see Nathan again, huh?”
Allie shrugged and smiled. Then she turned to address the group. “I’m going to need you guys to be my street team again tomorrow.”
“Of course,” Maddie said.
“No problem,” Emma chimed in.
“Sure,” Zoe added, “but I’m not sure you need us. Everyone’s been missing Click’d.”
“Yeah, especially Zoe,” Emma said as she slapped her arm with the back of her hand. “Look at her. She’s getting all twitchy. She can’t wait for this soccer game to be over so she can go play.”
Zoe rolled her eyes. “She’s right. You guys want to go to the mall later?”
Allie started to tell them all about her plan, but then the air horn sounded and the game began, and they all sprinted to the field and took their positions. And for the next hour, they ran, passed, kicked, and worked together as a team.
When Emma scored the first point, the five of them ran over to her and threw their arms around her shoulders.
At halftime, they all ran to the goal and congratulated Zoe on all the shots she’d blocked.
In the third quarter, Maddie made a killer pass to Allie, but Allie missed it entirely. One of the Ravens stole it and took it all the way to the other end and scored.
Allie ran over to Maddie and dropped her head on her shoulder. “Sorry. I think I’m too exhausted for this.” Maddie laughed and promised to keep the ball as far away from her as possible for the rest of the game.
When the Ravens scored again, Emma yelled, “It’s all good. We’ve got this!”
And for a little while, it was as if the last week hadn’t even happened. And the four of them just felt like the four of them again.
Allie’s friends went to the mall right after the game, but she went straight home and got back to work. For the rest of the afternoon, she closely monitored the data.
By noon, almost three hundred people had installed the update.
At two, more than five hundred had installed it.
At three, there were a bunch of new groups and she had more than one hundred new users. She could tell Maddie, Zoe, and Emma were spreading it around the mall, and she laughed when she saw all the new ClickPics pouring in featuring her friends with complete strangers.
At four, when she was nearing fourteen hundred users, she typed out a text to Nathan.
Allie
what are you doing right now?
Nathan
nothing why?
come over? I want to show you something.
Allie texted him her address, and an hour later she heard the doorbell ring. She sprinted down the stairs, but her mom was already in the entryway, opening the front door.
“Hi. I’m Nathan.” He sounded nervous. “I’m a friend of Allie’s.”
Bloop-bloop-bloop.
Her mom pulled the door open wider so he had room to step inside. “Of course!” she said excitedly. “I saw your presentation yesterday. I loved your game! Congratulations.”
“Thanks,” Nathan said.
Her mom pointed to the kitchen. “I’m making dinner. Would you like to stick around and join us?”
Nathan looked up and saw Allie standing on the bottom step. When she nodded approvingly, he turned back to her mom and said, “Sure.”
Suddenly, Bo came racing down the stairs. He flew past Allie and stopped at Nathan’s feet. He sat looking up at him, his tail wagging excitedly.
Nathan crouched down. “Hi there!” he said as he reached out with both hands and rubbed Bo’s back. “Who’s this?”
“This is Bo. The best dog in the world.”
Nathan stopped petting him and looked at her. “That’s impossible. My dog, Archie, is the best dog in the world.”
Allie rolled her eyes. “Are we actually going to compete over who has the best dog?”
“Yep.” He covered Bo’s ears with his hands. “Because I have the best dog.”
“No, you don’t.”
He raised an eyebrow. “Yes, I do.”
She rolled her eyes. Allie and Nathan tapped their phones together, and then Allie curled her finger toward her chest. “Follow me. I have something to show you.”
They climbed the stairs and Allie led Nathan into her room. She sat down at her computer and opened all the data stored on the CodeGirls server.
“So…something you said yesterday got me thinking. Thanks to Click’d, I have all this data, right?” She scrolled down through the user information. “I have all the basic profile stuff, plus answers to fifty questions from more than fourteen hundred people, and I’m getting more every day. You once asked me what I was going to do with all of it, and I didn’t know. It hadn’t really occurred to me to analyze it until yesterday, but now that I have, I feel like I have a pretty good understanding about my user base.”
Allie had created new check boxes, filters, and a pull-down menu to help her easily sort everything.
“Check it out. These three
hundred and sixty-eight people are into charitable causes and do-gooder-type stuff. You can tell because of the way they answered questions four, twelve, nineteen, and forty-three.”
She unchecked the CAUSES box and clicked one titled GAMES instead. A new set of names filled the screen. “These four hundred and ninety people love video games. I know this because of the way they answered questions six, twenty-seven, and forty-four.”
Allie filtered the data again. “These two hundred and eighty-four users like crafts and making things.” She selected another box. “And these three hundred and fifty-eight people like the outdoors and things like extreme sports, which isn’t the same as building a house or anything, but I figured it was kinda close.”
“Where are you going with this?”
Allie leaned back in her chair. “Did you install the update I sent out this morning?”
“Yeah.”
“Three new screens popped up before the install began. Do you remember what they said?”
Nathan thought about it. “There was a user agreement.”
“Yep,” Allie said.
“And I had to give it permission to access Instagram and photos.”
She nodded.
He looked out of the corner of his eye, like he was trying to visualize the third screen. And then he grinned. “It was an opt-in. It asked if I wanted to be notified about similar apps and games.”
A huge smile spread across Allie’s face. “Did you check the box?”
“Yeah, I think so.”
“You did. I know so.” Allie turned back toward the monitor. “You agreed. And so did these nine hundred eighty-four users.” She sorted the data again and their names filled the monitor. “This is all of them, broken up into four categories based on their specific interests.”
“Are you saying what I think you’re saying?”
“If you’re thinking that we’re going to send them the link for Built, then yes.” She opened all the categorized user data again. “And we’re going to use their interests in video games, crafts, outdoor activities, and causes to craft specific messages to each group.”
Nathan stared at the screen for a long time.