As a summary, this post outlines some good-to-know things for any Canadian software developer thinking about moving to the US to work.
Pretty bizarre tutorial no? But after going through this experience (just shy of 2 months ago) I realized that there are a lot of things I wish I had done / known before. A recent visit from a friend from Toronto had me thinking that others may benefit from a post like this. This info is specific to San Francisco, however I am sure it applies to many other cities. I have to thank @bentlegen and @shazow for the advice I got while moving in, I intend to pass the baton. For a great post on how to decide where to work (if you are fortunate enough to have options), checkout @shazow’s post on: A check list while considering offers. This post outlines all sorts of issues I ran into, feel free to skip ahead to the parts you might find useful. I will cover things like: getting a visa, finding a place to live, and how to efficiently spend your first week in the city. As a disclaimer for all the immigration advice, this is just through my experience. I am not an immigration lawyer and if you have specific questions, I suggest you consult one.
Preparing for your work VISA
[You just got your job offer]
Congrats! Hopefully the job you got is sponsoring you for a VISA, otherwise you can stop reading this post and start looking for another job. The company may or may not help you actually get the VISA (ie immigration lawyers etc). I applied for a TN1 VISA, you may be applying to that or something similar. You will need:
- Your original University Diploma (out of frame). Yes this is a pain in the ass, but that over-sized piece of paper is actually the only proof you graduated.
- An official copy of your transcript. For CS grads, this is the only proof you actually took computer science.
- Birth certificate + (drivers license) + passport, to prove you are Canadian
- An offer letter with a start date, to prove you have a job (provided by the company)
- A specific summary of your job duties, to prove you are an Engineer (provided by the company)
- Information fact sheet about the company, to prove it is real (provided by the company)
- Signed and filled out VISA sponsorship paperwork (provided by the company)
- (And if your company’s lawyer is really sharp) A copy of an old letter circa 1996 from an immigration judge confirming Software Engineer == Engineer
I’d suggest getting the official paperwork from your University as soon as possible, because you don’t want to be waiting on them right before you move!
Finding a temporary/permanent place to live
[You committed to move, and now need a place to live]
As per the excellent advice from @shazow, I needed to spend some time in the city to get an idea of where I wanted to live. Signing a 1 year lease then later finding out you live in cracktown would suck. There are a lot of temp housing options (perhaps offered by your company). Might I suggest using AirBNB? I used it, and it was fantastic. When it came to finding a permanent place, I used craigslist, saw like 15 apartments and it worked out well. Take note that since you have no credit history and no SSN, you might have a hard time. The best solution is carrying a copy of your offer letter + your salary agreement to your house visits. You may also have to pay an inflated down payment, which is reasonable. You will likely have to create an account with PG&E, to pay for your heat and electricity, but this was probably the most painless process of it all.
Have a reasonable amount of liquid cash available in America
Since your Social Security Number won’t arrive for weeks, don’t expect to get paid for at least a month. If you move into an apartment, you will need a down payment and first months rent (and maybe more, since you have no credit). You need to have a plan on how you are going to move your funds from your Canadian account to your American account. Your landlord will NOT take a personal Canadian cheque. Your bank will not cash a personal cheque, and if they do, you will need to wait weeks if not longer for it to clear. Make sure you have a way to get your money to an American account as soon as possible. I did a wire from my Canadian account to my American account. So before you leave Canada, ensure that you have ALL the wire info needed and that they will do the transaction without you in the physical branch (most banks do not). If that isn’t an option, transfer funds to your siblings/parents account before you leave. That way they can do the wire for you once your American bank account has been created.
Applying for the VISA itself
[All your paperwork is ready, and you are ready to make the move]
I got my VISA and paperwork at the airport YYZ. I arrived 3 hours before my flight which gave me ample time. I went through regular immigration, and told them I was applying for a TN1 work VISA. They directed me to the additional screening room where I was interviewed for about 20 minutes. You’ll need to pay about $50 USD for the VISA itself, they take cash, so have that handy. Many friends have suggested driving to the border before hand and getting the paperwork done there. That isn’t a bad idea. I was pretty certain I had all my papers in place, and chose to just get it right before my flight, your call.
Convincing yourself (and US immigration) that you are an Engineer
[You are walking into the US immigration office]
Note: you are probably applying as a NAFTA Engineer, however some enter as a Computer Systems Analyst, this section still applies. Forget about all that time we spent in College bashing engineers, US immigration has a short white list of professions that they let through the border. You are now an engineer. To all the “actual” engineers reading this (and I don’t mean P.Eng I mean people who studied engineering) you still need to convince the immigrations officer you are NOT a code monkey. You will need 2 main things to get past this part. Your transcript should make it clear that what you studied is related to your responsibilities. On mine, even though I studied Computer Science, my transcript read – Computer Science: Software Engineering Specialist. I also took a course labeled CSC301: Intro to software engineering. Seems silly, but the officer glanced through my transcript, saw the “software engineer” keyword and moved on. Hopefully your new employer sent you a list of job responsibilities. If they know what they are doing, you will notice that “writing code” or “programming” is not really highlighted, even if that is what you think you are going to be doing. Memorize this script, and job duties because they will ask you. Don’t ad lib. The second you say something like: “I don’t know, I guess I’ll be writing code or programming stuff” the CODE MONKEY alarms go off and a net will drop down from above you and they will take you away. Maybe you aren’t a code monkey, but to reiterate almost every NAFTA/Immigration help website I’ve seen:
“COMPUTER PROGRAMMERS do NOT qualify for a TN-1 visa”.
Stick to the script (hopefully provided to you). Assume the officer you are talking to doesn’t know anything about computer science / computer engineering, but also assume that they are trained to flag certain keywords like: programming, coding. Your official job duties should include things like: “Using mathematical models to predict and analyze performance and stability”, and things like: “Applying concepts in theoretical computer science to improve and enhance existing software systems.” Which is all technically true. If you are working for a larger company, they have the word-smithing down to a science. If it is a smaller company, and you are the first Canadian employee, then maybe not. If you see something like: “Writing frontend code in Ruby/HTML to add new features to the website.” don’t be afraid to confirm with HR/your contact that it is OK. Don’t confuse this with the original job post you applied for, your official job responsibilities will likely be more (intentionally) esoteric when you get your official job offer.
Lastly, don’t lie. “So… will you be writing code?”. “Yes, I will likely write some code … to predict and analyze the performance and stability of the system using mathematical models..”. It’s like when your girlfriend asks you “Who is that girl you were with?” And you say, “That wasn’t a girl, that was a man with long hair….”. If you say no, or lie about anything, they will catch you in the lie and turn you down. It happened to the gentlemen in front of me, it was quite unsettling.
Get your Social Security Number
[You made it into the country, now what?]
Without this, you wont be able to get credit, get paid, get healthcare. Get this as soon as possible. I personally ran into A LOT of problems here so hopefully I can offer some advice. The office suggests that you wait 10 days after entering the country before you apply, I did not and got screwed. Here is how it works: You apply for a VISA at the border, they give it to you and staple it to your passport. They then (at some point in time) manually enter your VISA information into a computer. That record (at some point) appears in the system for the SSN offices to see. These offices are disjoint, and the 10 day wait is seemingly a “it should be done by now” buffer. Since I went early, it took them about 3 weeks to realize that my papers hadn’t been processed at the time of my original application. Hopefully the same doesn’t happen to you, but since they give you no feedback, I only found out when I went back in to see what the hold up was. Print off the SSN application form located here, perhaps leave the mailing address as your office, since you probably don’t have a place to live yet. Find your local SS office, in San Francisco there is one at 7th and Mission, which is utterly terrifying but conveniently close to downtown. Bring in that form with your passport, VISA (which should be attached to your passport) and birth certificate / driver’s license. Wait as long as 10 days after you enter the country for the reason above, I wish there was a hard number but it seems really soft, and I got screwed. After you drop off the paperwork, if all goes well, your SSN will be mailed to you within 2-3 weeks. I HIGHLY recommend going in again after 1-2 weeks just to check the status, they might give you the number on the spot, or they might tell you that there was a problem they forgot to tell you about.
Open a Bank Account
[You are tired of incurring heavy transaction fees every time you need money]
May I suggest opening a bank account as soon as possible? As early as the day you arrive in America? Bank of America was seemingly the only bank that allowed me to create an account without a Social Security Number. So do that, it takes like 20 minutes and they give you a credit card, which is mandatory for a phone/internet/cable. Lastly, once this is done you can transfer over all your Canadian money and start writing cheques from your American account.
Get an American phone plan/number
[You realize that no of the real-estate people will email you back]
Guess what? You have no credit or SSN! So be prepared to pay a $500 deposit if you choose to go with AT&T. This is not negotiable. Having a call back local phone number is pretty damned important as your try to find a nice place to live. Do this as soon as you can.
Welcome to the United States of America
[You are happily settled into your new job and home]
I hope you found some part of this post useful. If you made it through the border safely and are living up in San Francisco, please give me a shout and I’ll buy you a drink and be your one man welcoming party. This city needs more Canadians so we can setup the very first Beaver tail shop in California.
Does this post qualify as a violation of your visa? Just sayin’…
Because I am divulging all of your country’s secrets? maybe
When I applied for my second TN1, they Googled my name and found my blog. #themoreyouknow
This is extremely useful information. It’s great that you decided to type all this up– this kind of information is always the most important one, but also the hardest one to find.
I’ve had this post open in my browser for the last week since I got an offer and I’ll keep it open until I finally land in SF with my T1. Awesome tutorial, much appreciated.
Woooah! I’m glad my wall of text post didn’t scare everyone away, Once you make it here safely, and my post was able to help at least 1 person, I’ll say that it was all worth it. Good luck with the move! I’m sure we will be chatting about this in person sooner than later.
Definitely. I’ll actually be working in SoMa too (at nowmov.com) so we should definitely meet up once I’m there.
Do you have any tips about getting a drivers license? I heard I have to take the test again. Is there any paperwork from here that I need to bring?
Sorry, I don’t drive. Maybe we can take our road tests together, but good luck driving in the city :D
I hope you like hills!
I took the drivers test after I passed. It’s tedious. Have passport and SSN. Do a written test then road test. No learning period as you have a Canadian license.
Wow,
I think you’re my doppelganger, U of T CS represent??. I just had an offer and will be making my way over to the bay area soon after 12 years in Toronto. Thanks for posting and we should definitely go for beers once I’m down there.
Wayne.
Hah, yeah UofT CS for sure. Congrats on the offer! I hope this post was useful to you. Where are you moving to? I’d love to welcome you with a nice pint of gross american beer when you make it down here!
Any idea of how someone who doesn’t currently have a degree can get in? I suspect I will need some sort of certification or possibly have to just go to some university and challenge the courses.
I addressed this question a while back on Quora, hopefully this can help out!
http://www.quora.com/How-can-a-Canadian-Citizen-emigrate-to-the-USA-without-a-TN-Visa
Thanks for reading my blog
Hey Ian nice post! I know this is an old post but I just found it through Google because I’m heading down there soon :)
[...] for Twitter as a Software Engineer. This is a rough guide — in the spirit of @chanian’s tutorial for Canadians — based on my experience of relocating, the mistakes I made along the way, and some [...]
Thanks for the post! I’m also a UofT CS heading for Software Engineer intern job for 16 months to the Bay Area. (undergrad). This was useful!
Thank you very much for this very interesting post. I plan to move to USA as a Computer System Analyst in a couple of weeks and your experience is very usefull for me.
I forgot. Can you mention on which type of contract you are working (W2 or 1099). If my understanding is good, as a TN-Visa holder, this only possible type of contract is W2, but, can you confirm? Thanks.
Both H1-B and TN-1 should be on a standard W2. I don’t actually think you can legally do 1099 contracting work on the other two types of VISAs, but you’d have to talk to a immigration lawyer to confirm that.
Glad my post helped.
To qualify as an engineer, do you need to have a related degree? The NAFTA handbook just lists a baccalaureate as the minimum requirement.
From my experience yes. I was questioned about details of how my BSc was related to software engineering. Additionally I’ve known friends who were denied because they were unable to sufficiently show how their undergraduate degree was related to their job.
Having said that, I’ve had friends get in with no problem, so it’s best to consult an immigration lawyer or specialist.