The Package Disclaimer
The news articles represented much inflated figures, as they include one-time payments like joining bonus, relocation bonus as well as stock options with 4-5 year vesting cycle and pass it off as annual package. The base annual salary for new hires is mostly uniform across companies at about ~$100,000. Sometimes backdoor negotiations with multiple offers can increase it slightly. However the taxes are much higher than India. In states like California, there is a state tax of ~ 9.5% (thankfully it's 0% in Washington) bumping the taxes to > $30,000 annually. Also cost-of-living is way higher. The post-tax annual salary is around Rs. 35 lakh (if directly converted) which is much lesser than dream figure of Rs 1 crore +. I'm not saying all this because I get lower (I don't) and therefore am trying to pull them down. I'm just trying to let people know to base comparisons against more realistic figures, and know what you're signing for. There are certain finance companies in India that offer amounts like that (Goldman Sachs (company), WorldQuant, Tower Research Capital) which pay almost that much in India so if earning a lot and saving is primary interest I'd recommend trying those options out. Read more on this here in this brilliant article by Antariksh Bothale.Shortlisting
Anyways if you still want to know about these (high-tech) jobs irrespective of the disclaimer, read my answer to How do I get a H1B visa to immigrate from India to the Silicon Valley? It's a pretty enumerative list of how to get noticed by these big companies. For on-campus placements, the usual way of shortlisting is two-fold with filtering students based on GPA cutoff, and then conducting a coding exam. There are generally 2-3 coding questions requiring compilation, alongside few objective questions. Ones with best solutions (compiles quickly, no errors, few warnings, passes most test cases) make the interview. Outside of campus, as mentioned in other answer some ways to get noticed are HackerRank, Github contributions etc. The most common way is to get referred by a company insider (friend/ex-colleague).Have a good resume, with 1-2 internships at least, something noteworthy and there's a very good chance of hearing back from some member of their HR department. Frankly, I've had almost zero luck in posting my resume on careers@x.com,so I would be fooling anyone by recommending that. It might work, but isn't great for beginner levels. However I've to admit that I don't know more of the protocol from "non-premier institutes" although I've lots of peers who are from them, mostly via Master's route. Also maintaining a LinkedIn profile is good for this purpose.
Interviews
Except for on-campus application, you'll be subjected to phone interviews. There will be more of these if you're in India than in US already. The questions (and format) will almost resemble the later interviews. After 2 or more rounds, if they find your knowledge of CS concepts to be good enough they'll fly you to their onsite (although I've heard at times conducting interview in India offices). Here typically in a day there will be 4-5 interviews of 45 minutes each. With an initial introduction of some work you've done- a project with some questions like "what would you have done differently", "challenges" and suchlike the interviewer proceeds to do a "technical question". This is typically a question based on data structures/ algorithms and you're required to write code on the white-board while explaining what you're writing. Code needn't be syntactically perfect, but it's good to be as close as possible. You can find most of these questions online, and with enough practice (1-2 months) new questions won't be too challenging as well. However interviewers ask follow-up questions altering constraints, asking scalable solutions etc. If you have memorized solutions to questions, this is a likely avenue for getting stuck as these questions tend to depend on the direction the conversation took. Interviews are wrapped with typically 5 minutes remaining for "do you have any questions from us?". It may feel repetitive as the candidate to ask similar questions, but still ask. This will demonstrate genuine curiosity in the company, work-culture. In short, this is the part where you demonstrate not being desperate and one where you're asking them to sell the company to you. A non-snarky and non-desperate attitude goes a long way.How to Prepare
If you haven't already, read a complete DS/algorithms book. I'd read Data Structures and Algorithms in Java: Michael T. Goodrich, Roberto Tamassiaduring my college placements. If you can (not required necessarily), do try Introduction to Algorithms. This creates a firm base for trying out questions. Practice some of the common algorithms by writing code for them. Have a package for each of the common data structures in your local machine in any language of your choice (preferable if it is C/ C++ / C# /Java/ Python). Write working code for standard algorithms for each of these- for example, for binary trees, write working methods for tree traversal algorithms, try various inputs and see it works as expected. For linked lists, write code to reverse it; for graphs, traversal such as BFS, DFS as well as Djikstra's. Meanwhile, you can pick up the book Cracking the Coding Interview to see how you can reason through questions, and when you get stuck how the author drives the thought process underlining assumptions and method. I'd advice doing all 150 problems in the book multiple times, and by coding them rather than just thinking algorithm in head. In parallel, you can also start looking for other resources such as geeksforgeeks.com, Leetcode OJ. I didn't do much of the former, more of the latter as compiled code gives confidence. At this stage itself, you should be prepared. Apart from these, do read a little bit on threads/ processes/ networking/OS concepts. If you get a question on these, you can be frank and declare not knowing them in much detail. When you're confident of all this, do practice your resume. Although it's frowned upon to have a tailored answer to "tell me about yourself" it's better than not having practiced at all. Remember the question is a shorthand for "why should I hire you?". You shouldn't be telling the interviewer about your interests in football. Finally go through the answers from Gayle Laakmann McDowell on Quora.[1] She has multiple times laid emphasis on the perspective of the interviewer. Lots more answers here on the topic: What should I expect in a Software Engineer interview at Google and how should I prepare?
Non-Coding Careers
One of my best friends worked in EXL as a Business Analyst. They moved him to NYC after 1.5 years. Then he switched jobs further (in banking), and makes similar sum of money as you posit. Many of the companies which come on-campus offer such opportunities, and give good compensation within India. However for Goldman Sachs, WorldQuant etc. I think it's very unlikely they consider candidates from non-premier institutes without high GPA and it helps to attempt MBA from IIMs if you don't meet the criterion. For consulting companies, the interview process is based a lot more on soft-skills. For analytics, it's based on puzzles (Tech Interview). Since I don't work for these, I'd advice seeking advice from someone else in these lines. But the bottomline is over a period of few years, these fields offer very lucrative careers. Especially within India, some of them are more lucrative compensation-wise than Google, Microsoft offers.Personal case
As I can see people asking me anyhow on my specific case, I didn't have a major in CS, but Mathematics & Computing from IIT-Delhi. I didn't have a particularly high GPA (~ 7.5/10). During on-campus placements, I'd not read from so many sources. I just did well enough to get through Epic's coding exam and interview. When I began reapplying within US, I got interviews in Google, FB, Microsoft, Amazon via referrals from friends/ batchmates. I guess the best thing on my resume was an IEEE publication. I made it to onsite of all these companies + 3 more. Got offered a software developer position for MS Excel. Accepted it. Anyhow, the point is I am by no means coding in my sleep, nor have attempted any competitive programming ever. I'm as average as programmer can get. However I was pretty good on the mathematics side of things. Basically: if you can develop thinking process to reasonable level + learn how to code, it's manageable to get hired for these packages. Without an elite college, GitHub and Stack Overflow participation helps.[1] http://ift.tt/2eQP7iQ
Read other related questions on Quora:
- What is the worst question you were asked in software engineer shortlisting tests?
- What are the hardest questions you can get asked at a Facebook engineering candidate interview?
- How did Krunal Patel from BITS Goa get a whopping package of 1.44 crores from Google?
from Quora http://ift.tt/2fkV73V
No comments:
Post a Comment