A VPN resolves this issue and provides encryption and authentication.
A VPN is non-trivial to set up correctly. Have you set up an internal DNS to prevent leaking the domains from requests? How about IPv6 leaks? There are many things to consider, and I wouldn't trust a random programmer to do it correctly.
I wouldn't trust your programmer much at all if they couldn't configure OpenVPN with correct DNS settings, given some time.