DEDICATION
This book is dedicated to Margaret Hamilton—not the witch, but the programmer. Hamilton was NASA’s lead software engineer for the Apollo project, and wrote the code that put us on the moon. She wrote a more complicated program than most of us will ever write, with more danger hanging on the outcome than most of us will ever have to deal with, and she did it with tools so primitive she may as well have been using magic. And it worked flawlessly.
Actually, you know what?
This book is dedicated to the witch, too.
CONTENTS
Dedication
One
Two
Three
Four
Five
Six
Seven
Eight
Nine
Ten
Eleven
Twelve
Thirteen
Fourteen
Fifteen
Sixteen
Seventeen
Eighteen
Nineteen
Twenty
Twenty-One
Twenty-Two
Twenty-Three
Twenty-Four
Twenty-Five
Twenty-Six
Twenty-Seven
Twenty-Eight
Twenty-Nine
Thirty
Thirty-One
Thirty-Two
Acknowledgments
Back Ad
About the Author
Books by Dan Wells
Credits
Copyright
About the Publisher
ONE
Mari, where are you? We’re about to get swarmed!
Marisa Carneseca grimaced and blinked on the message. I’ll be there as soon as I can, she sent. Give me a minute.
“A minute”? her father sent back. Our livelihood is failing, with our home itself hanging in the balance, and you need “a minute”?
Yes, Marisa sent back. I’m almost done, and then I’ll be right there. She rolled her eyes, then immediately regretted it—the djinni interface could compensate for involuntary eye movement, but a dramatic gesture like an eye roll—and Marisa’s eye roll had been as dramatic as she could make it—was as disastrous as a fumbled swipe on a touch screen. Apps and icons swirled across her vision, seeming to scatter to every corner of the swanky cafe she was sitting in. She blinked rapidly on each of them, bringing them back into place. The most important was the list of lunch orders: everyone who placed an order at the Solipsis Cafe left a digital trail, and she had camped on the cafe’s network to route all of those orders through her djinni—a supercomputer implanted directly into her brain. Lunch orders ticked by, one every few seconds, on a list that her djinni projected directly onto her eye implants. The list seemed to float in the air in front of her, though of course no one else could see it.
Which was handy, because spying on someone else’s network was very illegal.
Marisa found the conversation with her father and pulled it back into the center of her vision. An angry message flashed at the end of it, waiting for a response. It’s the lunch rush, morena, he’d sent her. We can’t do this without you.
I know it’s lunch, she sent back. Why do you think I’m here?
Because . . . you don’t want to help with lunch?
Marisa controlled her eye roll this time, instead closing her eyes and clenching her fist in frustration. It was so like her father to put ellipses in a message—she could practically hear his voice pausing in the middle the sentence.
She opened her eyes again and looked down at the cafe table in front of her, and the salad sitting on it. She already felt guilty for being here—her family really did need her for the lunch rush at San Juanito, their family restaurant—and now she felt even more guilty for buying a salad. She hadn’t wanted to, but the cafe wouldn’t let her stay otherwise. She looked at the wall beside her—right on the other side of it, barely three feet away, the Solipsis Cafe server sat on a desk, oblivious to her infiltration. A direct hack would have been too easy to detect, which was why she needed to be so close—she wasn’t logged in to their network, she was literally just reading the wireless signals as they flew through it. She glanced at the order list again, hoping the one she needed would pop up before her father went apoplectic. Still nothing. At least her father hadn’t looked up her location yet—
You’re downtown? her father sent her. You’ll never make it back in time!
Marisa looked at the ceiling, shaking her head. GPS locators were part of the parental controls her parents had enabled when they’d purchased her djinni in the first place—just like they had with all of her siblings. Marisa had circumvented most of the parental controls years ago, but she had to be careful about the really obvious ones, like location, where it was way too easy to be caught in a lie. And their punishment would be swift and merciless—they’d even turned her djinni off once, leaving her completely disconnected from everything. She shivered again at the memory of it. Someday she’d be able to pay for her own service plan, and then she could do whatever she wanted, but she was nowhere near being able to afford that now.
She could barely afford this salad.
Not only are you downtown, sent her father, you’re at the Solipsis Cafe!
I know, she sent back.
Their salads cost ten yuan! We can’t afford sixty-dollar lunches!
I know!
Did you use my account to pay for this?
Papi—
You come home right now, muchacha.
And waste this salad? she shot back. It cost me sixty dollars!
He didn’t respond for a few seconds, and Marisa knew he was probably ranting out loud at whoever was close enough to hear him—her mother, certainly, and any of her siblings already roped into a shift at San Juanito. Which would be all of them, she thought, because only Problem Child Marisa would be terrible enough to run off during the lunch rush on a Saturday. She sneered at her uneaten salad, then speared a pepper with her fork and shoved it petulantly in her mouth. Her eyes went wide in surprise.
“Santa vaca, that’s delicious,” she said out loud, then immediately looked around to see if anyone had heard her. Most of the other diners were staring blankly into space, reading or watching things on their djinnis, but one man in a business suit eyed her strangely. Marisa turned back to her salad, wishing she could curl up and disappear.
Another message popped up in her djinni, from Sahara this time—Marisa’s best friend and VR gaming teammate. Where are you?
Hell, Marisa sent back.
No, I already looked there, sent Sahara. She lived above the restaurant, renting the apartment from Marisa’s parents, which made it easy for her to pop in and out. Your dad’s practically spitting nails.
Careful, sent Marisa. Pop in too often and he’ll make you wait tables.
Wouldn’t be the first time he’s tried, sent Sahara.
Your ID hasn’t moved, sent Marisa’s father. Why aren’t you moving? You’re supposed to be on the train coming home RIGHT NOW. Or was I not clear?
Marisa closed his message and looked back at the scrolling list of lunch orders. I’m downtown, she sent to Sahara. She took another bite of her salad. This is the most expensive stakeout I’ve ever done, but holy crap is it delicious.
Solipsis? asked Sahara.
Of course.
I’ve never eaten there.
A waiter nuli hovered nearby—basically just a watercooler with four rotor blades and a sensor. It pointed this sensor at Marisa’s glass, decided she needed a refill, and dispensed a squirt of cold water before flying on to the next table.
I’m eating the roast pepper salad, sent Marisa, taking another bite. The peppers are okay—honestly Dad’s are better—but the salad dressing
is amazing.
How amazing can it be? sent Sahara. It’s salad dressing.
Marisa picked up the little plastic cup the dressing had come in and dribbled more of it onto her vegetables. It’s like a baby koala saw its mother for the first time, and its tears of joy dripped down through a rainbow, and angels kissed every drop before laying them gently on my salad.
That’s the most unsanitary description of food I’ve ever heard, sent Sahara.
Trust me, sent Marisa, eat here once and you’ll want koala tears in everything you eat forever.
Moving on, said Sahara. You think you’ll find him?
Marisa said nothing, staring at the list of orders. “Him” in this case referred to Grendel, a hacker from the darkest corners of the net. He was a criminal, and a dangerous one, though Marisa’s interest was more personal. She looked at her left arm—completely mechanical from the shoulder down. She’d lost it in a car accident when she was two years old, and the cause of that accident—they were virtually unheard of now that cars were self-driving—was only one of the unanswered questions about that day. The even bigger mystery was why she’d been in that particular car at all—the car of Zenaida de Maldonado, the wife of the biggest crime boss in Los Angeles. She’d had two of her sons and Marisa strapped in the back. Why had Marisa been there? Why had Zenaida turned off the autopilot? And when Zenaida died in that accident, why did her husband blame Marisa’s father?
Marisa had never met anyone who claimed to know the truth about that day fifteen years ago—except Grendel. She and her friends had tangled with him a few months ago, and Marisa had been hunting him ever since, finally tracking him to an IP address. It was the only lead she had, and if she was going to follow it any further she needed to be here, right now, watching these lunch orders.
Another popped up. And another one.
But not the one she needed.
You gonna be ready for practice tonight? sent Sahara.
Should be, Marisa sent back absently. If Papi doesn’t cut off my Overworld privileges for missing work today.
You’re the heart of the team, sent Sahara, which wasn’t really true, but it was nice of her to say. Marisa smiled but never took her eyes off the order list. Another message flashed from her father, but she closed it without reading.
I want to try a new strategy tonight, sent Sahara. Double Jungle. Keep you on the top, pretending to defend Anja, while she goes down to help Fang power through the sewers and hit the enemy vault, swift and fierce.
I’ve read about some European teams trying that, wrote Marisa, but they’re always trying crazy—
She stopped in mid-sentence, sending the message without thinking and focusing all her attention on the list of orders. One had just come in from KT Sigan.
I know it sounds crazy, sent Sahara, but you never know what’s going to work until you try it.
I’ve got one, Marisa sent back. She blinked on the order and pulled up the details.
Nice, sent Sahara.
It didn’t matter who the order had come from, only that it was an employee of KT Sigan. Sigan was one of the largest telecom companies in the world, providing internet service to millions of people around the world—including the IP address Marisa had linked to Grendel. If she could get inside their system, she could find out who he was, and where he was, not just online but in the real world. It would be the biggest break she’d had yet in her hunt for him. But hacking an international telecom was no simple matter, and dangerous to boot, so Marisa had started with the cafe: their cybersecurity was way lower, and if you were patient, you could get all kinds of information.
Such as the security code of a Sigan employee ordering lunch.
Marisa read the details of the order: it had come from someone named Pablo Nakamoto, who’d requested a chicken Caesar salad, and listed the delivery address as Port 9, on the third floor of the KT Sigan building. Somewhere in the back of the cafe’s kitchen a chef was tossing together a salad, and filling up a little cup of salad dressing, and packing it all in a plastic box, and then a delivery nuli would zoom across the street and up to Port 9, where Pablo Nakamoto would take it and eat in his cubicle. Hidden behind the order was the good stuff: his financial information, which was encrypted, and the server path his request had followed to get here, which wasn’t. Marisa followed this path backward to the source, finding not only his ID but the security code the server had used to process it. It was just a couple of numbers—a long string of ones and zeroes—but it was enough. Marisa could use it to log in to KT Sigan’s system, masquerading as Nakamoto, and find everything she needed.
Another red icon popped up in her vision: her father was calling again.
Marisa clenched her teeth, staring at the security info, desperate to follow it . . . but saved the information to a note file and closed her cafe connection. The Sigan server would still be there later that night, but her family needed her now. She boxed up her salad, taking a last lick of the delectable dressing, and ran out the door.
TWO
Marisa collapsed on her bed, exhausted. For most of Marisa’s life they’d lived in the apartment above their restaurant, where Sahara lived now, but a few years ago they’d managed to save enough money to buy a bigger house a mile or so away, and Marisa had gotten her own room for the first time in her life. Lying in that room now, bone tired from a long day waiting tables, she wondered how much longer she’d get to keep it. Both their home and their restaurant were in the Los Angeles neighborhood of Mirador, and Mirador was falling apart. Her family had done what they could—they’d cut expenses, they’d dropped luxuries—but it just wasn’t enough anymore. A restaurant only made money if people paid to eat there, and day after day more people in Mirador were becoming too poor to go to restaurants. Power was free, for the most part—every building in the city was covered with solar trees—but essential utilities like water and internet were getting more expensive, and meanwhile everyone seemed to be losing their jobs to nulis. The only reason San Juanito had human waiters was because Marisa’s parents had four kids they could use as free labor, and even then the restaurant was close to going under.
Marisa kicked off her shoes and rubbed her feet and calves, trying to massage the soreness out of them before she fell asleep. How much longer would they be able to keep this house? she wondered. How much longer would Marisa be in this room? She let go of her legs and fell back on the bed, staring at the ceiling. Bao, one of her closest friends, helped support his family by skimming microtransactions from tourists in Hollywood—the brave new world of high-tech pickpocketing. Was that Marisa’s future? Her friend Anja, on the other hand, was the daughter of one of the richest men in LA. Marisa knew that that wasn’t her future.
It was 2050. Los Angelenos had nearly limitless technology, and still most of them were struggling. Why wasn’t the world more fair?
She watched the ceiling until it grew too blurry to see, and woke up to bright rays of sunlight stabbing through the gaps in her curtains.
“Wake up, Mari!” shouted her mother. “Church in an hour!”
Marisa squeezed her eyes shut and moved her shoulders in slow, painful patterns, trying to work out the kinks. It took her a minute to realize that it was already morning—the night had passed in a blink, and she didn’t think she’d moved a millimeter from where she’d fallen the night before. Her legs were still dangling off the side of the bed, and as she moved them, needles of pain shot from knee to heel. She groaned, too tired to be angry, and rolled over on her side, curling into a fetal position.
Marisa’s mother, Guadalupe, opened her door with a hurried flourish. “Come on, chulita, up and at ’em. Why are you wearing jeans? It’s Sunday, mija, we need to go to church.”
Marisa pushed herself to a sitting position, squinted against the light, and pointed at her San Juanito T-shirt with both hands.
“You fell asleep in your clothes!” said Guadalupe, bustling into the room and throwing open Marisa’s closet. She was a large woman, wi
th hair that hovered somewhere between blond and yellow. A laundry nuli rolled in after her, prowling for errant clothes, and Marisa wasn’t able to lunge for her favorite shirt in time—the nuli grabbed it with a rubber-tipped claw and stuffed it into a basket for transport to the washing machine. Marisa groaned and fell back on the bed, covering her eyes with her arm. “I tell you this every week, Mari,” her mother continued, sorting through the clothes in her closet, “but you don’t have a single dress you can wear to church. Just because there’s a band there doesn’t make it a nightclub.”
“I can wear the green one,” said Marisa from under her arm.
“You can’t wear the green one,” said Guadalupe. “It goes halfway up your thighs. You can wear the blue one.”
“I hate the blue one.”
“Then stop spending your money on trashy dresses,” said Guadalupe. “Nobody goes to church to look at your butt.”
“I can think of three people off the top of my head,” said Marisa.
“Sure,” said Guadalupe, dropping the blue dress and a pair of black shoes on the bed. “But those aren’t the kind of people you want looking at your butt. Now get up.”
Marisa grumbled again, but she had to admit her mom had a point. Omar Maldonado, in particular, could stab himself to death with a wire hanger for all she cared. “What time is it?”
“You have a computer in your head,” said Guadalupe, bustling back toward the hallway. “You’ll figure it out. Now get in the shower fast before Pati gets there, or you won’t have any hot water.”
Marisa sighed in the sudden quiet, as her mom’s blustering admonitions moved next door to her sister’s room. She enjoyed the peace for a moment, contemplating for one glorious second the unspeakable joy of going back to sleep again, but then she rubbed her eyes, grabbed her dress, and headed for the shower. She made it there just two steps before Pati, and locked the door while the angry twelve-year-old rattled the handle.
“Let me in!” Pati whined. “I can pee while you shower.”
“I’ll be fast,” called Marisa.
“Will you let me out first?” asked a male voice, and Marisa shrieked and spun around. Sandro, her sixteen-year-old brother, was combing his hair in the mirror—already showered and dressed. Because of course he was.