Actions

Work Header

A Programmer's Guide to Love (and Work Visa)

Summary:

“…so, no, Ben Solo, unless you want to marry me, there’s nothing—NOTHING—you can do to help my situation!” Rey screamed from the top of her lungs.

She turned roughly away when she felt a stray tear roll down her cheek. God damn it. It was so mortifying. Of all the people in San Francisco she could break down in front of, it had to be Ben-fucking-Solo. She took a few steps backwards, intending to spin around and run away before she could embarrass herself any further, but a large hand wrapped around her wrist before she could.

“Wait.” He didn’t say any more for a second. He only looked at her, his eyebrows drawing minutely together, as if he was puzzling through a stubborn bug, an impossible problem.

Then, just as Rey was about to shake his hand loose, she heard him ask, “Do you want to?”

UK borne Rey Unkar thought she finally found a home in Silicon Valley: she has close friends that love her, a great career at Resistance Labs, a vacation to Puerto Rico in the plans, and even an online friend who she can nerd out with on all things C++. Then, her H-1B extension gets denied and she has 10 days before she is required to leave the U.S.

Chapter 1: Day 1 (An Almost Regular Wednesday Morning)

Notes:

Aka: The author twists the prompt “Rey accidentally proposes to Ben. To her shock, he agrees.” into therapy for her own H1-B mishaps.

P.S. Thank you to @lovingreylo (Peyton) and @Erulisse17 and for betaing

(See the end of the chapter for more notes.)

Chapter Text

“Blank Space” was looping for the third time before Rey finally gathered enough conviction to grab her phone off of her side table and turn off the alarm. She groaned, rubbing her face, and forced herself to roll out of the Ikea double bed.

As she navigated the ten feet between her bed and the restroom in her small bachelor suite, she checked her email for urgent work fires. No emergencies, but there was yet another reminder for her work authorization verification. She groaned in helpless agitation. 

She really didn’t need another reminder that her H1-B visa was expiring in a week.

The extension request had been submitted two weeks ago, more last minute than Rey would have liked, but the lawyers had assured her that as long it was in before her current visa expired, she could keep working until they officially renew her visa. They didn’t sound too concerned and given it was completely out of her hands, Rey decided to shrug, delete the reminder, and continue with her day. 

She confirmed the usual Wednesday design review meeting at 10:00am was the first one on her calendar while she brushed her teeth. Good. No need to rush. She even had time to make herself a cup of tea.

She mindlessly booted up the Discord app as she waited for the kettle to boil. A small grin broke out when she saw a familiar icon of a medieval knight at the top right of her screen. It was always nice to wake up to new messages from her favorite online programmer buddy. She clicked on the icon and devoured the DM.

kyloren Today at 2:31am

Question of the day: does this compile?

#include <string>
void f() {
      std::string(foo);
}

Rey got the impression that it was a trick question, but given that she didn’t see the declaration required and actually testing out the code would be cheating, she decided to stick with the only sane answer:

coderray Today at 7:24am

No. How can anything compile without a declaration?

P.S. 2:31am? Do you ever sleep?

She couldn’t help herself with the post-script. It was the second time in three days he had sent her messages in the wee hours of the night, despite the fact she knew kyloren lived in the Bay Area just like her. It was one of the few personal details he had told her, beyond what company he worked for. She didn’t know his real name, or even if “he” was really a he. She had assumed so based on his handle, the way he talked, and the fact most C++ programmers in the industry were men, but women in technology often adopted masculine manners in order to be taken seriously (there were reasons why she chose to call herself Ray online), so it was truly a toss-up. 

They had met through the Programming Discord channel over four years ago, when they bonded over a heated, incredibly nerdy argument on the right way to implement Bloom filters on the C++ channel, until the mods ran out of patience and asked them to move it to their own private channel. Their back and forth continued for another two weeks until they finally called a truce. Since then, they had shared coding misadventures and vented about coworkers until their repartee resulted in her most significant online friendships.

Knowing kyloren wouldn’t respond in real time, she finished making her tea, sat down, and picked up her phone. She willfully ignored the notifications of unread messages on the Resistance Labs Slack workspace and checked the chat group with her friends instead. Planning for Puerto Rico was just so much more fun than work.

Finn at 11:35pm

I’m looking into hotels and I’m thinking of this one b/c with our corporate code it’s only $169 a night for a room: https://www.marriott.com/hotels/travel/sjupr-san-juan-marriott-resort-and-stellaris-casino/

Poe at 12:12am

 👍 Looks good. I’ve got Titanium status, if I book the rooms through my account we may get free upgrades

Rose at 7:14am

So 2 or 3 rooms? Rey do you want to share a room with either Poe/Kaydel or Finn/me?

Sharing a room would make saving up for the vacation much easier, but as tempting as a few hundred dollars was... she wasn't shameless enough to accept the offer. Awkwardness from being the third wheel aside, she had no desire to be the reason why either one of the couples wouldn't fully enjoy their five stars hotel room at a sun destination.

Rey at 7:30am

I'll get my own room

In her mind's eyes she watched her money fly away as she sent her reply. Rey had always prescribed to the belief that the best way to survive in this chaotic world was to depend only on herself, but at moments like this, she couldn't help but wished she wasn't so single. 


“Guys, I was doing some more research for our trip yesterday night, and I think we should go to Mosquito Bay,” Rey announced after Rose ordered her usual coffee and joined them in their corner. 

“Is that seriously a real name? I'm feeling itchy just hearing it,” Finn scratched his arm as he said it.

Poe snorted and slapped Finn across the back. “Man up, bud.”

Finn turned and jabbed Poe hard on his side. “Hey! You’re not the one who gets devoured by bugs. I got like ninety-two bites when the rest of you had ten bites total last time we went to the zoo.”

His complaints only made Poe laugh harder.

Rose gave Finn a sympathetic pat on his arm. “We’ll make sure you have enough bug spray to ward off an entire village.”

Finn gave Rose a peck on her cheek. Rey turned away, public display of affection always made her uncomfortable, she didn't understand it, didn't see the appeal. 

Rey had a grand total of eleven unremarkable dates in her life, and even those were more awkward small-talks than anything else. Navigating the foster system didn’t help with dating much, and once Rey finally gained her freedom by earning a spot at Stanford, she was too busy juggling studying and part time jobs for relationships or messy feelings. She didn’t really have a good excuse now that she was approaching her fourth year of being a full time software developer in the Valley, except, well, no one could abandon her if she wasn't attached to anyone to begin with.

“So what’s Mosquito Bay?” Rose asked, getting them back on topic. Rey felt equal parts guilt and relief Rose scooted a bit away from Finn, having obviously noticed her discomfort.

“It’s a bioluminescent bay. The brightest in the world, apparently,” Rey told them, fishing out her phone to search for photos of the bay, “During new moon, it looks like—”

She felt his eyes before she saw him. Ben Solo. The second her gaze found him, he turned up his nose and looked away, as if he had just smelled something foul in the air. The righteous anger that had been dormant for over two years immediately rose in her chest.

The last time she saw him, he was ruthlessly testifying in court against his own father for an Intellectual Property infringement case the FO had slapped on the Millennium Falcon. It was a case of a huge, evil corporation putting a small, homegrown business out of business purely because it could. Instead of helping or asking leniency like any normal person would, Ben Solo gave the world’s most brutal testimony instead. In the end, the judge ruled against Han and the harsh 3.2 million dollar damage judgement ultimately put the Millennium Falcon out of business.

And because of that—though not just because of that—the sight of him made Rey seethe.

Finn and Poe looked behind them to see what she was glaring at.

“What’re Severus Snape and General Hugs doing here?” Finn hissed, loud enough to make Rey wonder if the men in question would hear. 

They hadn’t heard them, or if they had heard, they must have resolved to ignore them, since Armitage Hux continued talking and Ben Solo kept staring at his phone. 

Finn visibly shuddered. “God, just the sight of them brings back nightmares.”

By nightmares, Finn was alluding to his past life at FO before he jumped ship to Resistance Labs. Finn hated everything about his ex-employer and would gladly spend hours bad mouthing the tech conglomerate to anyone who would listen. He hated the perform-or-else culture, the unreasonable work hours, the lack of diversity, and how the company twisted perfectly good technology into back doors for authorities and weapons for militaries. 

But most of all, Finn personally hated Armitage Hux (or General Hugs, as he and Poe had nicknamed him after a few beers), for pushing all sorts of last minute scope changes and pushing unreasonable deadlines, and he hated Ben Solo (disparagingly named Severus Snape by disgruntled peers for his long-ish dark hair, his brooding I-hate-everyone scowls, and his overall unpleasant personality), for killing a project he had tirelessly worked on without warning. 

“What are they doing here? Isn’t FO’s headquarters near the Ferry Building?” Poe asked.

It was a good question. Sightglass Coffee was situated at 7th and Folsom, a convenient five minute walk from Resistance Labs’ office in the heart of SOMA, but it was definitely not walking distance from the Waterfront.

Rose glanced over and shrugged. “Maybe they’re coffee hipsters that drive all the way out here because they find Philz too mainstream.”

“Or maybe they’re just here to haunt me,” Finn grumbled under his breath.

Unfortunately, this was one of those mysteries that would never be solved. The barista called out their orders at that moment, and the question, along with General Hugs and Severus Snape, were promptly forgotten with the first sip of their perfect cup of morning coffee.


There was a notification on the Discord app when Rey finally allowed herself to check her phone as a reward for reading through all the unread emails in her inbox.

kyloren Today at 8:35am

It compiles because the C++ standard wants me to have an existentialist crisis.

Rey felt a smile tug at her lips at his use of dry humor. 

kyloren Today at 8:37am

The standard dictates that anything that looks like a declaration is a declaration.

std::string(foo); and std::string foo; are the same line of code.

This stupid trivia created a P1 defect that the algorithm team couldn’t figure out. My team got pulled into an emergency war-room at 8pm to help with debugging 2000 lines of code that we didn’t write.

I was awake at 2:30am because a moron forgot to name his lock.

As usual, kyloren didn’t fully spell out the issue to her, but after rereading the old message, and thinking carefully for a few minutes, Rey reasoned out what he meant.

coderray Today at 9:38am

Ah, so instead of initiating the mutex, a lock was declared instead

What did you do when you made the one character fix?

To her delight, his response appeared on the thread a moment later. It didn’t happen too often, but for once they were both online at the same time.

kyloren Today at 9:39am

I might have thrown my computer on the ground and had to make a trip to the IT help desk this morning.

coderray Today at 9:39am

Wow. That bad, huh?

kyloren Today at 9:40am

I swear to god, I’ll die young because of these imbeciles. Why can’t everyone just be a good programmer like you?

Can I tempt you to jump ship and join me at FO? Please? 

Rey was flattered, but between all the awful things she heard from Finn and the fact that Ben Solo worked there, it was never going to happen. And speaking of him… Rey couldn’t help but wonder if he was one of those imbeciles kyloren called out. The possibility made her a little giddy.

coderray Today at 9:42am

Thanks but no thanks

When you finally come to your senses and quit FO, let me know. I am sure I can get you into Resistance Labs

She waited a couple of minutes, but like the other times when she brought up work opportunities at Resistance Labs, kyloren stayed silent. She shrugged after a moment and put her phone away. If he didn’t want to change companies, she wouldn’t force him; besides, she had to get ready for her weekly design review meeting.

It was really too bad. He was a great programmer, and it was sad to watch him waste his talents away in a hell-hole like FO when Resistance Labs could really use someone like him.


Rey had just sat down after lunch when the email subject “[EXT] Re: Rey Unkar [KBGFPI01972-9] - H-1B Extension…” popped up at the corner of her screen.

Finally , she thought. 

She navigated away from the terminal to her inbox. She gave an inward sigh at the bolded “inbox: 42” (she had cleared her mailbox just before lunch, for heaven’s sake) and absentmindedly scrolled to the top of her mailbox. She did a double take when she skimmed the full subject of her latest email.

She reread the subject a second time to make sure her eyes weren’t playing cruel tricks on her. It wasn’t. Or at least, the header remained the same: “ [EXT] Re: Rey Unkar [KBGFPI01972-9] - H-1B Extension Case Denial.”

Oh shit. Oh shit. Oh shit.  


From: Connix Kaydel – [email protected]
Sent: Wednesday, July 10, 2024 12:42 PM
To: Unkar, Rey <[email protected]>
Cc: Rosetta, Riva <[email protected]>, Eelyak, Lema <[email protected]>;

Subject: [EXT] Re: Rey Unkar [KBGFPI01972-9] - H-1B Extension Case Denial

 

Hello Rey,

Unfortunately, we have received the USCIS decision on your H-1B Extension petition. USCIS has denied our request for your extension.

At this time, we are working with the company to determine next steps and available options at this time. We understand the level of anxiety and frustration this decision will cause. Please kindly note that we will be working with the company to develop a plan of action and provide you with additional guidance as soon as possible.

Please let us know if you have any questions or concerns in that regard.

***Please note that as per Resistance Labs Policy we are unable to share the reason for Denial***

 

Thank you,

Connix Kaydel
Sr. Manager | Legal, Resistance Labs
Tel/Direct +1 214-832-2335
[email protected]


Rey’s heart threatened to beat out of her chest. Fuck. Fuck. Fuck. Fuck. Fuck.

Calm. Stay calm, Rey commanded herself. The email mentioned a plan of action, that’s good, right? 

But it was difficult to not panic when the little Rey did know about the inner workings of the H1-B process told her she was royally screwed.

Out of her desperate need for a distraction, any distraction, Rey fidgeted with her phone. The screen flashed on, and Discord refreshed itself with a new message.

kyloren Today at 12:25pm

Came across this. Might be interesting since you mentioned you wanted to implement some monitoring tools on Linux. https://www.brendangregg.com/bpf-performance-tools-book.html

On any other day, Rey would have been happy to dive into the link, but Rey had no interest in BPF performance tools or really anything when her mind was full with a million questions that she had no answers to. Her mind was spinning and she felt like she was about to explode or throw up. 

She needed to tell someone. Someone who knew her well enough to have sympathy, but not so well as to remind her of what she might lose and make her cry. Her eyes darted to her phone.

coderray Today at 1:02pm

The extension for my H1-B got denied

Don’t know what will happen to me

She looked at the message on the screen and took a deep breath, finally feeling a semblance of control. There. The truth was out there. The Earth did not explode. She would be okay. 

She had to be.

Notes:

----------------jargons_and_technical_and_SF_stuff.txt----------------

H1-B: H1-B is a visa in the United States under the Immigration and Nationality Act, section 101(a)(15)(H) that allows U.S. employers to temporarily employ foreign workers in specialty occupations. A specialty occupation requires the application of specialized knowledge and a bachelor's degree or the equivalent of work experience and this is the visa most programmers outside of U.S. get in order to work in Silicon Valley and eventually get a Green Card. The duration of the stay is three years, after which the visa can be extended up to six years. The extension is what Rey is struggling with.

Bloom filter: A space-efficient probabilistic data structure, conceived by Burton Howard Bloom in 1970, that is used to test whether an element is a member of a set. Bloom filters are often used to implement searches where the dataset is large and a result must be returned quickly. It's a stupidly specific nerdy thing to argue about, but coderray and kyloren are idiots in their own unique ways. For more info see wiki page: https://en.wikipedia.org/wiki/Bloom_filter, and this article on how to use Bloom filters practically: https://medium.com/datadriveninvestor/bloom-filter-a-simple-but-interesting-data-structure-37fd53b11606

Slack: A popular team collaboration tool that many tech companies in Silicon Valley use. It looks and feels very similar to Discord.

Scope Creep: The bane of existence for all developers working on a large project. Scope creep in project management refers to changes, continuous or uncontrolled growth in a project’s scope, at any point after the project begins.

Lock/Mutex (the one that kept kyloren awake at 2:30am): In computer science, a lock or mutex (from mutual exclusion) is a synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution. A lock is designed to enforce a mutual exclusion concurrency control policy. For more info see wiki page: https://en.wikipedia.org/wiki/Lock_(computer_science). It's very possible Mutex was initially invited to confuse non comp-sci people.

The one character fix that Rey alluded to: (Note: this is not exactly the code, but a demonstration of what it may look like) Bugged version: unique_lock(my_mutex); Fixed version: unique_lock g(my_mutex), with g being the name. This is a rather C++ specific problem and mostly because C++ allows for too much in its standards. As someone wise on the internet said, C provides you with a hand gun to shoot you in the foot, C++ provides you with a machine gun to blow your foot off.

BPF Tools: BPF (eBPF) tracing is a superpower that can analyze everything on linux to find performance wins and troubleshoot software. If you want to learn more. Go read that book referenced in the link kyloren sent to coderray.

Sightglass: A small, independent SF coffee chain that coffee hipsters are partial to. They specialize in pour overs. If you are in SF, I highly recommend making a visit. https://sightglasscoffee.com/

Philz: A coffee chain that started in SF in 2003 but had since grown to a 52 locations "monstrosity" across America. Philz coffee is actually pretty good, but it's now too commercialized for many coffee hipsters in SF. https://www.philzcoffee.com/