Note This question takes place in the workplace, but I think (for reasons outlined below) that it is a better fit here than workplace.stackexchange. I'll happily close and move though if that seems like the thing to do.
I recently hired someone who has a problem with arrogance. I was pretty sure that was going to be the case when I hired him, but it is hard to find talented people so I hired him anyway. All things considered though, his arrogance is not as bad as I thought it could be. It gets irritating, and causes minor problems occasionally (mainly for me since I am both the person he works closest with and he’s my direct report) but it isn't at the level where he is at risk of losing his job over it.
Not too long after I hired him I remember telling the owner of the company "He's a smart guy - the only question is whether he's smart enough to realize he's not the only smart person here". The answer to that seems to be no - he's not quite smart enough to realize he's surrounded by other smart people. It sometimes seems that he treats the workplace as a contest to be the smartest person in the room, and I would obviously prefer less competition with those of us who see him every day and more focus on the job around us. Just because, here are two examples of recent interactions that stick out:
I had asked him twice about implementing feature X on the front-end. His answer each time was "First you'll have to implement Y on the back-end" (I do both front-and back-end work). I knew this wasn't true but this was never a high priority, so let it drop. Finally it became a high priority so I brought it up again.
Me: "It's time to implement X on the front-end"
Him: "You'll have to implement Y on the back-end"
Me: "We've talked about this before, nothing has to change on the back-end. I can send you examples."
Him: "Then please do because everything I've read says you have to make changes on the server"
Me: (a few seconds of googling): "Here's a link to stack overflow that shows how you do it on the front-end and here's an example in our code base where I'm already doing it on the front-end"
Him: "Oh, then you must have already done Y on the back-end"
In a meeting with the entire team he threw out some technical jargon and then paused and said "Although I'm probably the only one in this room who knows what that means.". I was insulted enough for the whole team to jump in and went ahead and defined it for him, to which he responded: "I'm surprised you knew what that means"
I don't expect to just "confront" him and see a different person the next day. He's not fresh out of college (about 30) and has probably been like this a long time. Therefore, I don't expect to see large changes quickly. However I would like to figure out how to touch on his behavior, if at all possible in a largely non-confrontational way. Partly because I'm not very good at being confrontational and partly because (as above) I don't expect to be able to sit down and "talk to him" and have any result other than being ignored. However, those are just my expectations, and I'm happy to hear answers that take a different tact. In essence: What are ways to help someone see life is not a contest to be the smartest person in the room?
I have to give credit where credit is due. He brought up my example #1 in front of the entire team today and said that he had looked into it and was mistaken. He corrected himself in front of the entire team. I told him not to worry about it because I make mistakes like that all the time too (really, who doesn't) and then we moved on. Being able to admit that he's wrong is certainly a point in his favor.