A few days after my 24th birthday I received a LinkedIn message from a Yahoo recruiter. What a coincidence - I had just started my own job search a few weeks prior. Due to the timing, I didn't actually get to fly down for the in-person interview until nearly the end of January. Another month had passed until I received my actual offer package.
At this point I severely underestimated the amount of time needed to finish a background check, and ended up giving notice way too early. I spent the next month or so enjoying funemployment.
Preparing for the move
Packing was straightforward - all my posessions could fit into my compact sized car. I did end up selling my piano on kijiji. I'm not usually one to be attached to posessions, but I've owned that piano since I first moved to Canada, way back in 1997. I sold it to an Indian family - the dad mentioned his son was just starting high school and wanted to learn piano. I hope he makes better use of the piano than I did.
Being a Canadian citizen has its perks - the TN visa is a common choice for Canadians looking to work south of the border, and it's much easier to get than some of the alternatives. Your company's immigration lawyers will look at your degree and decide which TN designation you will apply for - Engineering if you're an engineer (duh), or systems analyst if you have a CS/math degree.
The designations are pretty outdated due to the laws governing the visa being written a few decades ago, so there are some key points regarding the systems analyst designation that any aspiring job seeker should know:
Your job description shouldn't involve any programming. (I ran afoul of this one thanks to the lawyers putting "PROGRAMMING" as the first item in my job description and had to talk my way out of it) Shoutout to /r/cscareerquestions for help on this.
You apply for the visa at the border on the day that you fly/drive out. I've been told it's ill-advised to drive to the border to get the visa in advance.
If you get rejected, you can try again after fixing whatever mistake was on your original application. This means you're pretty much at the whim of the border guards.
Living in San Francisco is expensive. I was not mentally prepared for this before moving here. Expect to spend at least $2000/month for a tiny studio near a desireable neighborhood and about 1500$ if you're sharing with a roommate. On the flip side, utilities are a negligible portion of your rental costs due to the weather here - you never need to run the heater or A/C.
Corporate housing takes alot of the stress out of finding a place. I stayed at a well furnished 1BDR near the financial district for a month, which was plenty of time to find a more permanent place.
I highly recommend Padmapper for your housing search. Craigslist is pretty popular in this part of the world, and padmapper dresses it up with a convenient interface.
Scammers are pretty common, and usually involve some variation of the landlord being halfway across the world on a business trip, but send him the deposit by Western Union and his neighbor will totally give you the keys and show you the place! If it looks too good to be true, that usually means it is.
Rental applications require a credit check, and Canadian credit histories don't transfer over to the US unfortunately. You can use your offer letter instead to secure your application. I'd heard alot of horror stories about how competitive the rental market is - about people lining up with cash down payments just to secure a place. In my admittedly limited experience, it was pretty relaxed and I was approved for most of the places I applied for.