Friday, 9 August 2013

Landing a job with E3 visa in Silicon Valley

Why Silicon Valley?

It's probably every software engineer's dream to work in Silicon Valley, to rub shoulders with the best in the world and to tackle the most interesting problems on daily basis. Unfortunately, for those born outside of US, that will remain just that: a dream, thanks largely to the stringent 65,000 H1B visas quota every year.

Not so for the Aussies.

Thanks to the FTA negotiators (and George W Bush) back in the early 2000's, Australia is currently the only country in the world eligible for E3 visa. So to leave one of these 10,500 annual quota unclaimed while still dreaming about Silicon Valley is just not on!

To get an E3 is not difficult. There's literally thousands of blogs and Q&A on how to apply for it. But none of it matters if you cannot get a job offer in the first place. Job application is always the most difficult part, yet it's also the part people least blogged about. I guess that's because everyone's situation is different.

So, for whatever it's worth, this is my experience of landing a job in the Silicon Valley as a software engineer. Hopefully, it can help someone out there.

Starting The Job Search


There are many ways to work in Silicon Valley: through a friend or network, get transferred from Australian office, meet recruiters who fly out to Australia, create a start-up etc. Congrats if any of these avenues is available to you and you're happy with the position and compensation.

For me, none of the above was effective, so I resorted to the old fashion way: job sites.

In my opinion, it's the best option because there's more selection, more flexibility and better match for my skill set. In Silicon Valley, small is beautiful, and job sites are often the only way to introduce yourself to them.

Moreover, I planned from the outset to chase as many offers as I can in order to leverage my negotiation power. I let the recruiters know about it and they encouraged it for obvious reasons.

Preparing Resume


The first thing I did was to get my resume ready. It's no different from preparing a job search in the Aussie market, with one exception: phone number.

I read it somewhere: "Never leave an Australian number in the resume" and it turned out to be one of the best advice. I discovered later recruiters simply don't dial international numbers, it's part of their job training!

So, I apply for a US number through Skype Number service. You can pick whatever area code you like. I picked (408) because it's a well known area code in the south bay; basically the area I wanted to work in.

I left my Australian address in the resume to let the recruiters know I'm a foreign worker looking for a visa. I didn't leave age, marital status or ethnicity because, by law, companies in US must adhere to the equal opportunity hiring practice.

As for availability date, put down the actual date which you'll be available, never put down anything like "Depend on E3 application process", it'll confuse the hell out of the recruiters.

Job Search


Once my resume's ready I proceeded by surfing the major job sites e.g. linkedin, indeed, and cybercoders and look for both permanent and contract positions. At this stage, I really don't care how stable/unstable the position is, I just want to get my foot in the door.

One thing worth mentioning is that searching with keywords like E3 or H1B will almost never yield any result. If anything, you'll only find ads that say H1B is not welcomed.

It took me a while but I was eventually able to view myself as a local candidate. After all, E3 is a subclass of the E visas (the Employment visas), so we're really not that different from someone holding an EAD. So whenever I'm challenged with the question: "Are you allowed to work in US", I have no problem to check "Yes" because I know E3 application is really no hurdle.

I've also read it somewhere it's a good idea to travel to US on VWP for 3 months and do face-to-face interviews. While this may be true for other industries, it's definitely not for IT. In fact, companies ubiquitously carry out one or two phone / Skype interviews and online coding exams before ever inviting someone to the office. At this stage, they couldn't care less if you're living next door or half a world away, they just want to know how good/bad you are. I certainly saved a lot of money by staying in Australia.

Talking to Recruiters


Be prepared to hear nothing back for 90% of the jobs you applied for. At least that's what happened to me. Most likely because they don't want to hire a foreign worker, but I can never tell. For those that do got back, it's almost always the agents who called.

The initial calls always come in the middle of the night, so I used the Skype messaging service to tell the caller I'm unable to pick up the phone and I'll call back, translated to English: "I'm in the middle of my sleep, in a time zone 18 hours ahead of you, and you are talking to my Skype account". When I call back, I always let them know their 2pm is my 7am and they'll quickly adapt to the call pattern.

Most recruiters aren't familiar with E3, so you'll have to explain it to them. The key points to mention is it doesn't apply restriction on who you can work for and there's virtually no quota restriction.

Keeping a good relation with your recruiter is paramount. These guys can get you to interviews you'd otherwise have no shot at. I was fortunate enough to impress one of the larger recruiters, Jobspring, and they just send me to one interview after another. They even passed on my resume to their SF office (80 km away) and ask for more help. It was as if I've struck a gold mine. Can't say enough good things about these guys. Look them up when you get a chance.

Phone Screening / Online Coding Exam


This is the where rubber meets the road.

In Australia, most interviewers ask about work experience on certain programming language, framework or product and a few questions on the fundamentals and design (anti-)patterns. Not so in Silicon Valley. They love to dive right into the theories e.g. how would you implement a LRU cache?

I had to spend a good couple of months on my books from Uni just to get re-acquainted with all the data structures, algorithms, big O notation and concurrent computing theories. I learnt or re-learnt everything from BST traversal, RPN, Shunting Yard, sorting algorithms, collections I never knew existed to some of the programming fundamentals I've overlooked in the past. I visited CareerCup and worked through many of the interview questions. In the end, it was time well spent. I strongly recommend it to everyone, even if interview is not your favourite activity.

Beware the online coding exercise is not for the fainthearted. Not only are you pressured to get the right answer, you're also pressed by time. A couple of times I was able to come up with the right answers but was never invited back for a second round simply because I wasn't fast enough. Chances are, I would've never enjoyed working in those companies anyway.

Test yourself and see if you can write a bug-free in-order BST traversal iteratively in 15 minutes.

Beyond the coding questions, you've got to know your stuff well to impress the interviewers. I went through at least 20 first round interviews and 10 second rounds (each lasting at least 1 hour) in the span of 4 weeks and as time wore on, I got sharper and sharper. I can answer the follow-on questions before they even had a chance to follow on.

I can safely say, I've done more interviews in one month than many people have done in a lifetime. Not sure if it's applicable to everyone, but it's definitely something to prepare for.

"Why Do You Want to Work in US?"


By far the most common question in interviews, and in some ways, a difficult question to answer.

Imagine someone asks you "why do you want (or not want) to get married?". You can either convince him with a few words or argue about it for hours. The bottom line is: it's a very personal question, there's no "right" answer. It's the same with this question.

At the beginning, I'd give a long-winded answer like "I want to work with the best", "Design large scale system", "Work on the most challenging problems" ... blah blah blah. Only to invite questions like "What do you mean?" and "How do you know this is what you'll be doing?"

Over time, my answer got shorter and shorter until it's just a one-liner:

"I've been working in Australia for xx years and I feel like it's time for a change of scenery"

In a few cases, that's all I needed to say. If the interviewers wanted to know more, I'd give them a few more lines and wait for them to respond. The more they asked, the quicker they move on to other questions.

Still, one interviewer managed to spend 10 minutes on this question. Needless to say, we had a mutual dislike towards each other and the interview ended pretty quickly thereafter.

Face-to-face Interview


By the tail end of the month-long phone interview process, I was able to distill my leads down to about 6 to 7 companies. And that's when I booked my flights and hotels. I asked my recruiter to book 2 interviews a day, one in the morning and one in the afternoon over 4 days.

It turned out to be a really bad idea.

Each final interview was at least 5 hours long! I thought, alright, the next one can't be 5 hours, and it went for 6! I lost count the number of times my stomach rumbled for the lack of food. It was quite a culture shock.

Still, I can't complain. Spending long hours in the interview rooms can only mean one thing: I'm still wanted. Sure enough, offers came on the third day and I knew it was worth it; I wasn't going home empty-handed.

The interviews were pretty much the same as phone interviews, except the interviewers come one after another, each talking for about an hour. Since the start-ups usually hire nothing but engineers, everyone asked technical questions, only some behaviour questions and they're usually easy to answer.

I didn't get anything out of the left field like "How do you estimate the number of people currently logged on Facebook?" I'm sure even Google have stopped asking these silly questions, so there's no need to prepare for them.

Negotiations


I was lucky enough to get a few offers and talked up my price a little bit. I ended up with a figure exceeding my initial expectation, but I didn't stop there.

I threw in questions on health covers, annual leaves, relocation costs and most important of all, Green Card. At this stage, I was in the driving seat. E3 was a foregone conclusion. Companies were more than happy to shell out $5,000+ to get it done; they've spent far more on H1B's in the past, five grands is like pocket change to them.

Obviously, the promise of GC will depend on my performance in the next few years, but it's comforting to know there's the possibility.

Anyway, that's pretty much it. I hope my experience can offer help for others out there. Look forward to hearing about your stories.