I had to do this myself at one point and it can be very frustrating.
It’s basically the “tech makes lots of money” effect, which attracts lots of people who don’t really have any skill at programming and would never have gone into it if it weren’t for the money.
We saw this back in earlier tech booms and see it now in poorer countries to were lots of IT work has been outsourced - they still have the same fraction of natural techies as the rest but the demand is so large that people with no real tech skill join the profession and get given actual work to do.
Also beware of cultural expectations and quirks - the team I had to manage were based in India and during group meetings on the phone would never admit if they did not understood something of a task they were given or if there was something missing, so ended up often doing the wrong things or filling in the blanks with wrong assumptions. I solved this by, after any such group meeting, talking to each member of that outsourced team, individually after any such meetings, and in a very non-judgemental way (pretty much had to pass it as “me, being unsure if I explained things correctly”) to tease from them any questions or doubts.
That said, even their shit code (compare to us on the other side, who were all senior developers or above) actually had a consistent underlying logic throughout the whole thing, with even the bugs being consistent (humans tend to be consistent in the kind of mistakes they make), all of which helps with figuring out what is wrong. LLMs aren’t as consistent as even incompetent humans.