I work with a senior system developer who drinks. Basically, he's an alcoholic. He's in his mid 50s. He wasn't always like this. He started drinking a lot when some of his family members died unexpectedly in an accident. The thing is, when he is drinking, he can code things that no one else on staff can do quickly. For example, he once implemented a hash table in about an hour because we had a platform that did not have a C++11 compiler (no unordered set) and needed that data structure. It's kind of frightening to stand behind him, watch him run vi and start editing code. Inside, I'm terrified that he's going to make a mistake. I'm thinking that he should not be touching code when he's like this. But as he starts to edit the files, it's somewhat amazing. I and the others stand and watch in awe as he types so fast we can barely follow. It's not that we don't understand what he's doing, it's that he's typing so fast. Then, he compiles it and it works as expected and he tells us about a few possible issues, etc. and leaves. We have to get him a ride home, help him walk to the door and have an intern walk him to his apartment so that he doesn't go in the wrong place. Then, a few days later, he comes back to the office like nothing has happened. He's a really nice person. Very polite and self deprecating always giving credit to others on the team and mentoring the young guys (he's not an ass). We want to keep him on staff and we need his knowledge and all the guys love him. Just not sure how to approach him about this issue. Has anyone else dealt with a similar situation?