If he didnt attend and interview or discuss these perks prior to signing a contract he fucked up.
If he was genuinely misled then he can actually make a complaint and pursue it but it sounds like he didnt do much checking at all.
It sounds like he read the contract/offer and that it wasn't at all like he had previously discussed with the recruiter.
"£15k less salary than advertised in the offer"
Means the salary was X but he was paid (X - 15k).
I know trainee developers (no education but some skills) who have started off on £21k and that is low for IT in London. I find it hard to believe that any IT role in London was filled for £15k by anyone other than the most junior of people.
If you're only getting $30k (~£20k/year) as a software programmer of any kind, anywhere in the world, you should seriously consider finding a new employer, even if it requires emigrating. And remote jobs still exist.
Canada has the 3rd largest video games industry in the world--after the US and Japan--and its growth has strained the available talent pool. So you might consider Toronto, Ottawa, Vancouver, or Montreal. I have heard that UK-to-Canada emigration is more easily done than UK-to-US, though I had never had any particular motive to investigate the claim.
The "games" jobs earn less on average than the less-specific category of "software" jobs, and "programmer" earns less on average than "developer" and "engineer". So if you don't move, maybe you could pad out your resume to be a "software developer" instead.
I am biased somewhat by working in the US, where software writers are legion, and paid more than elsewhere, but if you have any skill at all, you can probably be paid more for work similar to what you do now.
We don't have an international union, so I don't exactly have any leverage here, but I want you to be paid more. Do you seriously think that you are so far below the median level of skill for a C++ programmer with a degree and two years of experience, that you should be paid so little?
Go. Look for another job, and find out just what they would be willing to pay you. With an offer in hand that you could accept on its own merits, go to your current employer and, without mentioning anything about your other offer, ask that your pay rate be reevaluated, to match your skills in the current market. If you don't get a significant payrise, then at that point, you can decide whether it is worth more to have extra cash in your hand, or to keep a job that you know you like, but pays peanuts--stale peanuts at that. Remember, you don't have to accept any offer you don't like.
For now, you seem to have decided that you like your current job £15-20k/year more than anything else you think you could possibly get.
The most important thing though is that he's learning: that means he will still be able to get better opportunities later. Once the learning stops, it's time to get out.
Further, I seriously question that a different job would be one that they hate.
But you can also pay privately for treatment. I'm not sure why you would chose to do so - you get a private room but not much else. (There's a possibility you get slightly worse outcomes)
Dental isn't free even on the NHS (although many people get exemptions) so paying gets you better dentists, with better wait times, and more cosmetic options.
Did your co-worker actually take this job, without doing the due diligence of reading the contract and the offer letter?
- £15k ($23k) less salary than advertised in the offer
- No benefits (healthcare, dental, etc)
- No free food/snacks/bevare at the company
- No perks (equipment, etc)
When questioned about this, the recruiter said: hey! impossible to get this, this is were I make my money you know!. How is this a "fantastic offer for an engineering job in a comfortable office with great pay and great working conditions"?