Last night, speaking with my headhunter, I was pleasantly surprised to hear that in China, the tech hiring process is usually just one 2 hour on-site. If you pass, you’re hired after that. Maybe in a big company if they really like talking with you, they’ll continue to talk with you overtime and it might last 4 hours. This is in stark contrast to what I’ve experienced in America. They almost always have at least one phone screen that lasts 45-60 min. Sometimes, there are two. Sometimes, there is a code test too. The worst on-site I’ve had is the LinkedIn one that started at 10 am and ended at 5 pm with a one hour lunch interview where you are still judged and evaluated. There are basically no breaks in between. It’s exhausting and quite a waste of time for both sides in my opinion (there’s, I guess, the aspect of testing stamina and social polish as an artificial method of selection, but really, wouldn’t the time be better spent into doing actual work or resting). I personally think that an excess of time and energy spent on selection and social proof via rather artificial channels is quite detrimental not only for productivity but for the overall culture. I must say that the Chinese internet industry is smart not to do the same bloated hiring process of code test plus phone interview plus full day on-site interview, they were smarter than I actually expected, as I was quite surprised to learn this.
To explain this, that headhunter said that the Chinese tech companies value efficiency. I thought of this more as “trust.” More like, they trust that you’re not a bozo and by default, they trust that you are competent and well-intentioned and they don’t go out of their way to screen that you are through a long and rather flawed process. When I mentioned this, he said, yes, and more specifically, that Northern Chinese tend to be high in mutual trust and also very direct in communication with each other. This conforms to what this AG guy on Disqus has written Steve Hsu’s blog from what I remember. I am of Northern Chinese descent too by the way. That guy said that as Northerners with limited contact with Southern Chinese we might not really realize this.
As for this first (in China) on-site software interview, it was with a financial technology company with already over 10 million users. It was for a backend Java developer position. The interview with basically three rounds (of like 40 minutes each) of talk about resume/experience plus some algorithmic coding questions. Those algorithm questions were super trivial (at least for me). They were about the level of difficulty of the questions asked by big internet/software companies in America. Honestly, they are questions that a smart high schooler who did those algorithmic programming contests could easily answer. But we all know that real software engineering has little to do with that, the challenge is more with the design and scale of codebase and ambiguity and business/products requirements. I asked one of the interviewers how many machines there are for their MySQL data, and he said only 4, which sounds about right. As for scalability, in most cases it is not really a problem in this industry. A single Apache/Nginx instance can handle 10,000 concurrent connections and usually over 1000 requests per second. See, though they have over 10 million registered accounts, in practice, for this type of internet service, the average user is actively making requests only for a very small fraction of time (certainly less than 1% and usually under 0.1% to be fair). In other words, requests per user over time are very sparsely distributed. So just a few instances of the same web service would be sufficient.
Afterwards I talked with this software engineer about the tech industry in America, in particular the long interviews, the high turnover, and the short average job tenure. We both think that this is rather inefficient and bad for morale. Long interviews means the ratio of time spent both interviewing for jobs and interviewing candidates to actually doing meaningful work is much higher. High turnover and short average job tenure means not only more of the already long interviews but also much more time spent on acquainting with and setting up development environments and tools and frameworks and learning/reviewing new material as opposed to actually doing meaningful work. That guy claims that in American corporate culture, the default is high mutual distrust, with interviews being a method of probing candidates and pressuring them to reveal embarrassing information about themselves or lose their social polish out of exhaustion. I do feel perhaps such negative views of his on American culture are rather extreme and perhaps somewhat unwarranted, but maybe a detailed writeup by him of all that he’s said to me on those matters would convince me otherwise.