Reflecting on my immigration journey this morning and for anyone else in the same situation it was:
F1/OPT 1 year (student visa) -> H1-B 5 years (work via) -> Green Card 7 years (permanent resident) -> Citizen yesterday. No more immigration anxiety 😅
Since being on a student visa I've always been worried about not being able to enter the US for some random reason or the other (plus being a black immigrant). Travelling with an excess amount of paperwork to prove you belong here.
When I joined Microsoft in 2008, there were huge layoffs and I was sure I was going to be in that set of people. Why not lay off the new employees (and immigrants at that)? It didn't happen and I was thankful. Microsoft sponsored my H1-B and Green card.
Fast forward to the previous election cycle, those 4 years were the most worried I had felt as an immigrant in this country and it really made me want to get citizenship because my kids are Americans. I don't ever want to be split from them because of a change in policy.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with David Fowler 🇧🇧🇺🇸💉💉

David Fowler 🇧🇧🇺🇸💉💉 Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @davidfowl

3 Oct
.NET has 4 built-in dictionary/map types:
- Hashtable
- Dictionary
- ConcurrentDictionary
- ImmutableDictionary

There’s no guidance on when to use what, mostly individual documentation on each implementation.

#dotnet
ConcurrentDictionary - Good read speed even in the face of concurrency, but it’s a heavyweight object to create and slower to update.

Dictionary with lock - Poor read speed lightweight to create and “medium” update speed.
Dictionary as immutable object - best read speed and lightweight to create but heavy update. Copy and modify on mutation e.g. new Dictionary(old).Add(key, value)
Read 5 tweets
27 Sep
If you are queuing background jobs/work items today in your .NET applications, how are you doing it and what are you using it for? #dotnet #aspnetcore
What about non-durable background work?
Is anyone using the DurableTasks for job scheduling? github.com/Azure/durablet…
Read 4 tweets
25 Sep
The biggest problem with async await is the “colored functions” problem brilliantly explained by this article journal.stuffwithstuff.com/2015/02/01/wha…. It’s a never ending problem because everything can’t be async and it’s viral. It’s not a new problem though, it’s always been this way.
JavaScript has an easier time because blocking always meant you’d destroy the browsers UI thread. That model naturally made it nicely non blocking on the server side.
Then golang chose a different direction and did go routines. Not conceptually different but the big thing it solves is the “virality”problem. Java’s Loom is also headed this direction. It’s easy to say that .NET should follow but it’s never easy…
Read 13 tweets
11 Aug
High level IC (individual contributors) should have a support group. Managing the transition from being “just another engineer” to being a “force multiplier by working through others” is tough. Talking to others that have managed that transition is calming.
Your role suddenly goes from cranking out lots of code to mentoring/growing others, and shaping the team culture. Often times companies train managers but don’t formally prepare ICs for those roles. Learn on the job, become a great people person!
One of the hardest things is measuring your impact. You don’t have anyone reporting to you, and you are no longer being judge solely on your technical abilities. What did you do at the end of the year? It can feel very abstract at times.
Read 9 tweets
4 Aug
As usual, there are a boatload of new APIs coming in .NET 6. Most of these are driven by custom requests. Lets talk about some of them. #dotnet #aspnetcore
In .NET 6, there's a new low-level API to enable reading/writing of files without using a FileStream. It also supports scatter/gather IO (multiple buffers) and overlapping reads and writes at a given file offset. Image
There are a couple of new ways to access a process path and process id without allocating a new process object: Image
Read 16 tweets
3 Aug
Here's an interesting .NET-ism. Async methods capture the execution context on entry and restore them on exit. What does the following print? #dotnet #csharp Image
It prints, Before: 0, After: 10. The async local value bled out of the method call because it was synchronous method that directly returned the task.
This on the other hand will not let the async local value bleed out of the method. Image
Read 4 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(