I'm a Canadian SWE who moved to the US in 2017. I was in my mid 30's at the time. I can't tell you how you can do it, but I can say how I did it.
I ended up getting a job offer via Triplebyte. The good thing with them is that they don't consider Canadians as needing a visa. They provided the lawyer assistance for arranging the TN visa documents. This may have changed. Triplebyte is much different than they were a few years ago.
Also, that year I had attended Pycon and got a lot of introductions to companies at their hiring event. When I was looking to make the move, I must have had 8 onsite interviews. I failed every one of them except the place that hired me.
This is because the interview process is much different compared to what I had in Canada. In Canada, it was basically a crapshoot. I never had any idea what to expect. Usually I just talked about some of my past projects and maybe had some easy programming question. US companies are more structured. You're usually gonna have around 2 coding rounds, 1 system design and 1 behavioural. You may think "I have 10 years of experience so I don't need to really prepare." I'm sorry but that would be wrong. You need to prepare more because a lot of the types of coding questions you get asked are things you rarely encounter on the job so your experience isn't going to help you for interviews much (except the behavioural and maybe partly the system design). You can complain about it but it won't help you achieve your goal.
I wanted to switch jobs again this year and I didn't want to have the same experience last time of failing so many onsites so this time I signed up for an interview prep program. There's a few available but I went with Interview Kickstart. It was 6 months of preparation but it was the first time in my life where I felt fully confident going into interviews. I knew what to expect so I didn't feel nervous and I had practiced mock interviews to get feedback and make adjustments. I've had 4 onsites with results so far and received interest from all of them for offers.
Completely agree with you about the career growth opportunities in the US. It's a major career regret of mine that I didn't move sooner. For specifics, when I left Canada I was making $90k CAD. I felt I was pretty close to the ceiling (not living in Toronto or Vancouver). The first US job doubled that but in USD and now these new offers have doubled that again. Plus the work is way more interesting and challenging.
I came on a TN visa and now have a E37 green card sponsored by my company where I work as a software engineer. The GC was issued 1 year ago but I would like to look at changing companies while still being in an SE role.
Is there anything I should be aware of with regards to citizenship if I should apply in 4 years?
First off, you're probably earning more than 115k in the Bay Area.
I moved from Canada and went from $90k CAD to $180k USD. Even with the high cost of rent, I can save more here than what my take home pay was in Canada. I'll admit though that I don't have kids and I don't have health conditions. That would change the equation a lot.
Additionally, the ceiling is higher here. I felt like I was approaching the ceiling in Canada unless I wanted to move to Toronto.
I ended up getting a job offer via Triplebyte. The good thing with them is that they don't consider Canadians as needing a visa. They provided the lawyer assistance for arranging the TN visa documents. This may have changed. Triplebyte is much different than they were a few years ago.
Also, that year I had attended Pycon and got a lot of introductions to companies at their hiring event. When I was looking to make the move, I must have had 8 onsite interviews. I failed every one of them except the place that hired me.
This is because the interview process is much different compared to what I had in Canada. In Canada, it was basically a crapshoot. I never had any idea what to expect. Usually I just talked about some of my past projects and maybe had some easy programming question. US companies are more structured. You're usually gonna have around 2 coding rounds, 1 system design and 1 behavioural. You may think "I have 10 years of experience so I don't need to really prepare." I'm sorry but that would be wrong. You need to prepare more because a lot of the types of coding questions you get asked are things you rarely encounter on the job so your experience isn't going to help you for interviews much (except the behavioural and maybe partly the system design). You can complain about it but it won't help you achieve your goal.
I wanted to switch jobs again this year and I didn't want to have the same experience last time of failing so many onsites so this time I signed up for an interview prep program. There's a few available but I went with Interview Kickstart. It was 6 months of preparation but it was the first time in my life where I felt fully confident going into interviews. I knew what to expect so I didn't feel nervous and I had practiced mock interviews to get feedback and make adjustments. I've had 4 onsites with results so far and received interest from all of them for offers.
Completely agree with you about the career growth opportunities in the US. It's a major career regret of mine that I didn't move sooner. For specifics, when I left Canada I was making $90k CAD. I felt I was pretty close to the ceiling (not living in Toronto or Vancouver). The first US job doubled that but in USD and now these new offers have doubled that again. Plus the work is way more interesting and challenging.