This exact incident has happened with me.
Our company once hired a contractor (let's call this person, "The Lord") for a platform (The platform itself had 4 web projects and 2 mobile projects, and The Lord was responsible for 2 web projects).
The Lord had some peculiar habits, (my then reporting manager then told me that The Lord has "different" take on coding solutions)
The Lord wouldn't push code. Because Version Control System is for mere mortals. The Lord shipped a flash drive. I was supposed to "push" The Lord's code to the company's repository using my credentials. (Basically the projects spills my name, every time something breaks.)
The Lord wouldn't complete tasks, Because completing tasks is for mere mortals, and freqently in the platform we'd notice some things not happening. When we dived into the code, we'd find
// TODO
// Task details: some thing is not going to happen
// Please write xyz code to do the task
This became so annoying, that I finally ended up searching for all //TODO ( // TODO, //To be done ) to fix it, once and for all.
The Lord believed in transparency. This is what the entire component structure of the web app looked like:
<GrandParentComponent {...state}>
<ParentComponent {...this.props}>
<ChildComponent {...this.props}/>
</ParentComponent>
</GrandParentComponent>
Basically the entire redux store was loaded on the parent most component, And ALL of the props were flushed down from parent to the child, all components knew how to do everything. To give you a perspective the logout button knew, how to logout, login, add user, delete user, add organization, remove organization, assign users to the organization, and maybe run rm -rf / on the server.
The Lord had strong gripes with inheritance. There was a component that was something like this:
<SuperAwesomeReactComponent someEntity={someEntity} {...this.props} that={this}/>
Not just the fact that someEntity was already nested inside this.props . The Child component had code segments from both the worlds: this.setState and that.setState.
Things I learnt from this experience:
I will keep updating as I get more thoughts.