One recent thing I just found is a view that has about 8 source HTML files, all of which is quite complicated angular1 code. Then when the team was asked to have a slightly different button for an ADMIN logging in, they duplicated all the files and changed the button. Since then management had them add new features to the view (that would apply to admins and other users) and they basically coded up the changes requested in different ways in the admin/non-admin views.
Same stuff in the REST code - I don't really get it either - when you talk to the tech leads they are often very intelligent and totally get the criticisms. I think the problem is these outsourcing companies are hiring junior developers and teaching them just enough to write code to just barely get by the requirements. Literally every feature I go through in this code base its like I'm turning over a lovely cake to find worms inside.