Your resume is fine (just make the GPA more obvious - convert to 4.0 scale or something).
I've worked at some of the companies you mentioned and I regularly do technical interviews for internships. Here are some tips:
- Try to get a referral. This is by far the easiest way to stand out if you are not from some of the top colleges the company is actively targeting (top tier firms go on campus recruiting trips to the best schools in US and they get most of their candidates from that pool). Explore your network - do you know anyone that went to your school and now works at one of these companies? Ping them.
- Start applying early. Usually the company decides upfront how many internships they're going to offer that year. So if you apply late, your changes of getting in are lower - they've very few slots left and they can be very selective. Go on LinkedIn and look for recruiters from the company who handle University Recruiting specifically. Ping them and ask them about internships and their recruiting schedule.
- Try applying to companies in Europe like someone else suggested.
Also don't worry too much if you don't get into your dream internship now - it's not the end of the world. I have been in a similar boat - I went to school in Singapore and I got rejected by every single company in your list for internships (my school is one of the top 3 schools in Asia but that still didn't help). Instead I ended up interning at some local startups. 6 years later things have changed - I've worked for some of the companies on your list and every company that has rejected me in the past is now trying to actively recruit me. So don't get disappointed - keep learning, contribute to open source projects, apply to Google Summer of Code, keep participating in competitive programming contests and be the best you can be.
I've worked at some of the companies you mentioned and I regularly do technical interviews for internships. Here are some tips:
- Try to get a referral. This is by far the easiest way to stand out if you are not from some of the top colleges the company is actively targeting (top tier firms go on campus recruiting trips to the best schools in US and they get most of their candidates from that pool). Explore your network - do you know anyone that went to your school and now works at one of these companies? Ping them.
- Start applying early. Usually the company decides upfront how many internships they're going to offer that year. So if you apply late, your changes of getting in are lower - they've very few slots left and they can be very selective. Go on LinkedIn and look for recruiters from the company who handle University Recruiting specifically. Ping them and ask them about internships and their recruiting schedule.
- Try applying to companies in Europe like someone else suggested.
Also don't worry too much if you don't get into your dream internship now - it's not the end of the world. I have been in a similar boat - I went to school in Singapore and I got rejected by every single company in your list for internships (my school is one of the top 3 schools in Asia but that still didn't help). Instead I ended up interning at some local startups. 6 years later things have changed - I've worked for some of the companies on your list and every company that has rejected me in the past is now trying to actively recruit me. So don't get disappointed - keep learning, contribute to open source projects, apply to Google Summer of Code, keep participating in competitive programming contests and be the best you can be.