How to tactfully handle lying offshore coworker who I'm stuck "babysitting"?
Posted by Tolvu-Taetari@reddit | ExperiencedDevs | View on Reddit | 121 comments
A bit of a rant, but I also need some advice. TL;DR at the bottom.
I'll preface this by saying that I work with a lot of onshore Indians who are great to work with. They are professionals who know their stuff and are being paid accordingly. But we all know that the reason corporations offshore is to save on costs and get the cheapest IT staff out there.
And like many corporations these days, mine has been slowly offshoring any open roles to India and the Philippines. I got assigned an offshore Indian coworker to "help me" with my tasks, and now I'm basically his babysitter. Lucky me.
It's been over a year now and this guy is every stereotype of a low-cost, low-quality offshore worker. He says he understands the instructions when he actually doesn't, needs hand-holding for every little thing, always wants to call me for a single sentence/question that could have been a text message, and is constantly trying to merge broken/wrong/insecure code into master. His super heavy Indian accent is making it difficult to communicate. You get the picture.
The most egregious habit of his is that he straight up lies about having finished tasks during our standups!
"This is finished" when it isn't. "Did you test on acceptance?". "Yes." Later I check the logs and it turns out he didn't.
I don't confront him on it during the standup because I know that it would come across badly. I think he just wants to be able to close tickets so his KPIs look good for his W.I.T.C.H managers. And honestly, I don't blame him! If I were getting paid 10x less than my coworkers, you bet your ass I'd also just be doing the bare minimum to reach some arbitrary KPIs.
Anyhow, I'm still expected to complete my work while babysitting him, which is getting increasingly impossible.
My manager is a non-technical guy that loves to talk corporate speak about "teamwork" and "helping each other grow as a team." He also loves the idea of pair-programming, and is constantly suggesting I pair with my offshore coworker, which is just a video call of me doing the work and him watching (and he gets the credit if the task is assigned to him).
I've tried strategies like letting him fail by trying to ignore him and saying I'm too busy to help. But he always contacts my manager to ask me to help him. I've tried just spending all my time helping him and not doing my own tasks, but then my manager tells me some bullshit about "leveraging time."
I don't think complaining about a coworker's performance is a good look, and nor would it get me anywhere because it's not up to my direct manager. Upper management has decided they are fine with the results from offshoring (for now).
I don't want to quit due to multiple reasons, and this job would honestly be perfect if it wasn't for this guy.
How would you tactfully handle this situation?
TL;DR: I'm stuck babysitting a low-cost, low-quality offshore teammate who lies about finishing work. If I try to "let him fail" he gets my non-technical manager to help him out ("pair programming" sessions where I do the work, he watches). How do I tactfully handle this situation without quitting?
Unlucky_Data4569@reddit
You are assigned a single off shore worker that only helps you? Brother they are trying to replace you
bwainfweeze@reddit
There are countries in the world that should be using Indian remote programmers but the US West coast should not.
How are you gonna pair with someone 12 hours away from you? Standups are hard enough. Especially once they get families.
AstopingAlperto@reddit
Even in EST it sucks so bad.
bwainfweeze@reddit
Yeah it can’t be great but at least you don’t have to do standup at the ass crack of dawn while their kids are begging for daddy to get off the phone in the background.
AstopingAlperto@reddit
IST offshoring just doesn’t work IMO
bwainfweeze@reddit
All of the Indian developers I’ve bonded with I have had in person time with them at some early phase.
The first fully remote team I worked with was in California, not overseas, and this strange animosity developed and because we couldn’t blame it on anything else we had to look at it. It wasn’t race or culture or gender.
There’s a couple old bits that spring to mind when I recall this experience. One is about politeness and the possibility of “getting punched in the face.” The other is “never underestimate the power of being able to call someone into your office and yell at them.”
We lose important aspects of positive peer pressure when we are disconnected in this way. Several of my favorite coworkers have been Indian, and my yardstick is talent and trustworthiness. But I’ve been able to have lunch with every single one I’ve had this relationship with, except one who lost his h1-B and moved back. But we had three years of relationship holding our phone calls together.
Radrezzz@reddit
Show your boss how you could save even more money by replacing his output with copilot.
private_final_static@reddit
Also show boss's boss how boss can be replaced with copilot
Electrical-Ask847@reddit
his boss isnt the one making those decisions
redDevilRiddle@reddit
Pretty sure that copilot would do a much better job in this scenario 😂
SuperTrashPanda@reddit
Probably lies less
bony_doughnut@reddit
>He says he understands the instructions when he actually doesn't
hmmm
pacman2081@reddit
>He says he understands the instructions when he actually doesn't
I had this issue with Chinese coworkers in the 2000s. Not anymore.
MrDilbert@reddit
At least it's easier to understand the lies, and asks questions in chat instead of calling? /s
reboog711@reddit
With AI we call it hallucination.
prb613@reddit
Debatable lol
xender19@reddit
At least when copilot is full of shit and you tell it that, it accepts the feedback and adjusts.
private_final_static@reddit
Your problem is with your manager, not your trash coworker.
I would let the guy fail and not so tactfully tell my manager to stop wasting my time, escalating if necessary.
If I do have to reach my managers manager, I would mention how incompetent and useless a non technical manager is.
If you want the lighter version: just let the guy fail and tell your manager you're too busy. Guy will be replaced.
mrfoozywooj@reddit
This is basically why jira exists.
Back when I had a job that was essentially "manage these several hundred indians", I made sure everything was carded out to the extreme and had all of them split into standups over my day.
Everyone had to answer for their card, it was the only item they had to work on with a WIP limit of 1, if they got caught lying about completed tasks or couldnt product evidence of completion the task would go back to active and bump their current work.
Closed + reopened cards became a metric and I used that to shuffle people out.
btw it was an incredibly boring and frustrating job, people who don't really work with indians will never understand how deep lying is embedded into their culture.
AstopingAlperto@reddit
I’ve been in this hell for a year and a half. It’s rough.
Environmental-Edge84@reddit
I say this with a lot of softness and love. I have been a developer for about 7 years now and have 10 years of professional work experience.
Like you, I like to stay away from drama, stay classy. I am never trying to make anyone look bad. I've dealt with Gen Z who sometimes doesn't put in the work but what's even worse than that are offshore workers in India.
In 2023 my company heavily started offshoring and people in India who didn't even speak English were responsible for telling me what to put on the site. They were responsible for giving me the copy for the site. It was full of typos and other errors. I never complained. This person always made mistakes and made me do last-minute urgent updates to the site. I urgently did them and never said anything.
One day I overheard her speaking to my manager about how she was trying to throw me under the bus for not doing ONE task on time (for her deadline). ONE time. I was shocked given how many times I made things work for her. This includes working on holidays like Thanksgiving.
All to say...your offshore colleague is VERY sneaky. The fact that he is lying about completing his tasks and going to your manager when he needs help and you're not available...shows how confident he is. He is absolutely going to sabotage you as soon as he can.
Like you, I'd falsely think that there's no way he'd do that because he's a sucky developer...but TRUST ME. I've seen it happen again and again.
Also, these companies have an initiative to save money by offshoring. My company was doing SO WELL and still kept replacing people with offshoring.
son_ov_kwani@reddit
And yet there are quite many talented Africans with excellent English and great communication skills but they’d refuse to hire them because they’re in Africa.
Jealous_Theme2741@reddit
You are responsible for his output.
Raise all of your concerns to your manager, and get it on paper.
Welp_BackOnRedit23@reddit
Part of the difficulty you can run into here is that the manager may be complicit in off-shoring. They may have given the idea that this could be a money saver for the team, or they may be held to metrics regarding the success of any off-shoring that is happening.
Old-School8916@reddit
it's usually not the manager at that level that is responsible for offshoring. such initiatives come from the CTO down.
Jealous_Theme2741@reddit
Exactly, so you need to raise the results of this to those who made the decisions, and their managers
johnpeters42@reddit
Unless "squeeze the company dry, and damn the long term" goes all the way to the top, in which case GTFO as soon as possible.
decamonos@reddit
Unless you're working at Google or Meta these days, that seems to just be the norm
RedditNotFreeSpeech@reddit
Manager may be getting kickbacks
chrisza4@reddit
But yet even in that case you need to raise out you are not happy with off shoring output quality, so as least it is recorded. When shit hit the fan, you can’t be like “I simply let things slide without raising any concern to anyone”.
morosis1982@reddit
All the better to raise it with them.
Successful offshoring is not done by simply throwing money at a provider and telling them what you want. Too many are set up to only take the money and provide no real value.
Doing it well requires effort on the part of the management to ensure they do due diligence. Usually it means selecting a provider based on quality not cost, and accepting that while the savings may not be as high on paper, the value will be much better.
MissinqLink@reddit
Many such cases
New_Wolverine_4487@reddit
Add risks impacting team and manager’s deliverables.
tomqmasters@reddit
Get onboard with his KPI scheme and just assign him a bunch of arbitrary tickets to close and he will leave you alone.
GoTheFuckToBed@reddit
it would be actually so funny to create honeypot tickets
back-in-black@reddit
“Do the necessary” as every ticket description.
oofy-gang@reddit
“Do the needful”
Old-School8916@reddit
I use Picard voice: "Make it so"
back-in-black@reddit
That’s the one.
Electrical-Ask847@reddit
that one only
RazorRadick@reddit
Love this idea. Bonus points for building a script to have an LLM generate the tickets. You can completely automate this guy away!
DjBonadoobie@reddit
"clip toenails" 10pts (1 per toe, of course)
MjolnirMark4@reddit
Needs to be ten separate ticket.
Of course this means he may end up suddenly having an amazingly high completed ticket count and be considered a high performer.
im-a-guy-like-me@reddit
I didn't even consider this. It changes the goal and antagonist. Well played, sir.
Askew_2016@reddit
This is the best idea
thebiglebrewski@reddit
You said you "don't want to call him out" and that you want to be "a team player" because of what your manager said. But by not calling him on it in stand ups and just being honest, you're just making the situation harder.
More honest communication is your way out of this mess. Not in an accusatory or sabotage kind of way, but just overcommunicating, so your manager knows what's going on and figures out your colleague is a drag on the team themselves.
Instead of calling him out at stand up, say that you just checked and the task is not done, then ask him for a reasonable deadline for him to get it done in his own eyes. When he doesn't meet that deadline, follow up with him and your manager asking for a new deadline. Also explain to your manager and communicate to him and in public channels that you just paired with him on that issue or another issue and spent x amount of time on that and now you'll be moving on to the issue assigned to you.
At stand up, if your issue isn't done because you were helping your coworker, be honest about it. "I budgeted 3 hours yesterday to work on JIRA-444, I spent 2 pairing with colleague on JIRA-666, which I was glad to do, but I hope to get a few more hours in on 444 today to finish up".
You're not throwing anyone under the bus, you're just being honest about what you spend your time on and overcommunicating. That's the professional way to do this, IMO.
TheThoccnessMonster@reddit
Yeah - OP you’re as bad a mentor as he is an employee and unless one of you fixes it you’re married to this low cost dimwit until one of you breaks the mould.
Being a good mentor (and boss) is cutting the crust off the shit sandwich from time to time.
NorCalAthlete@reddit
That last part is key. Document EVERYTHING and log the time you spend dealing with it. Have a stopwatch next to your keyboard if you need to. Log the time. Show the data. “I spent 3 hours of my day today helping [coworker] with JIR-123.” “I have spent 27 hours this week answering his questions.” Etc.
DeshawnRay@reddit
Also remember to log context-switching time as part of the time assigned to helping him
RazorRadick@reddit
Yup, create your own ticket if need be: JIR-124 pairing on JIR-123, 2 points.
Now you are closing more tickets and you are a team player because you are unblocking your coworker. Be careful or they will “promote” you to management.
OTee_D@reddit
Depends on the exact roles, hierarchy and contract relations.
I have done two things so far
Personal talk, I told similar colleagues that I understand the pressure they are under (internal metrics at the offshoring contractors organization) and that I accept them being a bit 'creative' when communicating their status on their site. BUT that my responsibility is the project and that I as a colleague expect to get true and realistic reports as those are a fundament of meaningful planning. I am OK with getting told it takes 2 days extra, cause then I can plan and relay that info. If I get told it is done, I relay this and then it doesn't work, we as a team get flak and into trouble. I don't accept that.
Don't complain but factually report to the supervisor that this way of offshoring doesn't work for the project and details about the contract need to be adjusted. We had a supplier that was dirt cheap and we weren't promised a fixed team. So what they naturally did (and almost all do in auch contractual situation) was: The whole team was basically cycled through once very two months. They took the younglings the freshmen and shoved them as 'junior' into our team. So they could gain 2 months of training BY US, and then were withdrawn and put in someone else's project as regulars. Same for "regulars to seniors". They pipelined their whole staff through different projects and positions so the clients PAID AND TRAINED their staff most effectively. This might be OK if you expect the offshore team to be weak anyway, but not if you are supposed to hire those famous cheap "specialists" you were promised. This is no critique on individuals, everyone did the best they could, but the business case and procedures in this field.
eggZeppelin@reddit
So I worked in the US for 15+ years and I'm a dual-citizen of Philippines/US and I recently relocated to The Philippines(For family reasons + cost of living).
It is INSANE the sweat shop wages they pay developers here. I've seen job postings for full-stack engineers with devops xp and they are offering the equivalent of $12k-24k USD ANNUALLY.
So when you are paying below the US minimum wage in most states... yea -- you definitely get what you pay for.
I personally only work remotely for firms in Hong Kong, Australia, US/EU.
I think emerging markets in SE Asia are definitely coming up but there is a long way to go.
saphyrre@reddit
Have a frank discussion with your manager, present clear documentation/evidence of the situation, and hope he understands. Otherwise, I'm sorry to say but it looks like your coworker is actively sabotaging you. I wouldn't be surprised if your managed is being pitched a "cost saving" option involving a new offshore "resource" to replace the costly one at home that is not working out (supposedly).
caprica71@reddit
^this
In some cases you will find that you simply can get the offshore person replaced. In other cases you will find out there is broader politics at play and you are stuck with them
i have worked with quite a mix of offshore people. Some are truly exceptional, some are ok once you get past an initial rocky phase, some are useless and some will lie to save face / climb the ladder.
eddie_cat@reddit
Like most people, offshore workers are all individuals with their own personalities and flaws lol
SmartassRemarks@reddit
With the caveat that most offshore workers in India are no more effective than an American college intern or new grad from a halfway decent university.
spline_reticulator@reddit
The caveat is more that people willing to work across a 10 hour time difference are probably not the best engineers, since those people work at the Google Mumbai office.
max123246@reddit
Also that they'll attempt to get an H1B and be paid 5x more money for the same job. Of course if you're paying someone far less you can expect them to do a worse job
415z@reddit
The problem isn’t with the worker, it’s with the manager. Have this conversation with them and if that doesn’t work have it with their skip level, and or get ready to change teams.
JuiceChance@reddit
Oh my man! I feel for you and for myself. This is all getting ridiculous. These idiots in management think software developer = software developer. If it helps, a lot of people are in the same situation - I am waiting for the day when I find a new job and tell them what I think of all this stupidity.
Flaky-Quarter2490@reddit
Include your time with them during planning. Create tickets to assist. Track every conversation and record the conversations for “training” and add them to a team folder for training. If your work is affected make your assist ticket the blocker. Upper management cares about reports and blockers are major red flags. Eventually the person that can make decisions about team members can see who solves blockers on critical/complex tasks and who creates blockers on basic every day tasks. Your job is to be a team member but remember when your on a flight out your mask on first.
back-in-black@reddit
There is some decent advice here, the best of which is based on two principles:
Here is my twist on the above. You should make use of Pavlov's dog in this situation; every piece of work he pulls you into should result in pain if he doesn't behave like a professional. And being a lazy git, eventually he will take the path of least resistence, which will be to avoid you as much as possible rather than to change his behaviour. And honestly, with this type of person, this is the best outcome available.
Here is how to do this. Whenever you have a joint ticket you work on, collect evidence on who did what, the more automated this evidence is, the better. This includes things like Links to code reviews, SCA stats, commit logs, chat logs where you divide up work, server logs, etc. Whatever claim you make in your own head about what he did or did not do, you need some bit of automated evidence to back it up as fact. Where appropriate, attach this evidence to tickets with comments about the division of work, in an unemotional, unjudgemental, and factual manner.
When he closes tickets as done and they are not done, you reopen them with a comment about why they are being reopened, and attach your evidence. Whenever he incorrectly claims he did something in stand up, you patiently wait your turn, and then you gently but firmly say that you did that thing, or that he did not do it, as gently as possible. Do not ever let him take credit for something you did, conversely, do not ever let you take the blame for his fuck ups, which is a trick he will pull eventually if he hasn't done so already.
In short, unconciously let him know that the only way he gets away with his bullshit, is if he keeps you as far away from it as possible.
onehorizonai@reddit
This sounds brutal as you’re basically doing two jobs: your own work and damage control for someone else’s. The real issue here isn’t your coworker but it’s the total lack of visibility and accountability in your workflow. Your manager can’t see what’s actually happening, so they default to “teamwork” talk instead of fixing the root cause.
One way I’ve seen teams get out of this mess (especially mixed onshore/offshore setups) is by using something like One Horizon. It pulls real activity signals from GitHub, Jira/Linear, Slack, Google Calendar, etc. so everyone’s actual contributions are visible without you having to police them. You can literally see what code was committed, what tickets moved, and where blockers are -> no “he said, she said” during standups.
And importantly, it’s not about tracking individuals. It’s about improving visibility at the team level. The focus is on collaboration, not control. It helps good engineers shine, makes bottlenecks obvious, and gives managers real data so they stop relying on status theater and subjective check-ins.
TL;DR: don’t fight the person, fix the visibility problem. Once the data speaks for itself, the politics fade fast.
pacman2081@reddit
It is wonderful as long as you don't have to rely on him. Collect the evidence of all the malfeasance. Just in case
mrmcgibby@reddit
Had a Pakistani boss of mine once explain that the problem with off shore guys is that all the good devs in off shore countries have their own on shore jobs with good companies. Off shore guys are what's left.
JimDabell@reddit
95% engineers in India unfit for software development jobs: study:
Here’s /r/india’s take on that study.
There are plenty of great software engineers in India, but those aren’t the engineers you get when you decide to use India for cheap offshoring.
jdanton14@reddit
I’ve spoken at a lot of conferences in India, and done a lot of training on behalf of a large cloud vendor at the large outsourcing firms. That completely checks—the really good folks at FTEs at global companies. The outsourcing providers have a 1:200 of ratio of decent engineers to people like the OPs coworker.
MrMichaelJames@reddit
Nah. Public shaming is a good thing. I’ve done it often and it always ends up working out.
Manager wants you to babysit and pair with them because they are being trained for your position. Start looking.
bwainfweeze@reddit
Set up version control to require tickets for every commit.
Now you have a paper trail for commits either being done after the story is marked complete, or commits from unrelated code in new tickets. Agile doesn’t really function if nobody agrees on what Done means.
taruckus@reddit
For starters, let's acknowledge that this is unreconcilable. The offshore dev won't get better. We can reasonably assume that they're simply unqualified.
It sounds like you're spending a lot of time going through the motions like pair programming and other diligence, and it's not actually improving the dev's output and it's a counterproductive for your output
I had one of these. I don't know how possible this is for you: I ended up slowly weaning them out of our more important projects, and gave them something very open-ended and without any specific deadlines as a placeholder project. If they needed to meet kpi's or other explicit milestones, I would tell them to produce those themselves. They can't fail if there's no floor.
This sort of isolation of their work over a few months allowed me to refocus on my own work and to recommend dropping the contractor altogether, citing them as an unnecessary resource without a note that they had a skill mismatch.
arizzie@reddit
I had this exact same guy on my team at my last company. I told my boss 100s of times that there isn't anything I can do and I can not continue to do my work and his as well. This is after I tried EVERYTHING.
I was told nothing was going to happen and to just suck it up and my response was that as long as he agrees that it doesn't affect my performance reviews then I will.
Ginn_and_Juice@reddit
This bitch is going to your manager to complain, I would burn him to the ground and have him fired.
SecurePlate3122@reddit
I'd start looking tbh. Doesn't sound like your manager is going to support you.
The-WideningGyre@reddit
It doesn't sound like he's reasonably tried to present the problem to the manager. Too conflict-averse.
GrapefruitMammoth626@reddit
You should have kept things transparent during standups from the start so that a behind closed doors type of arrangement between you and him didn’t begin. It kind of pointless to slip him up in private, as no one else gets to see what’s going on. And when you bring it up to managers now they’ll be “what? I thought everything was going well”
ShodoDeka@reddit
Start tracking his work (or lack of) somewhere like a spreadsheet or word document.
Then when you have enough data to show there’s a trend you will need to be brutally honest your manger. Show him how not having this guy around means you are getting more done than with him.
darkstar3333@reddit
If hes from WITCH you dont need to PIP him. Just say his performance is poor and you dont want him on the team.
They may challenge it but stand firm and he will be replaced.
Done.
How I know? An outgoing VP almost brought in a team or 25 for a large project. Reorg happened, I was shuffled in and I started reviewing work of the 3-5 core CW we had.
Some were claiming to be senior but when I pushed the skillet was very junior. I exited every single person over the next 2 months.
Thankfully the project ended and we unwound the contract.
DeterminedQuokka@reddit
When you ask if they did something and you can’t find the evidence you send a message that says “hey I can’t find the logs from the test can you send them to me”.
This provides evidence they aren’t doing things which then your boss uses to move forward.
mwkohout@reddit
It's common with pair programming that people swap partners every once in a while.
Do other people ever pair with him?
If not, you should suggest it to your managers. There are a lot of benefits outside of helping you to build a consensus about a weak peer.
j_d_q@reddit
Disregard your opinions on pay. If he is "assigned" to you, you are responsible for his accountability. "I did see the merge request and it did not meet our team standards or the feature definition. I'll be happy to provide more feedback in the comments or we can video call about it." If you do pair, insist he's the driver and you're the navigator. I understand that you drive so that the work gets done, but that's a foundational cause to this problem.
severoon@reddit
Here's a strategy that I've used in the past that can help with the straight up lying: Document what he's telling you in real time in a way that fixes his response in black and white.
An example would be that he has some tasks, make sure each one is described in a ticket that has clear criteria for when it's considered done. Explain that you're making some adjustments to how you run the status meeting going forward, and sit down with him with the tool open. When he gives status on each task, if he says something is done, just go to the ticket and say, "Okay, so all of the criteria to close this one is met then? Let's just go ahead and close it."
If he objects, then ask which criteria isn't yet met and the discussion pivots to the actual status of that task. If he doesn't, it's done, close the ticket and move on. The only way he'll be able to continue work against that ticket is to re-open it. Next status meeting, look for any tickets that were previously closed and reopened (even if they were closed again), and add those to the status meeting. (After all, it was work done between the two meetings, so it's a perfectly valid thing to check in on status.) When you find these, let him know to leave the tickets open as long as the criteria to close isn't met, and that those aren't considered done.
The basic point here is to record in real time what you're being told, especially if it's suspect. You could just put this in a meeting minutes doc, but by recording it in a way that actually closes a ticket he's still working on, that means if he has to submit some code change against that issue, the issue will have to get reopened. So you're recording things in a way that identifies when he's not telling it to you straight. (Of course there are circumstances when someone thinks a ticket actually is done but it needs to be reopened, too.)
When it comes to how much time you're spending with him, take an office hours approach. Set aside fixed blocks of time that you meet, and any issues he has can just wait until the next block you have set aside. When the block is over, you can wrap it up and hopefully he has enough to keep him busy until the next one.
Odd_Ninja5801@reddit
Look, I've spent the last decade and a half working with less than stellar Indian colleagues, as well as plenty of good ones, and part of this is on you. You don't seem to have had the degree of cultural training you need to work with Indians.
You don't give them questions where the answer can be "yes" because the answer you get will always be yes. Whether it's true or not is irrelevant. This isn't bashing them; this is literally how they are. They've been trained out of saying no when asked.
So the question "have you done x" needs to be phrased as "what parts of x have you done?". You need to be equally aware about deadlines, because asking them if they can get it done by a specific day will get you the same pointless "yes".
None of this will help if they're genuinely as useless as you say they are. But I felt that parts of your post suggested a lack of understanding of working with Indian colleagues.
pl487@reddit
Only right answer in the thread. He isn't exactly lying, he's just answering yes like he's been taught to.
PickleLips64151@reddit
Delayed confrontation is a problem magnifier.
Calling someone out for their failures isn't not being a team player. Your problem child is not being a team player via not doing their portion of the work.
When you assign tasks, don't ask if he understands. Have him explain it back to you.
"You will refactor this endpoint to provide these four additional data points, with complete testing and documentation."
"I understand."
"Ok, explain your task to me and what steps you will take to complete it." And then STFU.
If you're not satisfied with the answer, start talking to your manager.
Never ask yes/no questions.
Ask for explanations. Ask for his plan. Ask for his milestones to complete the task.
"What test did you write for this?" And your follow-up is, "Show me."
You've made part of this problem by letting it continue for a year. The best time to fix it was last year. The second best time to fix it is today.
Good luck.
Fearless_Earth_9673@reddit
Dont how many years experience the person & you are but share the checklist in mail to himm cc'ing both managers and anything keep pointing out. Ignore standups else you are up for being bad. Don't talk much have everything in mail even pointing out. Your tone has to very humble else you're gone. Ignore unnecessary talk difficult but set some rules and ask for details in mail.
TheRealPatricio44@reddit
RE getting pinged regularly with questions that take up your time, how about you bring up the idea of some wiki page within the relevant repos or a Confluence workspace, something like that, and pitch it to your manager as a way to grow the whole team's knowledge by gradually creating dev FAQ & Contributing docs that can not only be helpful for future offshore engineers but also the inevitable LLM agents your manager would love to boast about to his manager. The only way that would become possible is by that teammate of yours phasing out the DMs, slack huddles, impromptu meetings, etc since those can't be leveraged by the broader team. It's a win win!
luttiontious@reddit
Sounds like an awful situation. Sorry you're dealing with it. I have worked with developers this bad before, but haven't had to work so closely with one like this. There's plenty of good advice here already, but here's what I'd do.
You need to confront him on everything consistently, probably both at standup and in the tickets. Don't call him a liar or be rude, but plainly state the facts about what he is lying about. "Task A was marked as closed. However, I see that acceptance tests weren't performed and those need to be done before the ticket can be closed. I'll be reopening the ticket. Please do not close again until all testing has been completed."
Come up with a bare minimum regular schedule where you pair with him that satisfies your manager. Maybe that could be once or twice a week for an hour. Do your best to ignore him other times.
Do this consistently for some time and then raise things with your manager again. If your manager is still talking nonsense about teamwork, your manager is complicit, and there probably isn't much hope outside of accepting the situation or leaving.
CornerDesigner8331@reddit
Give him enough rope to hang himself with. Your boss wants to replace you with this joker. He’s sabotaging you on purpose. Stop assuming good faith. These people are all parasites.
Independent_Arachnid@reddit
I worked with an offshore Indian like this and it turned out that he was “working” at a ton of companies and getting someone else (or multiple people idk) to do the work.
TruthOf42@reddit
Stop babysitting him and let him sink or swim.
In regards to pair programming, don't do all the work. Make him work at it. Time box to a set amount of time and if it isn't done in that time, it's his problem.
Do that, and when things inevitably don't get done you've done all that can reasonably be done.
Potato-Engineer@reddit
In particular, for pair programming, make him type. Some people learn better by doing, so you'll be visibly giving him a chance to improve.
dank_shit_poster69@reddit
Explain to management that he's not only failing to produce value, but also actively costing your labor to fix his mistakes & babysit.
Historical_Cook_1664@reddit
The problem is that you're helping him on YOUR time. Go to your manager and make sure that the time that you spend helping your coworker instead of getting your work done is booked accordingly. Get the numbers straight.
oiimn@reddit
Respectfully, I think you are fucked. The single person that could help you is refusing to and said person also determines your future in the company.
My suggestion is to make sure your work is stellar, always prioritize your work. When he goes to your manager to ask for help, give him the minimum you can so that your manager is satisfied (this might be impossible). You will misstep multiple times while figuring out this balance and that will likely be penalized for it.
Take solace in knowing that most places aren’t much better, if it’s not an offshore developer it’s the teammate across your desk
qaxmlp@reddit
NO NO NO! For the pair programming HE shares his screen you sit back and make him do the work. In years past I got rid of a couple worthless coworkers using this method.
rayfrankenstein@reddit
Create a 10,000 story point "Recticulating Splines" task in JIRA that will keep him busy.
Much-Foundation-3110@reddit
As always, talk to your manager.
Putrid_Acanthaceae@reddit
Don’t see why you should protect someone who can steal your job. Not him per se but even if they paid low it’s a lot in their country
DowntownLizard@reddit
If you pair program for one, I would think you make him drive. That said I also know the feeling of babysitting. Its gotta go up the chain so that it can be communicated to even the company providing the offshore that they need to step up their game
PandaMagnus@reddit
Absolutely agreed with this. IMO, I have the best success when the weaker person is driving. That way you, as the strong person, have time to think while they type, and you can catch mistakes they make and correct them immediately instead of just doing it for them. I've learned a lot this way in both positions.
nickisfractured@reddit
Weaponized incompetence
586WingsFan@reddit
I mean, as much as it sucks your manager kinda told you the “solution.” Pair program with the guy aka do all his work. We have a guy on our current team that’s like this, but I’m not the designated babysitter so I don’t care. Dude can’t close a single ticket without 5 “working session” phone calls
Unstable-Infusion@reddit
I have a similar problem with on-shore coworkers. My team used to be a very high performing team, but we lost about 50% of the team in the last few years. Now it's just me and 2 juniors, and the juniors can't code. I genuinely don't know what to do. The team is radioactive now and no one wants to join it. And i can't transfer out because I'm the last competent one standing. I think i need to start interviewing...
jake_morrison@reddit
My daughter worked for a big US bank that had contracted with a big Indian outsourcing company. She got assigned a person who was technically incompetent, but skilled at dodging responsibility. After getting tired of it, she complained to her boss, and eventually got a better replacement. The incompetent person was then reassigned to another team, to continue their reign of mediocrity. Who knows how many times that had already happened.
You need to insist on having someone that is actually helpful, or what is the point? Document what is going on. Eventually it gets escalated to the executives who are responsible for the effectiveness of the process.
ForgotMyPassword17@reddit
Look you tried pretty hard. I'm happy to cover for coworkers for the occasional screw up but he's not even trying to do the work and lying about it. You really need to let your manager and his know that he's not performing at the level that he needs to be
mybuildabear@reddit
That guy likely earns minimum wage from Indian standards. His salary would be 3x lower than what your company is paying for him. There's no point trying to train him, it will be wasting both of your time. Just give him simple tasks such as documentation and some operational work.
HyperSonicRom@reddit
I’ve been in a similar situation before — and honestly, you’re being too nice. You need to start documenting everything and present it clearly to your manager. Be direct about the fact that your own work is taking longer because you’re constantly having to step in, and that you’ve seen no improvement.
In my case, I was assigned eight offshore team members I hadn’t interviewed. Once I realized they weren’t capable of handling the work, I documented everything. You need to do the same — assign clear tasks with defined deadlines. When you can show that something that should take three days is still “in progress” after two weeks, it becomes obvious where the problem lies.
sanityjanity@reddit
Why do you let pair programming be like that. Make him do the coding, and you watch *him*
Upper management is "fine" with the offshoring, because they are judging it by *your* work. Stop doing that.
You need to document document document. If you were falling behind, your company would put you on a PIP.
kevin074@reddit
I'd document all the meetings you have in a week and present it as evidence that having him is counter productive
redDevilRiddle@reddit
Well you need to confront him on stand ups. You have data to back you up. You don’t necessarily have to be rude. And also don’t ask him if the task is finished. Since you know how to check the completeness of the task, tell him point blank in stand ups that is task is not finished and what is the ETA. If he keeps failing enough times everyone will notice on their own.
As for him calling you constantly and wasting your time. Tell him and your manager that you will be setting up a weekly call where he can ask questions.
His pay, his nationality, his KPIs, his WITCH manager are immaterial to you. He is a coworker that is not pulling his weight. Always look out for yourself. Call. Him. Out. All. The. Time.
cowboyabel@reddit
Sounds like you're having a rough time, but I think it's unfair to generalize all offshore employees like that. Sure, most are slops, but are people in this sub not able to comprehend that there are some offshore employees that were hired simply because they were more competent than whoever was available onshore?
BasketbaIIa@reddit
lol, it happens, but why would the “competent offshore dev” even want that? Being just as competent and doing the same work as the onshore employees for 1/10th the pay?
Why? Passion? Maybe. It happens. They normally want to move for better salaries at some point.
cowboyabel@reddit
They do want better salaries, but for now, they're Ok earning 2-3x less than their peers from New York cause maybe they live in Barcelona and their salary still affords them a good life?
Vector-Zero@reddit
If by "some" you mean "a negligibly small number"
i_dont_wanna_sign_in@reddit
Demonstrate their incompetence with your bullet proof guidance. Document the 4 hours of you "driving" the pair programming session in the notes even if credit is distributed. Hopefully your ticket/project system will show the time you pour into doing his work. Document the times the calls take. Document everything.
Then when you're in your 1:1 present your accomplishments. You spent 4 hours answering the list of questions. You spent 8 hours driving the pair programming*. You had him read this list of documentation. He said he was done with tasks so you went through the checklists and made sure he did die diligence, 5 hours...
*STRONGLY suggest you make the three JR drive because you doing the work looks like you're not teaching. Yes, it will take ages longer, but you're being a leader!
scorb1@reddit
Ask your manager how many hours a week you should devote to holding his hand / pair programming. Track your hours and show the manager what's happening. Or find a new job.
TopSwagCode@reddit
Lets just say this wasn't outsourced resource. I would take the time to help / mentor them be a productive team member. I would join pair programming sesions, but only where THEY controlled mouse / keyboard and learned something. No one learns by simply watching another developer code.
Don't think about cost / outsource / etc. It's simply not your job. Anyone on your team, being freelancer / contractor / whatever, is a team mate. Handle it as such. If your team hired a junior developer for 50cents / hour, then be it. You can report up that you see it as waste of time and resources and then be on with your day.
mxldevs@reddit
I'm sure they are partially fine with the results because you keep covering his ass.
pardoman@reddit
I think your heart is in the right place, but unfortunately it results in you having to pick up everything this contractor fails to achieve.
You need to be more honest with yourself and with your manager.
If your manager cares about productivity and costs (which they should), you need to be very clear with them than you are being affected negatively by involving this specific contractor. Your work is suffering, and it will reflect badly in your manager too.
Only then the manager can take action, like contacting the contracting firm and ask/demand for a replacement.
Anyways, your manager is also getting what they paid for, so it’s up to them to correct the situation. But it’s up to you to let them know that the situation right now is shitty, and that you can’t do anything to make it better.
I’m sure you’re a solid engineer, but that doesn’t mean that you should take on challenges of any kind. Some of them require help from above.
fluffy_hamsterr@reddit
You didn't specify this... have you told your manager everything he is (isn't) doing? Explained that he's lying about status..etc?
Every time we've gotten a shitty offshore person I've been able to get rid of them by being honest with my manager that they are holding the team back and not contributing much.
razzledazzled@reddit
Can’t say it’s the right way but it was cathartic— in the past I just ignored them until I felt ok with tossing them a bone here and there.