Main two types of interviews for interns are usually: a coding interview and a behavioral interview.
We recommend trying to participate in and getting as far as possible in competitive programming. The most popular such tournament is ICPC. We think if you get into ICPC World Finals your chance of getting an internship at a company like Google is ~90%. If you get into ICPC Semifinals, and your English is very good, and you do great at behavioral interviews then we think your chance is about 20% which we think is still very high.
If you want to avoid the competitive programming part we recommend working on your own project or getting another internship earlier and building something impressive.
If your university allows, keep applying for internships from your junior year, both for Summer and Fall seasons.
Google Summer of Code. It's a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3 month programming project during their break from school.
Application deadline in 2020: March 31
The MLH (Major League Hacking) Fellowship is a 12 week internship alternative for software engineers. Instead of working for a single company, you'll work on the Open Source projects that every company depends on.
You must have a bank account in one of the following countries or regions: Australia, Canada, the EU, Hong Kong, India, Japan, Mexico, New Zealand, Singapore, Switzerland, the UK, or the US.
Application deadline in 2020: May 22
Communities to join:
In Russian language:
SNS Internships Telegram group. SNS stands for Startups Never Sleep. It was a Russian-language group about startups that grew large and gave rise to subgroups including the one about engineering internships.