I did this for a year and a half before I realized: I was being taken advantage of. And I get it: He took a chance on me, trained me, etc. I fixed tons of bugs in his system and improved his customer base by thousands. Aside from fixing bugs, they told me my job was to improve the user experience and user interface to make it more user-friendly. I did just that.
But at $12 an hour with $40k debt and bills to pay, where exactly was I going? It was corporate slavery -- which is all too common for most programmers. Coding monkeys. He was also an arrogant asshole.. one of those bosses who was a micromanager and would even make me email him our conversation that we had in meeting, and then he would critique our own meeting and my words as he wanted them. More time was wasted doing this than actually programming.
As much as I loved programming, I couldn't live on that salary, nor do anything or go anywhere with my life. He ended up offering me double my salary only when I had put in my 2 weeks. I really just had checked out and didn't want to be there, so trying to negotiate a salary would have come with too many strings. "I'm paying you do a job... why didn't you do it this way" etc. etc. Yeah, he was that type of person.
Luckily, I eventually got out of it... if you are interested in reading more about that: http://www.confessionsoftheprofessions.com/the-opportunity/
Unless you work on the coasts, like Silicon Valley area or New York, I think programming jobs around the country are much less. When the market is saturated though and people are desperate for work, companies can take advantage of that.
A more principled person might not have hired you at all and instead looked to hire someone with good experience at good rates, because they "want to do the right thing" and then you might not have gotten the experience you needed.
And good work getting out of there. I think in secret your ex-boss respects you for doing it. You say he says good things in front of people and bad things behind them, and at the end he said bad things in front of you, perhaps now behind your back he tells your ex-coworkers good things. :-)
His greatest lesson to me: You can't really code for the customer if you don't understand what your program is supposed to do for the customer.
Though we did part ways and he did say some words to me that I was not fond of. That was just the type of person he was. I actually parted ways with him more nicely writing an email thanking him for giving me exposure to the programming world once again. He was mad about it, but hey, I was being courteous and trying my best not to burn bridges.
To let you know the type of person he is/was: I received a nice paycheck from the IRS a few years later out of no where from his business. He must've been audited.
But he did take a chance on me and I am grateful for that. It pushed me back into the world of programming and development. Without this job, I wouldn't have gotten the experience for the companies that came afterwards to take me seriously as a professional coder/programmer/developer.
And Visual Basic 6.0 was quite outdated... he was probably the last company to even still be using it. Had I stayed, I was working on a web version of the program. But choosing another job, going forward, moving on... I actually got hired and moved across the country by another company.
Russia, @homakov writes that he made $3/hr as a php dev there before specializing in appsec and contracting himself out. https://medium.com/@homakov/how-i-started-in-web-security-40...
http://www.gks.ru/wps/wcm/connect/rosstat_main/rosstat/en/fi...
http://rbth.com/business/2016/05/20/the-average-salary-in-ru...
http://www.tradingeconomics.com/russia/wages
I think the best option for you/your friend is to get contract work outside of russia.
Judging from the BLS salary statistics [0] (which are based on more comprehensive data than those gathered by any job site), they are, while probably accurate for the subset of jobs they are derived from, not generally representative of overall salaries.
This would be ridiculously low salary there.
In the past (over 10 years ago), when dealing with Russian contractors rates were much higher (think $20 US an HOUR as a floor, so 40k a year).
However this is pre Ukranine issues. The market for programers there may have dried up over night as everyone is dealing with sanctions and money moving issues.
I might know a few people around here that might make more than 100k as programmers but, they are either project leads with a lot of responsibility, or they own the business and have a few large US clients.
Of course, all of my US colleagues earn much more.
For instance, for 20k a year you're homeless in NYC vs. having a house, a car, some land, and pretty good dining in rural Georgia.
I'd recommend the OP look up cost of living, as well as just applying around in his area for jobs to see if he's getting underpaid or not. If other firms are willing to pay more for his or his friends skills, its a good sign he's getting underpaid otherwise probably not.