First of all, Russians are heavily prepared; they are not ordinary students.
Their universities typically have a special department, which specializes ONLY in solving abstract Olympiad problems.
Studying there is free, but in order to get in, you need to win a contest. Only 1 in 500-1000 students is accepted and only from eligible specialities (math and computer science).
The competition is insane. According to Sergey Monin, they either have outstanding programming skills or are math prodigies.
Second, all teachers are ex-winners (i.e. they won a few international contests but simply outgrew the program. Now they teach newbies). Essentially the same group of people will win repeatedly.
Finally, universities have direct benefits from this. During any convenient opportunity, they boast by saying “WE WON A WORLD CHAMPIONSHIP!” (Read: our university is better than MIT, Stanford, and Berkeley combined.) Additionally, it’s often used to get financial aid from the government.
Not surprisingly, with such selection and training, they win contests.
Now back to tech companies…
Russia has tech companies like; JetBrains, Kaspersky, Dr. Web, Nginx many of small and medium-sized companies in every city.
Why Russia Don’t Have Giants Tech Companies Such As Google, Microsoft, and so on?
The answer is simple – Programming skills are not enough. In order to succeed, a company needs designers, managers, competent leadership, investors, customer support, and so on.
Finally, “𝗰𝗼𝗺𝗽𝘂𝘁𝗲𝗿 𝘀𝗰𝗶𝗲𝗻𝗰𝗲” 𝗮𝗻𝗱 “𝘀𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗲𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝗶𝗻𝗴” are two different fields. While they can solve difficult, abstract problems their code is often messy and unreadable. To build complex systems, you need to have vision on software architecture and be a team player.