“Hey”, Gilfoyle mumbles as he walks into the kitchenette.
Dinesh briefly glances at him over his cellphone before going back to typing, his answer a light acknowledgment nod.
Gilfoyle fills his mug and walks back to his workstation.
There’s nothing there.
Dinesh makes a completely fair mistake.
Gilfoyle spits some racist joke that manages to also be homophobic and their employees shake their heads in silent disapproval.
People around the office don’t like them very much and there’s nothing there.
As Gilfoyle turns down his computer and takes his bag, Dinesh watches his back and considers asking if he was up for some Titanfall. He asks Jeff instead. Jeff flinches but says ok – around the seventh time Dinesh insists. He gets to drive Dinesh’s Tesla, which isn’t related in any way. It’s not a bribe or anything.
Jeff’s awful at online multiplayer, but at least he doesn’t make any racist or heavily homophobic joke to his face.
It’s kind of a boring night.
They are still at each other throats a fair amount of time, but there’s nothing there. The nothing turns into some degrees of anger Dinesh has no idea where came from or that he was capable of. He doesn’t think of himself as a bitter person. He most definitely feels bitter.
Mildly annoyance was always present, he guesses, but not that kind of genuine boiling anger. Being around him wasn’t always that infuriating. It could be, but it could also be just normal. Familiar. Dinesh blames it on Jian-Yang the first night he lays down on his new room in an apartment that doesn’t perpetually smell like weed thanks to what Erlich did with the garage. He thinks that the anger is probably born into the fact that, for the first time in years, he was free from having to compromise into befriending a bully for the sake of having someone to play videogames with. And because they lived under the same roof. And because talking to him was better than the alternative, which was having no one to talk to.
He has plenty of people who are a better audience to listen now, so he doesn’t talk to him, just hates him, until there’s nothing there.
Drunk, he rambles to Priyanka one night, over a happy hour he was paying for, that sometimes it feels so liberating it’s like finally detaching from an abusive relationship and being allowed to acknowledge the counterpart as they really were. And what Gilfoyle really was a total dickhead and not his friend.
The other day he kicks himself for saying that, but Priyanka doesn’t seem to even remember the exchange, let alone linger on the nuances of Dinesh’s wording choices.
He is not going nowhere near that again.
Gilfoyle turns down his computer, takes his bag and leaves. He doesn’t say good night . Dinesh still shouts, to his back, that he left a dirty mug on the desk and it could attract ants over the weekend. Gilfoyle flips him a finger without turning his back.
The BitCoin alert screams loud in the office. No one even blinks, the whole team numb to it by now.
He let himself wonder for a second, while washing a stupid Write Code Hail Satan mug in the sink, why Gilfoyle never asked if he wanted to move in until he realizes it was probably the same reason why Dinesh never asked if he could.
Dinesh plays videogames with Jeff now, and have coffee with his part of the team. They are a way better audience to his achievements than the previous people he made listen. Maybe because he held their paychecks. Dinesh thinks it’s his charming personality and impressive ideas instead.
Dinesh had no clue where Gilfoyle lives now but he thinks it must be a dump.
He learns where Gilfoyle lives after a ten-minute argument and a twenty-five-minute drive. He follows after the old junk of a car with a bullshit anarchist sticker on its trunk in his brand-new Tesla, a backpack with some clothes in the passenger seat and the laptop with a hole in it on his lap.
Gilfoyle’s place is not a dump, but there are too many boxes lying around considering he has been living in there for a few months. It's small, which is not surprising since this is Silicon Valley. Clean, which is surprising, since it’s Gilfoyle.
The place has a secondhand couch that he points out as Dinesh’s bed and a drum set. His center table is shaped like a skull. He says for Dinesh not to make himself at home - like he has to be reminded of the inconvenient that he is, ping-ponged around because no one trusted him alone after what happened and none of his friends could or would take him. The shame takes the fight and anger out of him and leaves a feeling of turpitude. It’s like he’s having an out of body experience since Richard, Jared, and Gilfoyle burst into Jeff’s place. Funny how he keeps thinking of it as Jeff’s place even though he pays for half the bills.
They order some dinner after Gilfoyle comes out from a shower. It’s the same Chinese place he always ordered from when they had all-nighters in the Hacker Hostel. He’s a creature of habits, after all. Dinesh notices he still tied his wires together with a rubber even if Dinesh wasn’t around anymore to tell him to organize his desk. He considers teasing, but that night Gilfoyle had all the cards for a crushing retaliation, so he doesn’t. He sits awkwardly on the couch, don't make himself at home, and tries not to think of the feeling left in his stomach as he waits for Gilfoyle to start whatever he's planning to make this situation even worst.
He watches Gilfoyle walk around his apartment with a towel around the waist, opening and closing boxes until he finds an extra pillow and some blankets.
By the time their dinner arrived, they had set the couch and Dinesh had taken a shower as well. He was out of the bathroom in his pajamas to find Gilfoyle with the food over the skull-shaped center table, two beers, and two controllers.
They play Injustice – Gilfoyle always chose Luthor and almost always won.
They had more beers, then they played Battlefront, then Dinesh spotted Call of Duty when Gilfoyle was checking his downloads and they played that. They had played that game a lot in the first year they lived under the same roof, sitting back to back because they needed a physical statement of antagonism.
Gilfoyle was way more fun to play with than Jeff.
He doesn't say anything to make Dinesh feel worst. In a way, that does the job on its own.
Dinesh says he's sorry. For Jeff. Being stupid. Everything, really. He had three beers, so he was feeling time moving differently around him, his soft tongue rolling words he wishes he could take back the moment they are out.
Gilfoyle doesn’t move, eyes hidden behind the reflection over his glasses. Colored lights shine on the lenses as shots are fired with impressive accuracy on the screen. Dinesh didn’t care much for APS, being inclined to just shoot everything that moved. Gilfoyle cared. His finger rested patiently away from the button, looking, aiming, waiting until he made a quick motion and landed a headshot. Like a true sniper.
He tells Dinesh not to worry about it since his default expectation for Dinesh’s actions was to kamikaze everything and drank his beer.
Dinesh was still thinking about how his fingers never touched the buttons before he took the shot as he lied down on the couch and Gilfoyle turned off the lights saying good night, to what Dinesh replied with a grumble. His head buzzed with the four beers he had, his mouth dry with familiar domesticity around him, the acid lemon scent from Gilfoyle’s shampoo on the pillow under his nose, the feeling in his stomach growing up to a chest filled with many things he thought he was free from.
The next day, Jared and Richard tell them they talked about the issue during the night and decided it was best for Dinesh to keep living with Jeff. Just for, you know, keeping up the appearances of normality.
They agree without a single counterpoint.
Dinesh buys himself a new laptop that afternoon and delivers the bill to Jared.
Truth is, Dinesh knows that he has a thing for Gilfoyle. That’s what he calls it in his head, never getting around the topic for long enough to choose a better definition. A thing. He has a thing for Gilfoyle.
He has lived with that knowledge hunting his every awake moment since TechCrunch Disrupt. If he was feeling honest (not a recurrent occurrence, so not a recurrent motive to worry), Dinesh knew it even before, the whole getting-a-boner-to-Gilfoyle’s-code dreadful episode being just his body shoving at his face that he couldn’t deny anymore that he had a thing for Gilfoyle.
It was four years, a couple jobs, two dozen Tinder dates and a girlfriend later and he still had a thing for Gilfoyle.
It wasn’t necessarily an obsessive thing. There’re dreams, sometimes, which made the whole thing rather difficult to deny from the beginning when his subconscious was showing him that kind of content. But they don’t come every night, not even every week, sometimes they could skip a month or two. There was a time right after they crawled out of the Russ Hanneman hurricane where Dinesh didn’t have any dreams for so long, he thought he was definitely over his thing for Gilfoyle. Then, Gilfoyle casually told him during a conversation that he had four tattoos. Dinesh pointed out he only ever saw two, and he has seen Gilfoyle shirtless and in shorts before, so where the others could possibly be located? Gilfoyle rolled his shoulders and left the kitchen with his bowl of dry cereal. That night, Dinesh had a dream where that conversation ended with him taking Gilfoyle’s clothes off on the kitchen counter and inspecting his body until he found every one of them.
He had several variations of that same dream for a week.
The night he sleeps in the couch he dreams of Gilfoyle’s hands.
Dinesh was starting to think he could finally choose a name for it: it was a curse. The witch cursed him. And Dinesh hates every minute of it, so he hates him.
It’s been eight months since the last time he installed Grindr. He doesn’t use his picture and he always put down a range way further than probably needed. Better be safe than sorry. He doesn’t know what he would even be sorry for, but still. Safe.
Dinesh had sex with men two times in his life before he met Gilfoyle. One in Lahore, where he was deadly afraid of being arrested during most part of the experience, and one in Caltech, where he was deadly drunk during most part of the experience and only knows it happened because the next day he was shaken awake for some guy in said random guy's bed, body sore in some places it usually wasn't. Dinesh spent the rest of the week lecturing himself into why that couldn’t happen again. He visited his parents. He meant to drive all the way to Iowa but realized by Nevada that was insane. He took a flight. When he got back, someone had stolen his car.
He had sex with men three times after he met Gilfoyle and Gilfoyle wasn’t one of them, but he was the one he was thinking of while scrolling past the finest examples of bad parenting. A guy with not one or two, but six piercings on his face. A guy with a braided beard. A guy with glasses and shitty prison tattoos. People who didn’t look a thing like coders, for starts. Long hair. One of them was even wildly racist in a weird fetishist way that made him torn into being flattered or calling the police. It was a decent fuck. Either way, Dinesh's self-esteem wasn't high enough for him to call the cops on someone who wants to have sex with him. He was dating Mia when that happened.
He sees Shay from Accounting and some other familiar faces in the app and feels sick.
They did rock-paper-scissors for the projects they’d be supervising way back and of course, Dinesh got the gay dating site.
He didn't think much of it then. That's just his job. He's a professional, high-qualified CTO. He can take the jokes and the self-doubt. Months later, the words coming out of Gilfoyle’s mouth starts to sound frighteningly familiar and Dinesh remembers it.
“...height preferences: six feet and a half. Damn Dinesh, you’re going to need a bench to reach him.”
“What are you doing?”
“We’re taking a look at how Jian-Yang platform works compared to ours. DeeDee’s website is what we have in common so far, so...” Richard gives shoulders, head buried in his keyboard. Dinesh has been so fixated on the lines of code in his computer screen he didn’t realize it was already 10 P.M. They’re the only ones left in the office. Even Jared is nowhere to be seen. The cleaning lady is packing up.
“...Graduated in information theory and computer science from Yale, Caltech, and Oxford. Published several books on advanced Java tools.’ It’s the first time I hear of you writing any book, so that’s a lie. Lying on a dating site is already cheap, but a Cristian dating site?” Gilfoyle shook his head with as much mockingly disapproval his flat face could master.
Dinesh’s mind starts racing to catch up with his breath.
“Actually, Dinesh did write them”, says Richard. “How did you not know that? It’s in his resumé and on our website. I’ve read one, it’s actually-”
“They have my data?” he asks because he couldn’t think of anything else to say.
“Yeah, it’s DeeDee property,” Richard says it like that’s obvious, like Dinesh should’ve thought of that, like he should’ve been safer.
He thinks of going to the bathroom but revalues the situation. The gold chain. Flight is never a good option with those people.
What annoys him the most is how dumb most of his mistakes end up being.
“Sex: versatile but inclined to bottom”, Gilfoyle keeps reading, making that one really loud. Richard gives Dinesh a weird side-glace, a crooked smile and lets it slide, marking it as an odd, but indifferent information as he keeps working, probably assuming Dinesh reviewed everything randomly to check for bugs. Which was what anyone was going to assume, because it was their client, his developer, and there’s nothing out of place about him running tests on their product. But not Gilfoyle. His face told a very different story. He was enjoying it. “'Interested in men between twenty-eight and forty-five who knows their way around computers.’ So he can install the Office package in your laptop for you.”
Between gripped teeth, Dinesh said lower than he intended. “I told you, man, it was a fucking Windows Update bug.”
“'Political orientation: liberal.’ That’s vague. But again you...” Gilfoyle stops. Dinesh forces himself not to look his way. He knows what came next in the profile. He knows what he marked. He knows what it would look like because it was the truth.
He can feel Gilfoyle’s eyes on him for a whole minute but he doesn’t dare to look his way and hope it’s only his imagination.
Gilfoyle doesn’t make a show of reading anything else aloud. Dinesh waits ten minutes before going to the bathroom. He expends the next five sitting on the toilet with his face in his hands. When he comes out, Gilfoyle is gone. Richard is still there.
“Hey, wanna finish this up tomorrow?” Richard asks him and Dinesh nods.
The Saturday after the next, Gilfoyle shows up in a pickup full of boxes. Dinesh can recognize them by his only night in Gilfoyle’s couch. He sits by the window and eats his breakfast while watching the other man drag stuff back into the bedroom across the hall.
Jared and Bighead go out to help.
Eventually, Dinesh makes a sarcastic comment about the skull-shaped centerpiece that is too wide to pass the door. When he comes out of his bedroom later, he has to walk over Gilfoyle with a saw.
He sits in the living room and starts reading some woodworker blog aloud just to be annoying. Pools of sweat start to show in the middle of Gilfoyle's back and under his arms. The wet hair clings to his cheekbones.
The fucker actually manages to put the centerpiece inside the bedroom in two hours.
No one says anything about him coming back to the house.
Monica asks, a few days later, and Gilfoyle tells her only a crazy person would choose not to live for free in Silicon Valley. And he’s not a crazy person. She buys it. Dinesh doesn’t.
It’s dark and quiet and Dinesh sits on the couch with a beer remembering when that place was light and loud and he could hardly get any work done. Coders came and went so fast he didn’t bother on learning their names. People slept on the hallways. Erlich was the worst landlord the Valley ever saw, but fuck it if the house wasn’t weird without him or the sound of typing in the background. Only Bighead was sitting at the workstation doing whatever crap that guy do nowadays, Dinesh really doesn't care enough to hold that information.
Gilfoyle said he was going to play The Witcher on the main TV and Dinesh replied he didn’t mind.
He watches him play - the concentration, the sound his ring does against the plastic, the way he tied his hair and how he trimmed his beard too short that morning at the point it resembles that sad excuse for facial hair he was able to grow when they first met. The mustache is damped with foam from the dark beer he’s drinking and Gilfoyle licks it.
Dinesh hates how he can’t bring himself to hate him.
He used to smile more before Pied Piper. Dinesh can remember it, how his teeth were round and crooked and yellow and his big eyes lighted-up. Anything more recent than two years is a blank to him. He can’t remember Gilfoyle’s smile, which is alone a heavy indication of how messed up this is. He wonders what happened to them, if they’re really that broken, if there’s anything different he could’ve done before they painted this with too many layers of aggressivity to the point it stopped being funny.
He feels nostalgic and remembers wrestling over that couch for the good controller, and thinks if that happened now Gilfoyle would probably punch him in the nose. Hard. He had beaten Dinesh before, which is alone a heavy indication of how messed up Dinesh is to still love him.
A tiny spot in his chest seems to hold his breath thin when he realizes... He can’t stay there. He blames it on Jeff this time.
He dreams of Gilfoyle asking him if they could take a break for a second, and when they hold each other Dinesh wakes up feeling hollow.
He liked being angry better. He wants to cling to that feeling but there’s nothing there.
“Do you have eyes at the back of your head or something?”
"No. I have a laptop reflecting the kitchen lights in front of me.” Gilfoyle makes an impatient motion with his hand, not turning around at the deckchair he’s currently occupying. When he calls his name, “Dinesh”, that low tone has no right to make his name sound so good.
Dinesh looks back into the house and sighs. The familiar smell of weed catches him in a warm breeze. He sits at the edge of the second deckchair.
Wordlessly, Gilfoyle handles the laptop. He takes a sip of his beer and reaches for the bong as Dinesh scroll through the code.
“What am I looking at?”
“It’s a programming language called Java.”
Dinesh pouts. “Yeah, I know. Obviously. I mean, what’s the application? Who wrote this?”
The scent is stronger now that he’s close, the wind hauling the smoke to his side. It doesn't smell bad and it suits Gilfoyle, in a way. He doesn’t care for how rude it is to blow smoke at a non-smoker and lays comfortably on the chair, taking long enough to answer to make Dinesh wonder if he’s missing something.
“How do you know I didn’t write it?”
Because there are a few mistakes, for starts, and Gilfoyle doesn’t make mistakes. Because it’s simple and by the book and Gilfoyle’s code is neat, but inventive and a bit rebellious. Because he doesn’t code in Java, but when he does, it’s way better than this. Because Dinesh knows how he writes. Knows him.
“It’s not in our metrics”, is what he says instead.
The other seems to be satisfied with the answer, or just indifferent to it since he can’t think of a way to use it to make fun of Dinesh.
“It’s Tara’s. For one of her clients.” He plays with the lighter, the fuel running low making it difficult to catch fire. “She was having trouble with a few inputs and asked me to take a look. I made some patching, but I don’t really give a shit.”
Dinesh nods and presses backspace. He stops, looking up at Gilfoyle in expectation. A request. The other nods back, so Dinesh keeps deleting and types something else. Smoke hits him in the face again. He’s going to need to wash that shirt tomorrow.
“I thought she dumped you”, Dinesh comments as he scrolls down. He finds a bit of Gilfoyle’s writing in there. It’s beautiful. Gilfoyle shifts on the other chair.
“We reached a mutual agreement of going separate ways, yes.” No, she totally dumped him. Dinesh heard the argument through the door for the sheer goal of using it for comedy later, however, got too uncomfortable for even attempting to use it. Gilfoyle didn't seem to know that. “But we’re civil, for Incubus and Empusa sake.”
“Why don’t each one of you just takes a cat for yourself?”
“Are you nuts? We can’t separate them.”
“Cats don’t mate for life, you know. That’s penguins. Cats are assholes, they would probably be glad you took the competition away.”
“Don’t talk about my cats like you know them.”
That one had Dinesh snorting. “For someone who doesn’t usually work in Java, this is actually pretty well-build.”
“Me or Tara?”
Something feels weird around his shoulders. “Tara, of course”, he answers and sets back against the armrest, getting comfortable. Comfort, yes. He was tensing his shoulders before.
Gilfoyle hums. Dinesh glances his way. The brief eye contact leaves a cold sensation in the pit of his stomach and ends with a sudden shift back to the laptop. Fingers type.
“But I must have been better”, Gilfoyle talks after a while, his low tone making Dinesh type faster and drop a few mistakes. This, him, do not feel normal. There’s a tension in the air that is new and thick. “Maybe I should read one of your books”, he provokes.
“What do you mean?” Dinesh peeks from behind the barrier of his code.
There’s a pause that later Dinesh would wonder if was Gilfoyle double-thinking what he was about to say.
“My Java used to make your dick hard.”
Dinesh stops typing.
He knows then that there’s nothing he could say or do that would erase that first few seconds of reaction away from Gilfoyle’s sharp memory. So, he looks up, face him back in the eye and finds that anger he was looking for weeks ago. His voice is way steadier than any of them expected when Dinesh shoves the laptop back into Gilfoyle’s lap. “That’s very funny.”
Gilfoyle doesn't give him any shit for flighting. In a way, that’s so much worst.
There’s this odd place that is made of in-betweens. Dinesh remembers it from the couple months before his family moved to the US. Things had a sense of urgency to it, like something vital was unfolding. That’s what drove Dinesh to slide his hand inside the rem of Zayan shorts after school, the certainty that he was meant to change soon enough to deal with any consequence. Dinesh remembers feeling it heavily in the months that lingered between his arrival at California and Richard giving him a job at Pied Piper, an itch at the back of your brain, something that makes your body wait and rest for a battle to come. He felt it again when he was working for Periscope, and when that smart fridge miracle happened, it was clear to him that this time it had something to do with Gilfoyle. It partially had. They drifted apart in a way Dinesh told himself was for the best and eventually he would feel better.
He feels it again, but he doesn’t want to go there.
He thinks Gilfoyle feels it too and is dreadful to the realization that Gilfoyle seems to know very well what he’s doing. Even though he doesn’t know himself what Gilfoyle is doing there, he has educated guesses. He doesn't like any of his guesses.
During breakfast, Gilfoyle stretches over the table and takes a bite of Dinesh’s sandwich, his nose tickling Dinesh’s hand. They lock eyes while the other chews slowly, as if challenging a reaction. Yes, he knows what he’s doing. Dinesh, as usual, doesn’t. He takes a strand of long hair out of his food and calls him gross.
Dinesh can’t quite place when it started, but he’s sure Gilfoyle is messing with him in an explicit and really, really, really fucked up way. A part of him wonders if they were always like this, noticing how no one else seems to find strange the way Gilfoyle behaves. Maybe he’s being paranoid. Maybe the other did move back in to save money, or even because after all that time they have to face that they became friends. Maybe Gilfoyle isn’t that perceptive and this is just his usual set of attempts to make Dinesh uncomfortable. But if not...
...If not, that’s a way too big of an issue to be left to mildly provocation.
And Gilfoyle has always been a sharp mind-reading ninja when it came to Dinesh, hasn’t he?
Come to think of it, how took him so long to notice was the real unsolved question there. Maybe, as Dinesh, he just didn’t allow himself to look long enough to make any sense of those shapes.
His eyes met Dinesh’s with a knowing intent across the usual Monday morning meeting and oh, he’s looking alright.
Dinesh’s not wearing a polo that night, so when Gilfoyle puts his hand at the back of his neck for support and leans in to take a look at the code, without the barrier of the collar, his cold fingers brush between skin and hair. Brush. After all things, that’s where Dinesh finds his limit.
“Dude! Stop!” he bursts out, slapping Gilfoyle’s hand and turning his chair around. He feels his face hot. The hair on his arms is standing. The other seems genuinely surprised by the reaction, a hand still floating in midair. It lasts the exact amount of time as Dinesh’s anger before turning into suspicious, while Dinesh sees himself being taken by unmistakable embarrassment.
“Stop what?”, Gilfoyle still has the nerve to ask him.
Dinesh has no clue what a safe response would be. If he did, things would’ve been different for years.
“You know what.”
“You sure do.”
“You tell me.”
Flight, Dinesh concludes as trying out a nonchalant expression that comes out as painfully furtive, is the only strategy he has left. So, he stands up and walks in fast and heavy steps to the kitchenette. He tries to pour some coffee only to realize his mug is back at the desk. Dinesh scratch his eyes, wonders when will his suffering ever ends, why is he so smart and so stupid. He walks back.
“What do you want me to stop doing?” Gilfoyle asks him, a hand over the rim of the Dinesh’s mug. Ignoring or denying participation in the argument to come, he tries to pull the mug by the wing, but Gilfoyle’s fingers tense and hold it in place. It’s middle school all over again. They fight for the mug until Dinesh gives up.
A quick look around the office confirms they’re alone. It’s around two in the morning. Dinesh had to stay late to fix a couple errors to keep on schedule. Gilfoyle didn't. His team is way ahead. He bought Dinesh a “#2 CTO” stripped polo shirt – there’s no way he didn’t have it custom made – just to shove at his face. He still stayed as everyone else went back home, saying he would help if it made Dinesh stop bitching. A person could say many bad things about Bertram Gilfoyle, but he never ran from hard work. He had an annoying tendency to face things right ahead. He always got to the bottom of it.
This is it, isn’t it?
Dinesh looks at him and decides, glaring at that smug face that just knows, he knows he has all the cards in his hand, knows that Dinesh knows he knows, that he could use a win. There’s only one thing that Gilfoyle is not expecting Dinesh to do in any scenario and that is being honest.
So that’s what Dinesh does, just to prove him wrong.
“You’re either stalking me to try to figure out if you can get under my skin, or you know you can and you’re doing exactly that because you’re the type of immature prick who would think this situation is remotely funny to anyone.”
Oh, those wide eyes and fingers going soft around the mug do taste good.
Gilfoyle’s surprise lasts as long as Dinesh’s win when they both realize what the other just said. Their expressions shift.
“Am I getting under your skin, Dinesh?” he asks, calm, low, his eyes lightly squeezing inquisitorially, and the way he almost hisses the sh in his name is such a low blow he has to know what it made to Dinesh. He doesn’t know. He has no fucking way of knowing. He doesn’t look like someone who knows other than, same as Dinesh, can make an educated guess but won’t bet all his money on it. He never knew, but he’s asking. It’s just him. After all this time. It was always bound to be him. “You marked beard, body hair, tattoos and sarcasm as hearted features.”
“Yes”, he says, or he thinks he says. A sound that barely reminded a word came out of his mouth. It must have been enough, because Gilfoyle doesn't ask, but affirms a moment later:
“That was not random.”
His eyes squeeze when Dinesh says nothing and he asks:
Dinesh’s fingers move on their own account. When he realizes, they’re wrapped around the front of Gilfoyle’s shirt and he’s pulling him down.
Dinesh half-expects to be pushed away, but Gilfoyle’s hand is at the back of his neck just like before, cold fingers touching skin and making the hair there stand up as he feels Gilfoyle coming, his eyes fixed on Dinesh’s mouth.
“Fuck”, he says right before their lips met. “Fuck!” Dinesh repeat when Gilfoyle pulls away and he thinks that’s it, that’s fucking it, oh God I’m so screwed, but then both of his hands are cupping Dinesh’s jaw and he adjusts themselves to open his mouth against Dinesh’s.
He tastes of coffee and cigarettes like some cliché.
In every way, that’s worse than being pushed away.
Dinesh finds the answer to an old question when he's at his knees, pulling down Gilfoyle's pants and red boxers as the other shots him an expression that is very hard to read in return. He has a hung man drawn in stick figures on his thigh. The job is sloppy and the ink is old, greens that used to be black leaking out of wobbly lines and telling him to "be the worst you can be " in terrible handwriting as Dinesh wraps his mouth around his throbbing cock. He wonders if Gilfoyle got that in college, maybe high school, at some very unsanitary place or by the hands of a cool girlfriend, both of them thinking they were so edgy and woke.
He hates that he enjoys every minute of it. He loves that Gilfoyle didn't last more than two minutes in his mouth.
When he comes, his knuckles turn white around the edge of Dinesh’s desk and his other hand hovers on top of his head like he wants to tear the hair there out of Dinesh’s scalp, but he doesn’t even touch. He doesn’t make a sound. His eyes close for a second.
For the first time since he can remember in that dance, Dinesh feels like he just won.
Then Gilfoyle looks down at him, dots of sweat or just oil glimmering on his forehead, breath uneven even though his jaw is tightly clenched, and he opens his mouth and says:
"You have done this before."
There was never a point for Dinesh in lying to Gilfoyle.
Gilfoyle is a creature of habits.
Two new things become part of his routine, and therefore Dinesh's:
1- When they stay late, they find a quiet place to screw around (which mainly consists of Dinesh getting his mouth full);
2- They don't talk about it.
"I don't get it", Dinesh hears Richard talking to Jared one day, both of them standing in front of the board with all the post-it notes. He doesn't need to look to know Richard is chewing his lower lip there, trying to figure out something Dinesh has been waiting for him to figure out for at least two weeks. It took him long enough. "How are we not ahead of schedule if Dinesh and Gilfoyle have been doing extra hours?"
When he looks up, he meets one of those knowing gazes from Gilfoyle. He knows he can't lie to save his life, so he gets up, ignores Richard calling after him and goes to the bathroom. He doesn’t run. He strides. Let Gilfoyle handle finding a believable excuse. It's the least he can do, all things considered.
Richard seems satisfied when Dinesh sits back at his workstation a few minutes later. Behind him, he hears when Gilfoyle quietly says just low enough for him to catch:
"Thank you", Dinesh replies, for the lack of a good come back.
Sometimes, he tries to touch him in a different way and Gilfoyle takes hold of the front of his shirt in a fist. Dinesh never knows if he’s getting punched or kissed. Sometimes, he’s kissed. Most times, Gilfoyle let him go without saying a word and walks away.
When that happens, they don’t do extra hours.
Sometimes, he’s walking through the building and he’s pulled by his waist to behind a door, a vase, the corner of the corridor. Those times, he’s devoured.
When that happens, Dinesh can’t stop looking at the clock.
Sometimes, it’s hot. Most times, it’s just tiring, confusing, stressful.
When that happens, Dinesh just wants it to be over.
It's about half an hour past the regular expedient and Dinesh is opening the back door to his Tesla to drop a box with hard drives when he almost jumps out of his skin to someone tackling him from behind. He starts a scream. It's Friday and most of their employees left early. The parking lot is empty. That morning, Gilfoyle made a fist in front of his polo and glared when Dinesh stepped too close to him in the bathroom. Dinesh asked him, before Gilfoyle walked away, what the fuck was his problem.
He recognizes the awful skull in a top hat ring on the hand that shuts his mouth and keeps pushing him in the car. Also, at that point, he knows very well what Gilfoyle smells like from this range.
"What t-?!" He tries to say, but never gets to finish under the crush of lips and teeth that pushes his head back with force.
It was never like this. Whatever it is.
Dinesh gets the message and shuts up, pulling Gilfoyle with him to the backseat. He paid extra for more leg room and it shows. They fit the most comfortably two adult men tangled in the backseat of a car could. Or at least Dinesh tells himself it’s the Tesla, not the hash breath against his skin or the way Gilfoyle wraps both arms around his waist as he leans down to drag them together with such force he almost lifts Dinesh up from the seat, crushing him under a hot wave that has little to do with the fact that he accidentally turned on the heat. Gilfoyle's arms are not strong, but not soft either. Dinesh digs short fingernails on his skin when Gilfoyle slides a hand inside his corduroys.
Gilfoyle gives him head for the first time since unnamed it started. Under the sheer joy of getting a blowjob at all, Dinesh can tell the other never did this before. Or at least not often. But Dinesh thinks never, for all he has seen. He doesn't care. He would say he cared, if that’s what it takes not to break character, but he feels he doesn’t.
Afterward, he watches Gilfoyle pulling the shirt Dinesh pushed to the back of his neck to feel their skin together. His hair stands in a weird angle, but he doesn't notice, occupied zipping up his jeans. Before Dinesh can think of it, his hand does that cheap trick of moving on their own agenda and he flattens his hair for him. Gilfoyle freezes. Dinesh freezes with him. He thinks of the bathroom earlier, of fear and shame.
Gilfoyle glances at him, then stares at him, like he’s looking at Dinesh but seeing something else in its place.
He asks for a ride home. Dinesh clears his throat and jumps into the driver's seat.
It’s late in the Hacker Hostel - or just their house, it isn’t an incubator since they’re back or maybe even before that.
Bighead bought the robot kit for that Nintendo Labo thing and sat at the kitchen table to put it together that morning. They placed bets for how long it would take him to finish. Jared looked it up online: the max estimated time was about 4 hours. Gilfoyle said that was way too long to spend putting together a children’s toy made of paper. He placed his bet in three weeks. 16 hours passed since. By dinner, they were all holding pieces of cardboard box and reading simple instructions made complicated by all mistakes Bighead made as passing bottles of beer around, calling each other names, every one of them positive they knew the fastest way to finish.
Gilfoyle slapped the back of Dinesh’s head at least four times.
It’s late in the Hacker Hostel, and Richard and Jared left to catch some sleep half an hour ago. Bighead was just calling it quits, stretching out and leaving with a “putting it together with friends is part of the fun, man”. Gilfoyle just glowered after him. Dinesh stayed. He could finish in fifteen minutes tops. And fuck Nintendo, that was more fun than half the games the bought that year and it was just the building part.
Gilfoyle sat by side as they put the parts of their respective pieces together.
A foot kicking at his leg broke his concentration.
When Dinesh lifts his head, he meets a hot breath that smells like beer and cold wet lips under a thick salty beard.
All those sensations that were just Gilfoyle did things to him he didn’t even fully understand, but it isn't strong enough to erase a primal, instinctive fear. He pulls back, alarmed, and looks around frantically.
“They’re sleeping”, Gilfoyle assures, his hand doing a cheap slide up Dinesh’s thigh, his body leaning in, closing the already short distance.
“Here?” The question comes out weak. He didn’t mean the living room; he meant the house. Out of the office. Somewhere familiar and home. If there, where else? If there, any place else? It was out of control, if it was ever under any. Then: “Not here”.
Gilfoyle looks taken aback. Dinesh thinks they’re going to have a conversation he isn’t even half as drunk as he would like to be to have. He only drank one beer that night. But then, as he fights that frightful thought in his head, Gilfoyle gets up from the floor.
He tells himself he isn’t disappointed that the other didn’t insist.
Down the corridor, Gilfoyle doesn’t go for his bedroom but pulls at Dinesh’s door. He sticks his hand inside, half hidden by the darkness, and grabs for the key. The door closes again. It’s quiet, so Dinesh hears, or maybe he just imagined it, the click when Gilfoyle locks it. He makes a show of putting the only key to Dinesh’s locked bedroom inside the front pocket of his tight black jeans.
“Good night”, he says, flatly, and goes into his own bedroom.
The door is left wide open.
“Fuck”, Dinesh mutters under his breath and follows.
Whatever he was planning, Dinesh can't miss the surprise in his eyes undressed of glasses when asks Gilfoyle if he has lube.
And whatever he thinks of it, he says nothing, as Dinesh says nothing about how he has been keeping himself prepared for weeks since Gilfoyle started pushing a finger inside of him as they pulled their extra hours. Just in case. It’s not like he’s waiting for Gilfoyle to push something else inside of him or anything, except it totally is. He’s sure he sounds overeager. Gilfoyle doesn’t seem to notice. His eyes are too surprised. It’s a weird look on him.
When he talks, it’s been a long pause and it is to say that he does not.
Dinesh puts his hand inside the front pocket of his already open tight black jeans and takes the key to his bedroom. Before he goes, he gives the coder laid on his back in some messy sheets a kiss and tells him he’s coming back.
The lube is in his messenger bag, just in case. Holding it at the door, Dinesh doublethinks. He takes a dirty shirt from a chair, opens the cap, breaks the seal, tries to calculate how much should he pretend to have used before giving the new bottle to Gilfoyle (too much and he’d look like a whore, too little and he’d look like a virgin), presses a couple times and hopes it’s enough before rushing back to the room across the hall.
Gilfoyle lifts his eyes from between Dinesh’s legs noticing the bottle has been used. That's his only reaction.
The lights are off for the others to think they’re sleeping in case they pass through the door outside. A bedside lamp Gilfoyle has, though, shines enough to illuminate both of them in strange blue lighting. Gilfoyle breathes on Dinesh’s chest and kisses his collarbones. They’re both naked, which is a first. Dinesh doesn’t remember to look for the other tattoo, too distracted by the way Gilfoyle holds himself in a hand and teases between his cheeks, presses against his hole just enough to make his mouth water but doesn’t push inside.
It takes forever and it’s a lot but also not enough.
When he finally pushes in, he bends one of Dinesh’s knees and pins a hand down the mattress with his own. Dinesh thinks that’s an excuse for him to hold his hand.
It’s different from what Dinesh has been picturing for a good five years now, which is the only thing that makes sense and grounds him when his mind is doing circles around what's happening for the past month. Months. If he thinks of months, plural, he'll have to acknowledge they've fallen into a pattern. Month. Singular. Just a really, really long month.
They kiss long and his hips move slowly, like he’s being careful not to hurt him, like he’s trying to make this last, like he has no fucking clue of what the hell he’s doing in there fucking Dinesh and is still looking for answers.
When it gets too much the moment their eyes met, Dinesh locks a calf by the back of Gilfoyle’s waist and pushes him sideways, gets on top of him in the same movement, not even taking a moment to appreciate the surprised sound Gilfoyle makes before taking his hard cock in a hand and holding it up to sit on it. He rides him hard and deep and Gilfoyle holds onto his thighs with gripped teeth just like he pictured. Dinesh rides him until he stops thinking about stupid things like holding hands and making love and can only think of fucking until he loses his ability to think of anything else other than Gilfoyle’s cock filling him.
He wakes up the next morning and Gilfoyle is at his phone by his side.
Dinesh says he’s sorry. He didn’t mean to stay overnight. Shit. God. Sorry, dude. It was an accident. It won’t happen again. He should have woken him up. Fuck. He acts embarrassed and pretends to be convincing as Gilfoyle pretends to believe him.
Three days later, he just wrapped up a meeting with his part of the team when something different happens. That’s what Dinesh calls it: different. It’s not a lie. He’s fluent in four languages and he can’t think of a better fitting word in any of them.
Becky gives him a final understanding nod to the instructions they have been talking about and turns to Gilfoyle’s desk.
Dinesh sits down, clicks the mouse to lit the screen, half listens to but doesn’t pay enough attention as she asks her rival boss if he’s user Luci4 at some dumb online forum. Dinesh doesn't have to turn his chair to know Gilfoyle is staring at her with dead eyes and a distant, smug pose, saying a lot by saying not a word. Becky isn’t new. She has some idea of how Gilfoyle works by now and Dinesh suspects he isn’t half as feared by their employees as he likes to think he is. Antagonizing with only Dinesh for so many years must’ve made him too confident on his intimidating abilities. Becky is not as easily amused as Dinesh. Usually, Gilfoyle’s thing doesn’t really work with women. They must be able to smell the bullshit from miles away. They’re familiar with all the tricks a tech guy can pull to fake being more interesting than the average creep.
“So, a friend of mine dug that out. She knows I work with you and is bullying me into figuring out if you’re single.”
Dinesh clicks the mouse again.
“Are you asking for a co-worker's personal information in the workplace?” Gilfoyle's voice sounds normal, and by that is emotionless, flat, hard to read. “I'm not an expert, but... Relationship status, that sounds like sexual harassment to me.”
“Wha-? It’s not for me!”
“Sure. It’s for your friend.”
Her eye roll can be heard in the next words, spat with disgust: “You wish.”
“Should we get Jared here for this?”
Becky actually snorts. “You know what? Forget it.”
The reflex on his monitor shows her going back to her desk.
That night, he finds the fourth tattoo. It’s hidden under the long hair, thin black lines running along the curve of the back of his left ear. Dinesh has to slide closer under the covers to read it. It’s dark. He squeezes his eyes. Gilfoyle‘s breath smells of Mexican suasse and onions and it's really unpleasant. He should've brushed his teeth. Dinesh wants to tell him to go, but he's quietly snoring on his chest, the strong odor clashing at the side of Dinesh's neck.
Omnia mutantur, nihil interit.
By morning, Dinesh would google it. By now, he adjusts his arm that is going numb under Gilfoyle’s weight and keeps playing with his hair until he is, too, asleep.
“What are we?”
Gilfoyle looks up.
“What is this? What are we?”
He says nothing for a while, and then: “You do realize I’m stripping down your pants, don’t you?”
Dinesh roll his eyes. He has to, the alternative reaction being a scream. “That’s supposed to make everything clear as day?” He can sense the annoyance in the way the other goes rigid and his face is more blank than usual. “Shit. Yeah, I know we’re fucking. That’s clear, thank you, that much I figured. But that’s not what I asked.” Gilfoyle let out sigh and sits up. Dinesh sits after him, fast trying to patch the damage his big mouth made. “That’s not-! I mean, I’m just trying to understand what we’re doing here.”
“I don’t like labels”, is what Gilfoyle offers him in response. He’s crossing his arms now.
“Okay, that’s completely horseshit. Your whole resumé is made of labels. Dude, you have labels tattooed on your body. I don’t even know what half of the pretentious shit you proud yourself in being part of are.”
“I recognize the positive takes on sharing one's beliefs as a group, which doesn’t mean I like to label my interpersonal relationships. It’s a waste of time.”
Dinesh considers this for a moment. It’s still bullshit. “You were Tara’s boyfriend”, he says and watches Gilfoyle’s body posture change. He seems to get something out of that conversation Dinesh doesn’t yet. He waits. He has been waiting for a long time now, he can wait a minute or two longer. His anxiety grows in the too quiet room, eyes fixed on the ugly ring he's wearing.
“Is that what you want?” The question doesn’t sound annoyed or defensive as before, just sincere curiosity. “A boyfriend ?”
Dinesh panics at the sound of that word. It shows.
“I don’t know. I don’t fucking know. That’s why I’m asking you.”
“This is weird when we start talking.” He doesn’t meet Dinesh’s eyes, either.
“Oh.” Dinesh orders himself not to feel disappointed. “Okay”. He’s not heartbroken. “Fine, we can...” This is fine. “Let’s go back to what we were doing, then?”
“I believe I was about to take your pants off” Gilfoyle reminds them and goes back to it.
Dinesh manages not to accidentally fall asleep on Gilfoyle's bed the next time.
And the next.
And the next.
The next one, Gilfoyle accidentally falls asleep on his.
The music is unnecessary loud and goddamn awful. Shifting his eyes around, Dinesh thinks he’s the only person in the whole club wearing colors other than purple or red. Or black. There’s so much black. What was Gilfoyle thinking?
“Hey”, he reemerges from the crowd with two beers and offers Dinesh one.
At least there’s alcohol. It doesn’t make the music lower, but it does make the beats more pleasant. They’re sitting at the bar and Gilfoyle watches him. He’s almost smiling. It’s creepy.
“What are you so cheeky about?” Dinesh rises an eyebrow.
“I’m not”. Well, cheeky was a hyperbole. He doesn’t answer. Dinesh has a guess that Gilfoyle finds it humorous how out of place and uncomfortable he looks. That’s probably why they’re there, anyways. It’s torture. He chooses not to engage and doesn't complain. He should’ve known an invite to go out for drinks came with a tricky turn.
They shout into one another ears while they drink, mostly discussing work; or rather, dragging each other's work through the mud and dropping light teases here and there that were once the whole point, but now just feels like a savepoint in a long quest. The important part is yet to come and this is just safe, familiar, a part of the game you have to play along with. He wonders if that’s the kind of place Gilfoyle went out to when he was living alone. He never went out much when they were living together, or at least not when Tara wasn’t around. None of them exactly has social skills, but he doesn’t know what single Gilfoyle does. Maybe he goes out. To bars. Like that one. Weirdly enough, Dinesh can picture it.
There’s a live band playing some angry teenager music and Gilfoyle stops talking to listen. It doesn’t even sound like English to Dinesh. Gilfoyle moves his head with the beat. Moderated, restrained, just a light swig compared to the people hair whipping like they're lip-syncing for their life in the small space, but he seems to be enjoying himself. Dinesh wants to kiss him. He occupies his mouth with his drink.
“Just a sec, it’s our turn.”
“It’s what now?” Dinesh squeaks.
Gilfoyle gets up and elbows his way across the audience to get to where a new band is setting their instruments. Maybe he died and this is what retaliation heaves looks like. Oh God, he could mock the living shit out of him for years. Gilfoyle is in a band. He is a motherfucking rock band. A grown ass adult man with a full-time job. Dinesh is torn between second-hand embarrassment and trill that Gilfoyle is giving him an early Christmas present. He’s going to enjoy this.
He non-ironically does enjoys it.
Not the music, of course. It’s awful. A series of loud guitar noises and screams and he’s pretty sure he heard the word “nazi” at some point (but he also heard “kill”, “murder” and “burn” several times, so that could be a good thing?). But he enjoys watching Gilfoyle play the drums. Dinesh was never particularly adept to music, he doesn’t have the repertory to judge if he’s any good, but it’s the way he’s confident about it. His head moves with the beats and his hair flies. He’s sweating and more energetic than Dinesh ever saw him and he realizes with horror that what is making his mouth spread a smile across his face is a crushing feeling of endearment.
He loves him. Even the embarrassing, wacky, arrogant parts. He doesn’t know why but he loves him.
It’s so ridiculous to even consider that this may work, but it may.
When the band stops and Gilfoyle comes back, panting and sweating, Dinesh kisses him. He’s hot and slippery, and there’s a moment of surprise there, but he slides his hand under Dinesh’s lower back and kisses back.
“I could mock the living shit out of you”, Dinesh says when they’re sitting again and ordering more drinks.
“Yeah, you could”, Gilfoyle answers knowing that he wouldn’t. Not anymore. And Dinesh realizes what the tricky turn was, after all.
"Are you ready?"
"Yeah just a-... Hey, Dinesh."
Dinesh turns around from the microwave to see Gilfoyle walk in his direction, bag hanging from the shoulder.
"Hm? What do you want, man?"
"Can you make sure my last commits are showing in the server before heading out? The fucking network is unstable, I'm going to need to check on that first thing tomorrow."
"Shit, again?" Richard frowns and chews at his bottom lip. "Can't you take a look at it now?"
"I've plans, Dick."
That's when he sees Monica getting closer. She's checking on her watch behind Gilfoyle's back.
"What plans?" Dinesh asks about the same time as Richard takes in a deep breath to start rambling, an eyebrow pulled up as far as possible. Gilfoyle squeezes his eyes at him in return. The others don't seem to notice.
"We're going to a wine tasting" she answers in a dismissive tone, eyes on her phone. "Just a dumb thing I've invites to and didn't know who'd want to go to this fucking event in the middle of the week." That has Richard blinking, lightly shaking his head as if he's surprised by not being the one invited. He even points at himself. It's hard to watch. Monica opens and closes her mouth a couple times. "Well, you... I didn't know you were interested in this kind of thing, Richard. I've never seen you talk about wine before and I only had two passes. No offense, but you can't hold your liquor."
"Well, it's a wine tasting, you're not getting drunk on it."
"Oh, you bet we're getting shitfaced on expensive wine, Dick. So," he turns back to Dinesh, "is it in the realm of your abilities to check if new files showed at your computer screen? It's the little yellow icons that look like folders."
Dinesh pouts, unimpressed.
"Unless you want to come?"
His eyes open wide. The mug almost slides off his hand.
"I have a third invite."
He doesn't even register Richard tired expression at the revelation.
Dinesh couldn't think of a more dreadful way to expend his evening than pretending to understand anything about wine with Monica and Gilfoyle, or doing anything with Monica and Gilfoyle, for that matter, but it's the fact that Gilfoyle asked that strips him from a reaction. No one in the office knew exactly what was going on with those two. Even Dinesh didn't know for sure and hasn't felt like he had the right to ask. They haven't decided what it was. Truth be told, he was afraid of what the answer may be. Even after everything. Especially after everything. He did ask only a few weeks back, when they were playing Battlefield and Gilfoyle died answering a text from Monica. Dinesh was quiet for the rest of the evening. Later, when they were sharing a bottle of beer by the pool, Gilfoyle asked him what was wrong. Dinesh told him. He felt silly. He felt better after. They talk now and that's new, but Dinesh thinks new limits can bring good thinks if he's willing to try. They're trying. They've tried everything else but honesty already.
"Nah, pass. Go have fun."
"Okay. Don't wait up for me."
"Maybe I will", Dinesh replies and Gilfoyle stops before turning around. He has said those exact same words before. It was an embarrassing mistake at the time, and just like last time, Gilfoyle shots him a blank stare that says a lot by saying nothing. It's different now. Everyone may still think he's just embarrassing himself, but Gilfoyle knows. He's looking at him like he knows. "Wait up for you." The mug goes up to cover a short smile as their eyes lock. "What are you going to do about it?"
A pause. Then, Gilfoyle snorts loudly. He gets closer to the kitchenette isle, wraps a hand in a fist around the front of Dinesh's polo and brings him forward to meet his lips halfway.
It's brief, but it's long enough.
"Do wait up, then, and you'll see."
He winks, let go of his shirt, turn around, walks away.
Dinesh only moves again when his body reminds him he needs to breathe.
"What?", he shows his hands for emphasis. Richard is staring at him. The whole office is staring at him. "What? Don't you all have work to do?"
It doesn't sound like the disproving threat he planned when he's grinning like an idiot, but he doesn't care.
Omnia mutantur, nihil interit. Everything changes, nothing perishes.