Last week's arrogant coworker problem might be on the path to improvement. It turns out i am not the only one who has found S's behavior concerning and reported it up the chain. On Wednesday morning my boss had a one-on-one with him and Thursday he seemed to have adjusted his attitude somewhat. He's still an arrogant jackass - that won't change overnight - but he seems to at least be trying to soften his abrasiveness. We'll see if it holds.
Here's the issue, though. We are a startup. But we are a startup where the CEO has set a goal to hire a fucking Cecil B. DeMille army of 码农 (code peasants) by Spring Festival. What that means is we need a senior team to set up some structure so that new guys can onboard and get up to speed quickly. Unfortunately S is absolutely not the right person to do that job. So on Monday two junior guys turned up for their first day and there was no one around to support them.
Don't get me wrong, S thought he had an idea of how to onboard. That is, install all their software up-front so they do not have to do anything themselves, rock up to work at 11am (they were in at 9), draw some diagrams on the whiteboard, send them off to implement a fix, then 4 hours later come back to tell them he had already solved the problem so they should just throw away what they did and look at his code instead.
So, basically, the exact opposite of how in my opinion you should onboard new guys.
Meanwhile S has not documented any of the tools he mandated, has not set up any kind of structure for task management, did not implement a formal workflow for committing code [sharing changes back with the rest of the team], and does not have a guideline for code review or testing or anything. My strong suspicion is that this is because S has never worked at a company that follows software engineering best practices. His last job was CTO of some software outsourcing company, where he likely just tended to a box of mushrooms.
Mushroom management is exactly the wrong way to build a culture of innovation. And it most assuredly does not engage your guys or make them loyal, high-output workers.
In short, what this company needed was someone with real management experience to set up an onboarding plan ahead of hiring any juniors. I.e. they needed me or the CTO to set this up. But it turns out the juniors were snap hired after only interviewing with S (not the CTO) and - hilariously - one of them cannot even speak English. Since S does not speak any Chinese (despite living here for 7 years) i have absolutely no idea what they "discussed" on the interview. I think S just wanted some guys to boss around to make himself feel more important.
But, you know, it's a startup. Everything is a chaos at the beginning, right? There is too much work to do and not enough guys to do it. People need to wear many hats, including hats that don't fit. So maybe you get a self-important nong hiring juniors too early. Unfortunately juniors do not have enough workplace experience to understand which processes still need to be established, so that has fallen on me.
This week, instead of working on technical stuff, i have been helping the CTO set up a development workflow, i have created some new readme documents, i have set up pages with English and Chinese translations of common technical terms... And i have been trying to sneak some mentoring in between S's ham-fisted attempts. His training philosophy appears to be: tell the guys to solve a problem that is totally out of their depth, then come back later with a solution and explain why everything they did was wrong. Facepalm.
It's challenging, because i am mentoring three juniors (something i am good at and enjoy), and i am setting up onboarding docs and workflows for software teams in general (something i am also good at and enjoy), but meanwhile i have ceded the technical direction to S... And because of his lack of deep technical knowledge, i know that's going to hobble our velocity in the long run. Fine - that would be part of the learning experience if i had set a junior or mid-level guy to do this, but he's supposed to be a senior! Sigh. I need to try to softly guide him in the right direction while still allowing him to believe that he is the grand architect of all architects, God's gift to programming, bla bla bla. Which is painful when even some fundamentals i am teaching the new guys are beyond him.
So, you know. I thought the challenges of a startup were going to be specifically technical challenges. How do we get all the infrastructure set up to compete with the (very) big players in this industry when we only have a small team? But it seems before we can even get to that stage of technical innovation, there's going to be a lot of education around basic workflow stuff that wouldn't have been necessary if we had just started with 2 or 3 senior team players in the first place.
Good news is - again - the CTO recognizes this. All this stuff i am spewing in my journal is a more raw version of the things he has also shared with me (unprompted) on our one-on-ones. So i know he has his head screwed on and that he understands my frustration. It seems like this is a problem of unfortunate timing. If i had started 2 weeks earlier and the other guys 2 weeks later, then a lot of stuff would have already been sorted out up-front. Even if S came on as a so-called "senior architect" at least i would have established the workflows to guide him in direction that would be more aligned with what the CTO wants.
But, you know. Such is life. The CTO already rolled back the idea of having a dedicated architect and made it very clear to the guys that he's the boss and it's a flat hierarchy until we establish more formal roles. I suspect if he grows the team over here i will be tapped as a team lead or engineering manager, which is fine with me. I just hope that the team growth happens in a more sensible way going forward. We really need to beef out the senior layer to try help level up S and get him actually performing the way he thinks he is performing in his head. And we need more people on the ground who can reinforce the CTO's vision and communicate it well in Chinese.
Fuck, okay, so i applied for a job of architect, got bumped down to developer on my contract, but really i am now doing the job of a manager. Good times.
It's frustrating. It's challenging. But i'm new, so i'm up for it. I still want to make this company kick ass. I want to make little robots that zoom around doing stuff, damnit.
Meanwhile, my work permit is renewed and on Monday i have the appointment to file my resident permit renewal. Comfortably ahead of December 31, so even if i am missing some paperwork on Monday 还来得及 - i've still got time. That's the real good news of the week. Immigration pressure decreases, work pressure increases.
I need a vacation!