LightReader

Chapter 23 - Chapter 23: The Breaking Point

The harmony lasted for three days.

Three days of steady, productive work. The API grew. Ares's front-end evolved from unstyled text into a functional, if minimalist, application. They had settled into a comfortable rhythm—coding alone during the day, syncing up over video call in the evenings to review progress and plan the next day's tasks. It was efficient. It was professional. It was, Kairos dared to think, going perfectly.

And then, on Thursday, it wasn't.

The problem was the map feature. It was the most complex part of their MVP, and they'd saved it for last. Ares had integrated the Mapbox API into the front-end. Users could now drop a pin on a map of campus to report an issue's location instead of just typing a building name. It was sleek, it was user-friendly, and it was completely failing to talk to Kairos's back-end.

"The coordinates are coming through as strings," Kairos said, his voice tight with frustration during their evening call. He'd been debugging for two hours. "The schema expects numbers. MongoDB is throwing a validation error." He'd defined the coordinates in the schema as lat: { type: Number }, but the data from the front-end was arriving as "lat": "37.7749" instead of "lat": 37.7749.

"Well, can't you just parse it on your end?" Ares's tone was clipped. She'd spent the entire day getting the map to work beautifully, and now the back-end was rejecting her hard work.

"I shouldn't have to," Kairos countered, rubbing his temples. "The data type should be correct when it's sent. Can't you serialize it properly from the front-end? Use parseFloat() on the coordinate values before sending the request?"

"I am! I'm stringifying the entire payload to JSON. The Content-Type header is set to application/json. The coordinates are numbers in the payload I'm sending. I've checked the browser's network tab."

"Then why am I getting strings?" he shot back, his patience wearing thin. The error felt trivial, stupid, which made it all the more infuriating. "It has to be on your end. Maybe the HTTP client library you're using is converting them?"

"Axios doesn't just randomly convert numbers to strings, Kairos. That doesn't make any sense. The problem is in your validation. Maybe your middleware is parsing the JSON and doing something weird."

They went in circles for another thirty minutes, a technical argument that slowly stripped away their professional courtesy. It was no longer about solving a problem; it was about being right. The frustration of the week—the intense focus, the pressure they were putting on themselves—was seeking an outlet, and this tiny, stubborn bug was the perfect target.

"You know what," Ares finally said, her voice cold. "Forget the map for now. I'll just revert to the text-based location input. It's less elegant, but at least it works."

Her words felt like a dismissal. Like she was giving up on his ability to fix it.

"Fine," Kairos said, his own voice equally frosty. "Do that. I'll focus on the upvote endpoint." He didn't mean for it to sound like a petty division of labor, but it did.

The call ended with a terse, "Bye." Not "talk tomorrow." Just "bye."

Kairos slammed his laptop shut. The quiet of his room, once a haven for focus, now felt oppressive. He was furious. It was an illogical, burning anger that he knew was disproportionate to the problem, but he couldn't shake it. He'd been working non-stop for days, isolating himself, and that single, failed interaction felt like a personal rejection.

He was staring at his darkened screen, fuming, when a loud, familiar knock rattled his door.

Before he could answer, Robin let himself in. "Dude. You're alive."

Kairos grunted in response.

Robin looked around the room, taking in the empty energy drink cans, the notebook filled with frantic schematics, and Kairos's generally disheveled appearance. "You look like garbage. Smell like it, too. When was the last time you went to class?"

"Class?" Kairos echoed, as if it were a word from a forgotten language. He genuinely couldn't remember. His world had shrunk to this room and his code.

"Yes, class. The thing we pay a fortune for? Professor Evans noticed. He asked me where his 'star back-end developer' was. I told him you had a case of the code plague."

Kairos winced. He'd completely forgotten about his actual coursework.

"What is going on with you?" Robin asked, plopping down on the edge of the bed. "You've been MIA for a week. You missed wing night. You never miss wing night. Is it the project with the princess? Is she working you to death?"

"It's not her," Kairos muttered defensively, though the fresh memory of their argument stung. "It's… it's going great. We're building something really good."

"Doesn't sound like it's going great. You look like you're about to declare war on your laptop." Robin peered at him. "Did you guys have a fight?"

"It wasn't a fight," Kairos insisted, slumping in his chair. "It was a… technical disagreement."

Robin burst out laughing. "A what? What does that even mean? Did she use tabs instead of spaces?"

"It's not funny! It was about data serialization!"

This only made Robin laugh harder. "You're having a lover's quarrel over data serialization? I can't. I literally can't. This is the nerdiest thing I've ever heard."

"She's not my lover," Kairos snapped, his face growing hot.

"Could've fooled me," Robin said, his laughter subsiding into a smirk. "Look, man. I don't speak nerd, but I speak human. You've been locked in this dungeon for a week. You're stressed. You're probably hungry. And you just had your first fight with your coding wife. You need to take a breath."

Kairos wanted to argue, but the fight drained out of him. Robin was right. He was exhausted, hungry, and he'd just been a jerk to his project partner over the dumbest possible reason.

"She's just… so good," he confessed, the words coming out in a tired rush. "She's ahead of me on everything. Her code is clean. Her plans are perfect. I feel like I'm constantly trying to catch up, and the one time something goes wrong, I immediately get defensive like an idiot."

Robin's expression softened. "So she's smart. And that's a problem because…?"

"Because what if I'm not enough? What if she realizes I'm just faking it and decides to do the whole thing herself?"

"Bro," Robin said, leaning forward. "She picked you. Out of everyone, she's doing this with you. She didn't have to. And from what I saw during that hackathon, you don't give yourself nearly enough credit. You're a beast. So you had a fight about… whatever nerd thing you fought about. Big deal. Apologize."

"It wasn't a fight," Kairos repeated weakly.

"You're sulking in the dark. It was a fight." Robin stood up. "Alright, get up. We're going to get actual food. Not whatever science experiment you have growing in your mini-fridge. And then you're going to shower. And then you're going to send her a message that isn't about data types."

Kairos allowed himself to be pulled to his feet. As he followed Robin out of the room, he glanced back at his laptop. The problem was still there. The anger was gone, replaced by a dull throb of regret. Robin was right about that, too.

He needed to apologize. But first, he really, really needed a shower.

More Chapters