Skip to content

Commit 67c5c7f

Browse files
committed
81 FR 82398: for up to sixty consecutive days
1 parent 2f18cf7 commit 67c5c7f

7 files changed

Lines changed: 226 additions & 0 deletions

File tree

timeout_60/8_cfr_214.1_l_2.lrc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[00:00.54]<00:00.54>8 <00:00.84>CFR <00:01.76>§ <00:01.84>214.1 <00:03.78>(l) <00:04.06>(2)
2+
[00:04.90]<00:04.90>An <00:05.16>alien <00:05.56>admitted <00:06.02>or <00:06.22>otherwise <00:06.78>provided <00:07.26>status
3+
[00:07.70]<00:07.70>In <00:08.02>E-1, <00:08.64>E-2, <00:09.30>E-3, <00:10.04>H-1B, <00:10.98>H-1B1, <00:12.06>L-1, <00:12.70>O-1 <00:13.26>or <00:13.50>TN <00:14.00>classification
4+
[00:15.14]<00:15.14>Shall <00:15.32>not <00:15.52>be <00:15.66>considered <00:16.18>to <00:16.32>have <00:16.58>failed <00:16.96>to <00:17.10>maintain <00:17.68>nonimmigrant <00:18.40>status
5+
[00:18.96]<00:18.96>Solely <00:19.34>on <00:19.46>the <00:19.58>basis <00:19.98>of <00:20.10>a <00:20.22>cessation <00:20.86>of <00:21.02>the <00:21.10>employment
6+
[00:22.24]<00:22.24>For <00:22.44>up <00:22.60>to <00:22.84>sixty <00:23.26>consecutive <00:24.00>days

timeout_60/8_cfr_214.1_l_2.mp3

455 KB
Binary file not shown.

timeout_60/BUILD

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
load("@rules_cc//cc:cc_test.bzl", "cc_test")
2+
load("//tools/build_defs:music.bzl", "music_track")
3+
4+
music_track(
5+
name = "law",
6+
src = "8_cfr_214.1_l_2.mp3",
7+
visibility = ["//visibility:public"],
8+
)
9+
10+
music_track(
11+
name = "play",
12+
src = "timeout_60.mp3",
13+
visibility = ["//visibility:public"],
14+
)
15+
16+
cc_test(
17+
name = "test",
18+
timeout = "short",
19+
srcs = ["timeout_60_test.cc"],
20+
deps = ["@googletest//:gtest_main"],
21+
)

timeout_60/README.md

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# timeout 60
2+
3+
> 8 CFR § 214.1(l)(2)
4+
> An alien admitted or otherwise provided status
5+
> In E-1, E-2, E-3, H-1B, H-1B1, L-1, O-1 or TN classification [...]
6+
> Shall not be considered to have failed to maintain nonimmigrant status
7+
> Solely on the basis of a cessation of the employment [...]
8+
> For up to sixty consecutive days
9+
10+
## Intro
11+
12+
They call it "Non-Immigrant Intent"
13+
Which means... promise not to stay
14+
But after 10 years...
15+
Where else is home?
16+
17+
## Verse 1
18+
19+
2015, landed at SFO with two bags and a master's degree
20+
Promised I'd build the future if they just gave a visa to me
21+
And I did. I wrote the kernel, I optimized the stack
22+
I paid the taxes early, I never looked back
23+
Moved up to Senior Staff, bought the house on the hill
24+
The golden handcuffs tight, swallowed the blue pill
25+
My daughter speaks in English, she doesn't know the East
26+
She thinks that we are safe here, living in the belly of the beast
27+
Then Tuesday came. A calendar invite. "Restructuring Update"
28+
Ten minutes later, locked out. Meeting my fate
29+
Server access denied. Slack went grey
30+
HR said: "Here is your packet. You have 60 days"
31+
32+
## Chorus
33+
34+
60 suns to rise and set
35+
To prove that I am worth it yet
36+
The clock is ticking on the wall
37+
Pride comes right before the fall
38+
I built your cloud, I wrote your code
39+
Now I'm exiled from the road
40+
60 days to save the soul
41+
Before the border takes its toll
42+
43+
## Verse 2
44+
45+
Day 1 to Day 10: Shock. I'm updating the resume
46+
Day 20: First interview. They like what I have to say
47+
"You're a genius," they tell me. "You're exactly what we need"
48+
But then I mention sponsorship, and suddenly, the speed...
49+
It slows down
50+
"We have to check with Legal." "The budget's unapproved"
51+
Day 45 is looming. I can barely move
52+
I'm grinding LeetCode hard while I'm packing up the room
53+
Selling furniture on Marketplace, pending impending doom
54+
Day 58. The offer comes. A lifeline in the dark
55+
But Premium Processing takes two weeks to hit the mark
56+
The transfer won't arrive in time. The lawyer shakes his head
57+
"You have to leave on Thursday, or legally, you're dead"
58+
59+
## Bridge
60+
61+
How do you explain to a 6-year-old?
62+
That the house is sold?
63+
That the friends are gone?
64+
That the country she was born in says she doesn't belong?
65+
I left the keys on the counter
66+
I left the server running
67+
My commits are still live in production
68+
The code doesn't care who wrote it
69+
The code stays
70+
We go
71+
72+
## Verse 3
73+
74+
Now I'm back in a city that I don't recognize
75+
Snow on the ground and defeat in my eyes
76+
My career is a gap, a hole in the space
77+
Erased by a system, removed from the race
78+
10 years of loyalty, flushed down the drain
79+
A victim of timing, of bureaucratic rain
80+
And somewhere in San Jose, a server blinks green
81+
Running the logic of a ghost within the machine
82+
83+
## Outro
84+
85+
System operational
86+
User not found
87+
Session expired
88+
Session expired

timeout_60/timeout_60.lrc

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
[00:00.06]<00:00.06>They <00:00.20>call <00:00.38>it <00:00.49>"Non-Immigrant <00:01.12>Intent"
2+
[00:03.14]<00:03.14>Which <00:03.36>means... <00:04.64>promise <00:05.02>not <00:05.18>to <00:05.36>stay
3+
[00:07.30]<00:07.30>But <00:07.44>after <00:07.74>10 <00:08.04>years...
4+
[00:09.79]<00:09.79>Where <00:09.94>else <00:10.14>is <00:10.28>home?
5+
[00:11.50]<00:11.50>2015, <00:12.18>landed <00:12.56>at <00:12.78>SFO <00:13.22>with <00:13.36>two <00:13.56>bags <00:13.82>and <00:13.96>a <00:14.06>master's <00:14.42>degree
6+
[00:14.94]<00:14.94>Promised <00:15.32>I'd <00:15.44>build <00:15.61>the <00:15.78>future <00:16.16>if <00:16.26>they <00:16.48>just <00:16.64>gave <00:16.84>a <00:16.96>visa <00:17.30>to <00:17.46>me
7+
[00:17.82]<00:17.82>And <00:17.98>I <00:18.02>did. <00:18.22>I <00:18.29>wrote <00:18.50>the <00:18.66>kernel, <00:19.24>I <00:19.38>optimized <00:19.88>the <00:19.96>stack
8+
[00:20.56]<00:20.56>I <00:20.70>paid <00:20.88>the <00:21.06>taxes <00:21.40>early, <00:21.94>I <00:22.08>never <00:22.44>looked <00:22.76>back
9+
[00:23.28]<00:23.28>Moved <00:23.48>up <00:23.60>to <00:23.74>Senior <00:24.08>Staff, <00:24.46>bought <00:24.66>the <00:24.82>house <00:25.20>on <00:25.34>the <00:25.50>hill
10+
[00:25.98]<00:25.98>The <00:26.16>golden <00:26.50>handcuffs <00:27.02>tight, <00:27.32>swallowed <00:27.69>the <00:27.84>blue <00:28.20>pill
11+
[00:28.70]<00:28.70>My <00:28.88>daughter <00:29.14>speaks <00:29.42>in <00:29.60>English, <00:30.08>she <00:30.26>doesn't <00:30.56>know <00:30.76>the <00:30.90>East
12+
[00:31.12]<00:31.12>She <00:31.24>thinks <00:31.44>that <00:31.62>we <00:31.78>are <00:31.92>safe <00:32.14>here, <00:32.28>living <00:32.46>in <00:32.54>the <00:32.64>belly <00:33.00>of <00:33.16>the <00:33.34>beast
13+
[00:33.71]<00:33.71>Then <00:34.02>Tuesday <00:34.36>came. <00:34.54>A <00:34.68>calendar <00:35.22>invite. <00:35.51>"Restructuring <00:36.22>Update"
14+
[00:36.74]<00:36.74>Ten <00:36.92>minutes <00:37.28>later, <00:37.58>locked <00:37.98>out. <00:38.22>Meeting <00:38.58>my <00:38.78>fate
15+
[00:39.10]<00:39.10>Server <00:39.48>access <00:39.96>denied. <00:40.80>Slack <00:41.16>went <00:41.48>grey
16+
[00:42.00]<00:42.00>HR <00:42.36>said: <00:42.71>"Here <00:42.90>is <00:43.02>your <00:43.20>packet. <00:43.54>You <00:43.70>have <00:43.98>60 <00:44.22>days"
17+
[00:46.52]<00:46.52>60 <00:46.90>suns <00:47.46>to <00:47.66>rise <00:48.06>and <00:48.28>set
18+
[00:48.84]<00:48.84>To <00:49.02>prove <00:49.40>that <00:50.06>I <00:50.20>am <00:50.40>worth <00:50.74>it <00:51.10>yet
19+
[00:51.56]<00:51.56>The <00:51.72>clock <00:52.16>is <00:52.38>ticking <00:53.22>on <00:53.46>the <00:53.62>wall
20+
[00:54.80]<00:54.80>Pride <00:55.20>comes <00:55.50>right <00:55.68>before <00:56.38>the <00:56.86>fall
21+
[00:57.68]<00:57.68>I <00:57.90>built <00:58.20>your <00:58.38>cloud, <00:59.06>I <00:59.20>wrote <00:59.58>your <00:59.76>code
22+
[01:00.28]<01:00.28>Now <01:00.70>I'm <01:01.00>exiled <01:01.96>from <01:02.30>the <01:02.48>road
23+
[01:03.56]<01:03.56>60 <01:03.86>days <01:04.36>to <01:04.66>save <01:05.04>the <01:05.22>soul
24+
[01:05.74]<01:05.74>Before <01:06.40>the <01:06.56>border <01:07.42>takes <01:07.78>its <01:08.10>toll
25+
[01:09.46]<01:09.46>Day <01:10.26>1 <01:10.33>to <01:10.82>Day <01:11.50>10: <01:12.16>Shock. <01:12.41>I'm <01:12.56>updating <01:13.04>the <01:13.22>resume
26+
[01:13.90]<01:13.90>Day <01:14.36>20: <01:14.60>First <01:14.98>interview. <01:15.42>They <01:15.58>like <01:15.76>what <01:15.88>I <01:15.94>have <01:16.10>to <01:16.26>say
27+
[01:16.59]<01:16.59>"You're <01:16.78>a <01:16.96>genius," <01:17.46>they <01:17.64>tell <01:17.82>me. <01:17.97>"You're <01:18.20>exactly <01:18.66>what <01:18.84>we <01:19.00>need"
28+
[01:19.50]<01:19.50>But <01:19.68>then <01:19.88>I <01:19.98>mention <01:20.34>sponsorship, <01:20.88>and <01:21.06>suddenly, <01:21.54>the <01:21.70>speed...
29+
[01:22.17]<01:22.17>It <01:22.22>slows <01:22.58>down
30+
[01:22.91]<01:22.91>"We <01:23.12>have <01:23.26>to <01:23.40>check <01:23.60>with <01:23.74>Legal." <01:24.27>"The <01:24.46>budget's <01:24.86>unapproved"
31+
[01:25.51]<01:25.51>Day <01:25.94>45 <01:26.36>is <01:26.50>looming. <01:26.90>I <01:27.00>can <01:27.18>barely <01:27.50>move
32+
[01:28.04]<01:28.04>I'm <01:28.16>grinding <01:28.52>LeetCode <01:29.26>hard <01:29.58>while <01:29.78>I'm <01:29.92>packing <01:30.28>up <01:30.42>the <01:30.58>room
33+
[01:30.90]<01:30.90>Selling <01:31.28>furniture <01:31.80>on <01:31.96>Marketplace, <01:32.48>pending <01:32.82>impending <01:33.32>doom
34+
[01:33.66]<01:33.66>Day <01:34.12>58. <01:34.54>The <01:34.70>offer <01:35.02>comes. <01:35.26>A <01:35.36>lifeline <01:35.74>in <01:35.88>the <01:36.06>dark
35+
[01:36.38]<01:36.38>But <01:36.55>Premium <01:37.04>Processing <01:37.72>takes <01:37.94>two <01:38.10>weeks <01:38.30>to <01:38.44>hit <01:38.62>the <01:38.78>mark
36+
[01:39.13]<01:39.13>The <01:39.46>transfer <01:39.82>won't <01:40.04>arrive <01:40.34>in <01:40.48>time. <01:40.68>The <01:40.82>lawyer <01:41.12>shakes <01:41.38>his <01:41.54>head
37+
[01:41.85]<01:41.85>"You <01:42.24>have <01:42.38>to <01:42.54>leave <01:42.74>on <01:42.90>Thursday, <01:43.40>or <01:43.58>legally, <01:44.06>you're <01:44.26>dead"
38+
[01:45.60]<01:45.60>How <01:45.78>do <01:45.96>you <01:46.10>explain <01:46.66>to <01:46.80>a <01:47.04>6-year-old?
39+
[01:49.32]<01:49.32>That <01:49.52>the <01:49.68>house <01:50.06>is <01:50.26>sold?
40+
[01:52.04]<01:52.04>That <01:52.22>the <01:52.40>friends <01:52.76>are <01:52.94>gone?
41+
[01:54.78]<01:54.78>That <01:54.94>the <01:55.12>country <01:55.46>she <01:55.64>was <01:55.84>born <01:56.24>in <01:56.50>says <01:56.84>she <01:57.24>doesn't <01:57.90>belong?
42+
[01:59.44]<01:59.44>I <01:59.56>left <01:59.76>the <01:59.90>keys <02:00.34>on <02:00.46>the <02:00.60>counter
43+
[02:02.50]<02:02.50>I <02:02.62>left <02:02.82>the <02:02.96>server <02:03.36>running
44+
[02:05.00]<02:05.00>My <02:05.18>commits <02:05.54>are <02:05.70>still <02:06.02>live <02:06.26>in <02:06.40>production
45+
[02:07.24]<02:07.24>The <02:07.42>code <02:07.76>doesn't <02:08.12>care <02:08.44>who <02:08.74>wrote <02:09.14>it
46+
[02:09.26]<02:09.26>The <02:09.44>code <02:10.06>stays
47+
[02:10.82]<02:10.82>We <02:11.48>go
48+
[02:33.00]<02:33.00>Now <02:33.20>I'm <02:33.32>back <02:33.52>in <02:33.66>a <02:33.84>city <02:34.20>that <02:34.46>I <02:34.52>don't <02:34.72>recognize
49+
[02:36.02]<02:36.02>Snow <02:36.24>on <02:36.38>the <02:36.54>ground <02:36.92>and <02:37.04>defeat <02:37.44>in <02:37.58>my <02:37.78>eyes
50+
[02:38.42]<02:38.42>My <02:38.58>career <02:39.00>is <02:39.14>a <02:39.28>gap, <02:39.96>a <02:40.10>hole <02:40.36>in <02:40.46>the <02:40.56>space
51+
[02:41.32]<02:41.32>Erased <02:41.68>by <02:41.81>a <02:41.96>system, <02:42.52>removed <02:43.04>from <02:43.22>the <02:43.38>race
52+
[02:44.24]<02:44.24>10 <02:44.44>years <02:44.60>of <02:44.74>loyalty, <02:45.56>flushed <02:45.80>down <02:45.94>the <02:46.10>drain
53+
[02:46.82]<02:46.82>A <02:46.96>victim <02:47.30>of <02:47.48>timing, <02:48.02>of <02:48.14>bureaucratic <02:48.90>rain
54+
[02:49.36]<02:49.36>And <02:49.50>somewhere <02:49.89>in <02:49.98>San <02:50.20>Jose, <02:50.88>a <02:51.02>server <02:51.38>blinks <02:51.70>green
55+
[02:52.46]<02:52.46>Running <02:52.76>the <02:52.92>logic <02:53.50>of <02:53.66>a <02:53.78>ghost <02:54.18>within <02:54.84>the <02:55.18>machine
56+
[02:57.84]<02:57.84>System <02:58.26>operational
57+
[03:00.62]<03:00.62>User <03:00.96>not <03:01.26>found
58+
[03:03.26]<03:03.26>Session <03:03.70>expired
59+
[03:06.88]<03:06.88>Session <03:09.74>expired

timeout_60/timeout_60.mp3

3.94 MB
Binary file not shown.

timeout_60/timeout_60_test.cc

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#include "gtest/gtest.h"
2+
#include <chrono>
3+
#include <iostream>
4+
#include <string>
5+
#include <thread>
6+
7+
void apply_for_jobs() {
8+
std::cout << "[ENGINEER] Updating resume and applying to jobs" << std::endl;
9+
std::this_thread::sleep_for(std::chrono::seconds(10));
10+
}
11+
12+
void wait_for_interviews() {
13+
std::cout << "[ENGINEER] Waiting for interviews" << std::endl;
14+
std::this_thread::sleep_for(std::chrono::seconds(10));
15+
}
16+
17+
void interview() {
18+
std::cout << "[ENGINEER] Interviewing" << std::endl;
19+
std::this_thread::sleep_for(std::chrono::seconds(25));
20+
}
21+
22+
void wait_for_budget_approval() {
23+
std::cout << "[EMPLOYER] Budget unapproved, checking with legal" << std::endl;
24+
std::this_thread::sleep_for(std::chrono::seconds(13));
25+
}
26+
27+
std::string find_job() {
28+
apply_for_jobs();
29+
wait_for_interviews();
30+
interview();
31+
wait_for_budget_approval();
32+
const std::string position = "Senior Staff Engineer";
33+
std::cout << "[ENGINEER] Got an offer for " << position << std::endl;
34+
return position;
35+
}
36+
37+
bool premium_processing(const std::string &role) {
38+
std::cout << "[LAWYER] Filing I-129 for \"" << role << "\"" << std::endl;
39+
std::this_thread::sleep_for(std::chrono::seconds(14));
40+
return true;
41+
}
42+
43+
TEST(Timeout60, FindJob) {
44+
std::cout << "[EMPLOYER] We are restructuring the company" << std::endl;
45+
46+
const std::string offer = find_job();
47+
const bool status_maintained = premium_processing(offer);
48+
49+
std::cout << "[EMPLOYER] Welcome aboard, " << offer << std::endl;
50+
51+
EXPECT_TRUE(status_maintained);
52+
}

0 commit comments

Comments
 (0)