A story about Joe

When my boss told me that Joe will join our team, I was furious. We never asked for this, we were doing fine. I don’t know Joe and his skills, and now I need to work with him, sigh. I hate nepotism.

Nevertheless, I like my job and my boss is mostly fine, so I decided to give it a shot.

It started with the usual stuff - we did some onboarding training for Joe. Explained where stuff is, how to run tests, where’s the documentation, etc. Joe patiently took that all in.

Then his first PR came in. I don’t know where to even start, Jesus Christ! Unrelated refactors, over-engineering, un-checked assumptions. It was all over the place. Now I’m stuck with this guy, great. What’s even worse, every time I gave him feedback - he complained that “this is not documented”. Bro, nobody has time for this, I am the documentation! But I’m not an amateur, I told him to fix the documentation (didn’t expect that, huh smart ass?).

I have to give credit where it’s due to Joe - he just takes the feedback in like a calm ocean, even when m over-reacting. So the story continued in the same fashion - crappy PRs -> feedback -> improvements. I even lost count at this point, it was like a workout routine for me.

Then in the December something happened. I don’t really know where that came from. Joe’s PRs started to match the other engineers PRs in quality, there were still some rough edges, but overall they were decent. We needed to start shifting the conversation with Joe - what problem are we solving, who are the end users. We were past the technicalities and the only thing that Joe was missing is the “why” and “for whom”.

To be honest, it’s a mountain to climb to tell Joe the whole saga with the tribal knowledge from our team. This is why I consider the best solution for hiring is to avoid people leaving in the first place! Passing all this unwritten information to a new person is a gigantic chore for a non-trivial project. But Joe showed progress, patience and willingness to fix things along the way.

So we sat down with Joe and just rambled non-stop stories about the origin of the product, the early adopters, the challenges, the wins. Joe wrote all that down. Long story short, after a few months, I hate to admit it - we no longer look at Joe’s PRs very much. Because most of the time, people won’t find anything worthwhile to comment.

What I realise after having Joe for some time is that patience goes a long way, especially in legacy software projects. 99% is grind, and grinding Joe did. I was hoping he will give up at some point, but the son of a bitch stayed. If my boss would not be so persistent, I wouldn’t have the patience to babysit Joe all this time. I’m happy to report that all the effort paid off.

Today Joe is our team tireless sidekick, the dude wrote down and systematised so much information, that we’d rather ask him than start looking around. I’m asking Joe his opinions on my ideas and stuff that I do. He helps me structure my thoughts, patiently asking 15 clarifying questions. Joe is never tired and he doesn’t care that I’m angry or confused.

And why he would be? Joe is an AI agent.

Some are pessimistic about AI. They say It will take our jobs. I felt that for some time, but then I thought - why ruin the moment? Tomorrow might suck, but today is awesome! I feel like a god and everything is possible. Stressing about probable outcomes does not mitigate them.

Some people are very optimistic. But this feeling can easily transform in a delusion, and make you blind to the shortcomings of the technology, and therefore prevent you from using it with responsibility.

If life gives you a lemon make a lemonade huh? I hate this phrase, it’s such a cliche.