Work Header

Love Languages

Work Text:

The first time Crowley saw the new QAer, his first thought was Tartan?

His second thought was Lot easier on the eyes than the last one, because Shadwell had been the kind of person who just got grouchier and more bigoted as they aged, and that wasn’t a good look on anyone.

The new guy was posh but polite. Very blond, very fat. Looked like he’d willingly smiled at least once in his life. And he was one hundred percent, absolutely, exceedingly queer, which automatically made the two of them halfway to being on the same side already, as far as Crowley was concerned. Solidarity and all that.

“Aziraphale,” Crowley repeated, taking the offered hand. They traded an unremarkable handshake.

How he didn’t realize, then, what a privilege it even was to share a room with an angel, he’ll never know.

//if you can figure this one out you know where I’ll be
public class forAngel {

Crowley has moved from contracted junior programmer to managing dev on the entire enterprise system, but Aziraphale is happily plugging away at the same old job more than ten years later. He’s phenomenal at it, is the thing. Being fussy and precise apparently makes him very good at flushing out code bugs. Although, of course, Crowley likes to tease that it’s just QA being so much easier than development, you have to learn whole new languages to write code, and testing just means working in same old English, now doesn’t it? Seems like cheating, honestly.

Aziraphale maintains that there’s no great talent needed to learn a programming language and that Crowley is just trying to make his job sound more impressive.

It’s been their running gag for almost their entire friendship. When Aziraphale taught himself Python so he could start reading some of Crowley’s source code, returning it to him printed out with snide little comments written in the margins, Crowley’s second reaction was to laugh until he got the hiccups.

His first reaction was an unexpected urge to pull Aziraphale close and kiss his round, pretty cheek.

All these years later, the urge is very expected, very familiar, and he’s an expert in the field of Not Doing That Thing.

public void Initialize()
Screen.Clear(); //start fresh
//I wouldn’t want to for real though. it’s worth it, it’s all been worth it and more. wouldn’t forget any of it.
crowleyutils.scrambleddata.Start(); //source code for this handy little bugger is only on my computer so don’t bother trying to look it up
//but if you're wondering yes i have definitely been using it to sneak encoded references to gabriel's arseholeishness into production
answer = NullValue; //initialize stuff
correct = False;

There’s a huff behind him. There is exactly one person in this entire organization who stands in the entrance to his cube being pouty instead of knocking, so he waits just long enough to be annoying before letting his chair spin slowly around.

Aziraphale looks less than impressed at his extra-wide grin.

“Why, Mr Fell,” Crowley says, his rotation stopping to precisely face Aziraphale, because he has spent a lot of time studying office-chair velocity versus resistance over the years. “Whatever seems to be troubling you?”

“As if you don’t know,” Aziraphale shoots back. He raises one hand to dangle a few sheets of paper like they’re a sack of drunken rats. The text printed out on them is familiar, mostly because it’s the code Crowley just turned in for testing last night. There are a few areas circled or annotated in a fastidious hand.

One of the circles has been drawn around column 73 of nearly every line of text.

“Really, my dear fellow, if you want to spend your time on these sort of shenanigans, you could at least bother to write code that actually works first.”

The sound Crowley makes is definitely not a cackle, because he’s obviously way too cool to do something like that. It takes him a while to tone the laughter down to quiet snickering, though, and Aziraphale is definitely having trouble keeping that frowny face.

“My code’s brilliant and you know it.” He hands the pages back with another huge grin. “You’re just mad that the truth is going to be in the repository for the rest of eternity.”

It took a lot of fiddling with comments, but the letters in each line of the seventy-third column of text now spell out tartan is not stylish when you read down.

Aziraphale huffs one more time. The pages are resorted neatly, bottom of the stack tapped against the top of his belly to true them up, before he deigns to look at Crowley. “It is a foul and grievous lie, and no matter how you may try to spread it, your evil plans will always founder on the rocks of iniquity.”

He leans over, his precious round body so close that Crowley can feel the warmth off him, and sets his pages down on Crowley’s side desk so he can start pointing out his notes.

Too soon they finish up. “Lunch?” asks Crowley, because he wants as much time with Aziraphale as he can possibly grab with his own two greedy hands.

“Give me two shakes of a lamb’s tail and then I’m all yours,” says Aziraphale, because nobody else could ever be that irritatingly adorable.

public void Run()
String encodedquestion;
String encodedanswer;
//no peeking at the source code to see the answers *or* the questions.
foreach (message in crowleyutils.secretmessages)
correct = False; //reinitialize for each question-answer pair because nobody gets across the Bridge Of Death by answering the old man from scene 24 this question *one* okay

The next day they go out for lunch again. That weekend they spend an evening at Crowley’s, sprawled companionably on the sofa; or at least, Crowley sprawls. Aziraphale just relaxes back a bit into the cushions. The lamps are dimmable and very expensive and Crowley keeps them turned down just low enough for Aziraphale’s hair to shine like starlight.

“It’s Nineveh, you know,” Aziraphale says at one point.

Crowley squints into his own wineglass for a moment before deciding that Aziraphale’s face might have more answers. “What is?”

“The capital of Assyria.” A little line appears between Aziraphale’s brows when that still doesn’t ring a bell. “You remember, we were talking about it a week or two ago —”

“Oh, the, the thing. Right.” Somehow Aziraphale has missed half the nerd classics, and most of the British ones, so Crowley has been slowly catching him up. He’s really not sure how it took this long to get to Monty Python And The Holy Grail. “So that’d stop you getting hurled into the Gorge of Eternal Peril, huh?”

“Well, assuming you were asked that question.” Aziraphale’s shoulders bob as he warms up to the topic. “It wouldn’t help if it was, oh, what was the first Sherlock Holmes novel —”

And Crowley’s smiling again, because of course he is. “What color is Char’s Zaku —”

“— when was the first postage stamp ever printed —”

“ — what’s the Konami code?”

The sound of Aziraphale’s laughter is just as beautiful as ever. Just like his face, and the way he moves, patting his own thighs delightedly, because he’s just too full of happiness and has to let the extra out somehow. His hands have always spoken for him in all his moods. It’s Crowley’s privilege to have learned to translate them.

Although there are a few phrases in the language that he still struggles with. He catches one of them near the end of the evening. Looks up from fiddling with the label from the wine bottle, and Aziraphale has one perfect fat hand resting against the lapel of his waistcoat, over the left side of his chest. He’s looking at Crowley. Their eyes meet.

Something that doesn’t look happy drops off Aziraphale’s face just a little faster than Crowley can name it. The hand lowers to the sofa and goes still.

“Okay there, angel?” Crowley asks quietly.

Aziraphale blinks rapidly, mouth opening and closing a couple of times, before looking away again. “Tip-top,” he says, and if his cheeks seem darker pink than usual, well. Probably it’s just embarrassment over being so adorably irritating as to call something ‘tip-top’.

They call it a night not long after that. Crowley drives Aziraphale home, and barely catches himself about to add a “love you” to his “g’night”.

while (NOT QuitCancel() AND NOT correct) //listening for standard quit commands which I *wish* there were in real life, so easy to understand perfectly then, none of this endless wondering if I should slow down or stop or just back off forever
encodedquestion = message.Q;
encodedanswer = message.A;
Screen.PrintLine(crowleyutils.Decode(encodedquestion));//print the actual question

It’d been sneaky, was the thing. One day Aziraphale was a stranger, and then he was a friend and then one day he smiled and Crowley’s heart just stopped. From day one he’d thought the angel was nice-looking. Suddenly that’d been upgraded to gorgeous. The power of love, Crowley supposes now.

Somewhere along the way, he fell in love with Aziraphale.

“Oh, you absolute treasure,” Aziraphale says one morning, when Crowley saunters up to his desk with a packet of fancy tea from the fancy teahouse near his place. “You know I’ve been meaning to get around to a resupply for ages.”

Crowley shrugs. Their hands slide against each other as he relinquishes the tea, and Aziraphale’s is as prettily soft as ever. “Wasn’t a big deal,” he says honestly. Follows it up with another true statement: “I like being able to do stuff for you.”

Aziraphale’s answering smile fills Crowley’s heart up with familiar sunlight. “I rather think it should be my turn again by now. Dinner tonight, my treat, assuming you don’t mind driving? We could go to that awful little diner you love so much.”

“An insult? To my taste?” Crowley flails swoonily against the wall. “Such cruelty can only be rectified with waffles. Extraordinary amounts of waffles.”

“Wretched man. I’ll be ready sevenish.”

“And your chariot shall await.”

Crowley delivers that statement with a sarcastic little bow. He means it, though. His happy place is behind the wheel, and the only thing needed to make the experience perfect is Aziraphale, complaining about following distances and turn indicators beside him.

A pleased little grin hovers around Aziraphale’s eyes, even though he’s putting a fair bit of effort into looking severe. “Now, do run along, there’s a good chap. Some of us around here actually work.”

Three words still struggle to burst free of Crowley’s throat. He bites them back again. “Right. Later. Sevenish.”

Input.ListenFor(answer); // I should just tell you, honestly, it’s a fucking cowardly thing to not, but even this is taking more bravery than I think I actually have
// and how’s that for fuckin cryptic
if (QuitCancel()) //quit command detected
exit; //you always can. no matter what you have to say after all this, you can always, always go. Not my or anyone’s place to stop you. }

For a while Crowley figured he’d just let it go on forever, the pining. Aziraphale should have whatever he wants. If that’s a deep friendship, then Crowley will be damned before he gets in the way — before he lets his feelings get in the way. He wants them to still be hanging out and gently antagonizing each other fifty years from now, assuming that’s what Aziraphale wants, too.

The problem is that his subconscious is getting more and more insistent that no, actually, he needs to admit everything now. He’s caught himself halfway towards kissing Aziraphale, on the nose or cheek or round perfect chin, more and more often. Halfway towards pulling him close and holding him with all the tenderness he deserves.

He got three entire words into “Goddamn, but I love you” last week, after Aziraphale informed him with a straight face that geology was his favorite science because it was rock-solid.

It’s become apparent that his secret’s coming out, one way or another. This is just his pitiful attempt at having some kind of control in the matter.

if (crowleyutils.Encode(answer) == encodedanswer) //see if entered answer encodes to correct gobbledygook
{ correct = True;
//okay next question then
// try again I guess. is it worth it to try again? is it stupid? I don’t know. }

So: one more piece of code, saved to a thumb drive and left on Aziraphale’s desk. Nonsense to anyone else, but he hopes that his clever, beautiful angel will be able to see what it means.

public void Shutdown()
// that’s it. if you make it through all the questions then you know. }

It’s the closest Crowley can make himself come to a confession.

Aziraphale isn’t sure what to make of the USB stick sitting atop his notepad, at first. For one thing, he thought he was the only one who’d stayed this late today. There shouldn’t be any new development ready for QA for at least another week or two, and even if someone had gotten that far ahead of themself, they wouldn’t hand off their work like this. Perhaps a vendor managed to sneak their way in with a load of branded trinkets again...?

Then he sees the design on its side. It’s not a professionally-printed logo but a small drawing in marker, one swirling line that brings a familiar smile to his face. Crowley has left this little doodle on notes and whiteboards and the tags of countless wrapped gifts, ‘From:’ and ‘To:’ labels left ignored. Why he settled on a snake to serve as his metaphorical calling card, Aziraphale will never know. Although it’s true that Crowley can remind one of a serpent. He is elegant and slender, and very lovely, and he has rather charmed Aziraphale utterly.

The mystery object is from him, then. It’s even odds on whether this is some manner of prank or an attempt to share his ridiculous bebop again. Aziraphale settles in at his computer regardless.

“What the devil are you playing at...”

His self-directed mumbling trails off. There is only one file on the drive, a little scrap of a thing, a handful of kilobytes; source code, judging by the file extension. The file name is RunMe.

The code itself is decently well-documented, but only confuses him more.

Aziraphale rests his elbows on the desk, lacing his fingers under his chin. Crowley’s pranks are light-hearted things, at least when directed at people he doesn’t have some grudge against, and they’re usually obvious almost right away. It isn’t like him to leave cryptic statements like ‘no matter what you have to say after all this, you can go’, only so he can pop out of a storage cupboard and have a laugh. Aziraphale is therefore inclined to take this seriously. With that as his context, he almost feels as though he can glimpse something familiar behind Crowley’s words. It feels rather like thoughts he’s experienced himself. Thoughts about what one can have, and what one cannot.

He’s reading too much into it, of course.

He starts up the runtime environment and loads in Crowley’s forAngel program. Five words appear on the screen.

what is best in life?

“Wh...” Aziraphale allows himself one mild eye roll. “This is from that movie you had us watch, the one based on Howard... what was the line...”

to crush your enemies, et cetera, et cetera, he types with mild pique, and apparently the questions will not require exact answers, because the next prompt appears onscreen.

what is best in crowley’s life?

That stops him a moment. The first question and its answer were silly, one of those pop culture references Crowley does so enjoy. This second question does not feel silly.

He tries car and driving and Bentley; he tries shouting at your poor beleaguered plants, even though he’s fairly certain that won’t be it. insisting on wearing all black even in the height of summer brings him a brief moment of satisfaction but does not allow him to advance.

Aziraphale thinks, again, of the comments Crowley left for him to read. They speak of bravery and honesty, two qualities Aziraphale himself could perhaps use more of.

His hands are remarkably steady as he tries his next answer.


The third question fills his screen.

do you remember the very first time we went for lunch together, the restaurant human asked a question? and we both laughed at him, stupid question, wasn’t it. except i guess only half stupid after all. you had an answer for him though.

The steady thrum of Aziraphale’s heartbeat has picked up a noticeable flutter. It’s been years, now, what feels like half a lifetime, but he remembers.

They’d formed a casual sort of acquaintanceship right away, chatting in the hall, nodding to each other across the break room. Then they’d begun to each seek out the other, now and then, joining up in the break room or cafeteria. It was an easy slide towards one of them (Aziraphale) suggesting they pop into that new restaurant in the building next door, and the other (Crowley) agreeing to come along.

The fellow who waited on them was pleasant enough. When it came time for the bill, he smiled as though the three of them were all in on some secret.

“Love seeing a first date so obviously going well, if you don’t mind me saying. Separate bills? Or will one of you gentlemen be getting both?”

Aziraphale, startled, had looked at Crowley. Crowley stared right back across the table at him.

Then Crowley had grinned with absolutely fiendish delight. “No worries, Aziraphale, I’ll let you get it. Wouldn’t want to deny you the privilege of paying for our date.”

Aziraphale responded to that with his very best arch look. “Separate bills, thank you,” he said to their waiter. “And I’m fairly sure this hooligan couldn’t manage the gravitas of a proper lunch date. Perhaps a walk about a park, so he could satisfy his need for mischief by bothering the poor ducks.”

The fellow was plainly embarrassed by his mistake. They neither of them took offense, although they did laugh about it all the way back to the office.

For a while after, the two of them made a running joke of it. They seem nice, Aziraphale would say of a person Crowley took a fancy to, or Crowley would say about one of Aziraphale’s celebrity crushes; but would you take them to the park and bother the ducks with them?

Now, with the third question still glowing across his screen, Aziraphale realizes just how long it’s been since Crowley mentioned fancying anyone.

Yes. He remembers the answer he’d given the fellow at the restaurant. And there is a very nice little park not ten minutes’ walk from here. It has a pond, and a particular bench beside that pond, and a particular sort of waterfowl often found floating on top.

Aziraphale knows exactly where Crowley will be.

He gives himself one more small task before leaving the office for the day. And if he perhaps rushes somewhat on his way to the park, almost steps into traffic at one point, nearly trips when he sees a flash of red hair through the thin screen of trees — if he does, in fact, do all these things, well. It’s a secret between him and his trembling heart.

Crowley doesn’t say anything as Aziraphale’s footfalls whisper through uncut grass, nor as the bench creaks under his weight. There are no ducks today. The sun is dimmed by a long streak of cloud.

“Well,” Crowley says at last.

“Right.” Aziraphale clears his throat. “Yes.”

Crowley slumps, there just on the edge of Aziraphale’s vision. “Been here a lot, we have.”

This bench is a favorite haunt of theirs, true. They’ve probably spent hundreds of hours here, and watched (or, depending on whom one is talking about, bothered) hundreds of ducks. Aziraphale is halfway surprised the seat hasn’t been worn down to show the distinctive prints of their bottoms.

What he says to Crowley, though, is “I don’t think we have been, actually.”

It’s several tense seconds before Crowley replies “Wot?”

“I mean, yes, obviously we’ve sat on this bench before. But we haven’t...”

Aziraphale finally looks over at Crowley, into golden eyes already trained on his. “We haven’t been where... I think we might be going.”

Bravery, he reminds himself, as Crowley’s eyes widen slightly. Honesty. Crowley’s mouth tightens almost as though he’s expecting a blow.

“I’m not — I haven’t much practice with this.” Aziraphale tries on an apologetic smile. “But I thought, maybe, if I wrote it down...”

His final task, back at his desk, had been to rummage up some blank paper and a pen. What he draws from his waistcoat pocket now is that same paper, no longer blank.

Their hands touch as he passes the folded note, and Crowley’s is as dear and knobbly as ever.

“Huh,” Crowley says. It’s a rather vague sound, as though he’s not even sure whether or not to be confused. Then there is the crinkle of the paper unfolding — Aziraphale doesn’t have the nerve to watch now, his bravery having failed him after all — and then a harsh intake of breath. “Huh,” he says, with much less strength than before.

Aziraphale has just a moment to pray he has not horribly misjudged.

“So I.” Crowley pulls in another ragged breath. “Shouldn’t slow down, then.”

Don’t,” Aziraphale all but snaps, fighting down the need to wring his hands. The words tumble out of him now that they’ve finally been let free. “Don’t slow down, don’t back off, and if you still — if you’re willing, if I haven’t waited too long in my cowardice —”


The familiar name is spoken with such gentleness that it startles Aziraphale out of his thoughts. His eyes automatically find Crowley again.

There is something wet on Crowley’s cheeks, but he’s smiling, and his arms are open. “C’mere.”

Crowley’s chest, it turns out, is warm and sturdy. His arms around Aziraphale’s shoulders are slender but strong. His fingers are so very careful, as they move rhythmically through Aziraphale’s hair; it’s as though Aziraphale is something very, very precious, someone deserving of the most tender care.

They hold each other for some time. When Crowley’s lips find his cheek, he shivers, a little. Crowley makes an utterly adorable squeaking sound when Aziraphale kisses him, though, so that’s all right.

It isn’t like a ton of people visit Crowley’s desk, not really. But his cube is missing the top panel facing the window, so his little green friends can get more sun, and it’s a relatively high-traffic aisle on the other side. People can’t help but glance in occasionally.

Some of them get curious about the picture frame sitting right by his monitor. Usually that’s the spot you’d expect to see photos, of the wife or the kids or whatever; and Crowley definitely has plenty of photos he’s eager to show off, all of them featuring the gorgeous ethereal creature who has seen fit to grace his life. Those are pinned up all around the cube, though. Not framed. He’d have to put a second mortgage on the house if he wanted to buy that many frames.

The single very fancy picture frame on his desk does not have a photo in it, or really any kind of picture at all. It’s just a piece of cheap notebook paper with something written on it, obviously folded and toted around in someone’s pocket for a while at some point. It’s maybe got some water stains too. The almost disturbingly tidy penmanship is nothing like Crowley’s own casual scrawl.

while (Aziraphale)
Aziraphale.Loves(Crowley) = True;

He’s kept the piece of paper for years and years. It wasn’t framed at first, but then he realized that if he kept taking it out to unfold it and smile at it again, he wouldn’t be able to hang onto it for all eternity. Now it’s safe behind glass, this tiny fragment of the past which changed his entire future.

His phone buzzes at him.

Plans for tonight?

hoping to have dinner with this obscenely hot guy. maybe drinks, maybe even take him back to mine after if I’m lucky

He doesn’t really have time to get back to work before the response triggers another buzz. Specifically your place? Not his?

nah I guess he’s married to some weirdo, Crowley sends back. He’s trying not to laugh loud enough for anyone nearby to get curious, but it’s hard. talks to plants, can you believe that?

Do be kind, dear. I’m sure the fellow is as sweet as he is handsome.

Now Crowley does laugh. Everyone at his new job already thinks he’s bonkers. It’s fine.

hope you’re still in the mood for sushi, angel

The set of emojis Aziraphale sends him, a row of sushi followed by hearts, seems a pretty clear answer.

Drinks would be lovely too, naturally. And I hope it’s not too forward to admit that I was planning to go home with you afterwards.

Crowley can imagine Aziraphale’s expression as he sends his fastidiously-capitalized texts, all bright grinning eyes and soft mouth curving with glee. Perfect for kissing, that mouth, and here Crowley is stuck at work like some kind of responsible person.

isn’t home unless you’re there anyway

Sounds like a cheesy line. He means it with every subatomic particle in his entire self.

Sometimes Crowley gets distracted by work and loses track of time and then it’s suddenly 8:30 PM and Aziraphale is calling him to ask if he’s forgotten where he lives again. He might or might not have set about eighteen alarms on his phone to try to avoid that today. He’s not about to admit it to anyone, though, and either way he manages to barely be late at all, walking in their front door and into the arms of the man he loves. Which counts as a flawless success if you ask him.

“Angel,” Crowley says, hands resting on the pretty rolls of his sides. They share one quiet, perfect kiss.

“Dinner,” Aziraphale reminds him, eyebrow rising delicately towards his curls.

Crowley squeezes him closer for just a second.

Then “Bit nippy out,” he says, and Aziraphale nods and goes to fetch a jacket. He also brings back matching scarves for the two of them to wear. The pattern on them is by now a familiar presence in Crowley’s life.

It’s hard to suppress a smile as Aziraphale steps closer, frowning just a little in concentration, fussing with Crowley’s scarf until every fold of fabric is to his satisfaction. Then again, Crowley doesn’t have to suppress it. He smiles, and Aziraphale beams back, and in another minute they’re both bundled up, ready to go.

Tartan. Tell past Crowley he would someday be wearing tartan willingly, and he’d probably laugh right in your face. But present Crowley is warm for more reasons than just the unfashionable scarf, and lots better ones, too. His hand’s snuggled in warm, gentle fingers. There’s a glow somewhere deep in his chest.

Aziraphale’s eyes crinkle at him. “Good luck with your young man tonight,” he says brightly, just innocent enough to fool no one at all. “The one who’s... what was that charming expression... ‘obscenely hot’?”

Crowley squeezes that lovely fat hand gently, because there, that’ll show Aziraphale; only then Aziraphale just squeezes right back, which isn’t anything like fair at all. “He’s the whole package, angel. Clever, and beautiful, inside and out. But the best part.”

They’re at the car now. Aziraphale looks up at him, soft and adoring, and Crowley pauses just for the chance to look right back.

“Best part is, I’m gonna take him to all the parks. Bother all the ducks.”

A huge smile pushes Aziraphale’s cheeks even rounder. “There are a lot of ducks in the world, you know. You’d be at it a very long time.”

“And that’s why it’s the best part.”

The glow in his chest flares brighter when Aziraphale laughs at that, a quick little chime of delight. How he ever lived without that laugh, he’ll never know. But now he has it — he has Aziraphale, every glorious bit of him — and they may not be coworkers anymore, but now they’re husbands, which Crowley likes even more.

They’ve planned a future together. It’s a future of going out for sushi, of trips to Paris, to Rome, anywhere they want to go, and then always coming back home again. It’s ending every day by snuggling up close in their bed, whispering to each other until they both drift off to sleep.

It’s honestly a really great plan.

Right now it’s tonight’s plan that they need to stick to, though, and a dinner reservation they need to make. Crowley lets go of Aziraphale’s hand to open his door for him. Then he takes his own place, hands safely on the wheel.

“Crowley dot loves open-parentheses Aziraphale close-parentheses equals Extra True,” he informs Aziraphale.

“Crowley equals ridiculous.” Aziraphale threads his fingers through Crowley’s hair. “And I love you, too.”