in the former Soviet Union the state of programming is odd. A lot of smart people there. May be the smartest in the world. But they don't have any experience with large projects.
Russian programmers (or Ukrainian, no matter) understand algorithms. The hardware they dealt with was so outdated, slow and unreliable, the algorithms had to compensate. The new generation grew up with PCs, Windows, Linux. They understand programs, modules, libraries, UIs and SDKs, not just algorithms. That's a huge step forward.
However, the understanding that a three-tier system is more than a few programs that happen to run at the same time is not there yet. It may take another generation to get that right.