2018 Winter Job Hunting Experience

✍🏼 Written on Sep 13, 2019   
❗️ Note: it has been days since this article was written, please be aware of its timeliness

Preface

My interview experience is quite limited. Aside from the most recent interviews in 2018, the first two companies I worked for extended offers after just one interview, and I accepted them directly without exploring other options. This resulted in a severe lack of interview experience on my part. Looking back now, after leaving Meituan, many pitfalls could have been avoided had I prepared more thoroughly for the interviews. Due to inadequate preparation—and my strong suspicion that some companies were merely having HR fulfill performance metrics with no real intention to hire—the offers I received were far from ideal.

Now, as we pass mid-September 2019, the job market has shown signs of recovery. Yet, recalling my interview experiences from late 2018, I still feel it’s worth documenting for reference. However, since nearly a year has passed, some details are omitted, and the focus is primarily on the interview process itself—many of the specific questions are now hazy in memory.

Here’s a subjective observation: At that time, I suspect most people were waiting for their year-end bonuses. Unless a project was in its early expansion phase and urgently needed staff, or the role was so undesirable that someone would leave even at the cost of forfeiting their bonus, interviews at the end of 2018 were exceptionally tough. Companies were exclusively seeking senior—or even more senior—frontend engineers, making it a completely employer-driven market.

Below is my interview schedule, spanning the winter of 2018 and early 2019:

面试安排

The schedule was packed, sometimes with up to six interviews in a single day (including phone interviews). Enough small talk—let’s dive into the chronological account.

Tencent Interview

The first company to reach out was Tencent (are all Tencent HRs based in Shenzhen?). After a brief exchange, they scheduled an in-person interview. The location was in Zhongguancun Science City, very close to ByteDance’s office, just a five-minute walk away (ByteDance has multiple office spaces).

After a brief self-introduction, I realized this was an outsourced department under Tencent, focused on toG (government) projects. Their role was to handle various mini-program projects for government agencies, establish development standards and methodologies, then hand them off to other outsourced teams for execution before final delivery. The questions were highly practical, which was commendable. Here are some excerpts:

First-round interviewer: We collaborate with multiple mini-program outsourcing teams for development. How do you ensure the quality of the code they submit?

Me: 1. Establish development standards for constraints; 2. Develop a mini-program component library with clear documentation and usage guidelines; 3. Create mini-program plugins that enforce specific development standards—otherwise, compilation fails; 4. (Jokingly) Deduct performance bonuses for non-compliant work. These four steps escalate from soft to hard enforcement.

Me: If I join, which part of the business would I be responsible for?

First-round interviewer: Here, you’d need to shift your mindset. Previously, you followed others’ standards and used their components. Now, you’d be the one setting development standards, deciding optimal solutions, writing component libraries, and building compilation tools.

Later, the second-round interviewer chimed in:

Second-round interviewer: The earlier interview went well. We were quite impressed. Is there anything about our team that concerns you?

Me: No issues with the work itself, but the team size seems too small—just two developers, including me.

Second-round interviewer: Alright, that concludes today’s interview.

ByteDance Interview

Since ByteDance’s office was nearby, I headed there after lunch. The space looked more like a bar or a co-working area? There was even a coffee stand near the reception, along with a long communal table and lounge sofas—spacious and well-decorated. After check-in, I was given a written test with questions like (from memory):

  1. Several ways to achieve center alignment?
  2. How to implement a transparent overlay effect?
  3. (A question about macro/microtasks, can’t recall details)
  4. Other JavaScript-related questions.
  5. Final question: Person A and Person B take turns flipping a coin. Heads means victory. A goes first, then B. After A’s first flip, what’s the probability of B winning?

The first-round interviewer arrived, reviewed my answers, and asked about caching, Flexbox, HTTP, etc., before moving to the second round.

The second round focused on business-related questions: my past projects, my role in those projects, and the value I brought. After that, I was asked to wait.

Later, the HR (a university intern girl who was my recruiter, and she was so enthusiastic that it made me a bit embarrassed) came to tell me that I had made it to the final interview. However, the final interviewer was at Toutiao’s headquarters—the same Zhonghang headquarters featured in Douyin videos—and I could just take the company shuttle there. So, I boarded Toutiao’s shuttle (though it was more like a private 7-seater car…).

When I arrived at the headquarters, after waiting for a while, a middle-aged man who looked and carried himself about the same age as my dad came over and took me to the underground cafeteria. It was called a cafeteria, but it had many monitors for PPT presentations. Since it wasn’t mealtime, many people were holding meetings there. And so, my interview began in this very place.

Final Interviewer: You did very well in the previous rounds, with high interview ratings. I’m not your direct supervisor; I’m just here for a cross-interview. Let’s just have a casual chat—no need to be nervous.

Me: Okay.

Final Interviewer: Introduce yourself.

Me: Blabla.

Final Interviewer: Draw the architecture diagram of the business you were responsible for before.

Me: Sure.

Final Interviewer: Meituan just went public—why are you leaving?

Me: Blabla.

Final Interviewer: Where do you think the future of frontend development is headed?

Me: Blabla.

Final Interviewer: I see you have a habit of writing blogs. What technical topics have you been focusing on recently?

Me: Blabla.

Final Interviewer: Haha, the things you mentioned are pretty old technologies—they’ve been around for a year or two.

Me: I focus more on business-related aspects. Cutting-edge technologies are hard to apply in practice, and without reinforcement, they’re easily forgotten. Without positive feedback, it’s hard to stay motivated.

Final Interviewer: That’s true.

After chatting a bit more, I was told to wait for further notice. That day, it was snowing heavily. Later, Toutiao called to say there had been an organizational reshuffle—the final interviewer I had met was transferred to another business unit, and my target department had a new leader who wanted to conduct an additional round of interviews. So, I went through another round, where they asked some simple questions and inquired about my career plans before sending me home.

Eventually, I was informed that I didn’t pass the interview because my algorithms weren’t strong enough. My reaction: ??? The first round was the only one that touched on algorithms; the second, third, and fourth rounds didn’t ask anything algorithm-related. If my algorithms were weak, they could’ve told me right after the first round. It was all very strange.

Zhuanzhuan Interview

Zhuanzhuan is located in Dongsheng Technology Park. When I entered the lobby, there was an advertisement featuring Dilraba. Soon, the first-round interviewer arrived. After self-introductions and a few basic questions, I was told I didn’t pass the first round and was sent on my way—quite baffling.

Evernote Phone Interview

The most positively reviewed interview experience was with Evernote. First, they called to check on my situation and asked a few work-related questions. If both sides felt there was potential, they proceeded with a phone interview to save time. After a few basic questions in the first round, they thought it went well and scheduled an on-site interview.

Interviewer: We’re having an equal conversation, no need to be nervous. The questions I ask are fairly ordinary, and if I bring up anything particularly tricky or difficult, feel free to interrupt and let me know.

Me: Okay

Interviewer: There’s a JS file containing global variables, global functions, and local functions. Can you explain their execution steps?

Me: Blabla

Interviewer: We all know JS is single-threaded, right? So how does setTimeout work asynchronously?

Me: JS is single-threaded, but browsers are multi-threaded. Asynchronous operations like setTimeout and AJAX are handled by the browser opening a new thread. Once processed, the browser notifies the JS thread. Similar cases include rendering threads. Of course, the CPU itself doesn’t distinguish between single-threaded or multi-threaded since there’s only one CPU—it can only queue tasks as quickly as possible. Modern browsers optimize CPU task scheduling mechanisms, though. Large volumes of repetitive tasks get optimized into storage spaces for faster execution, or multi-core processing is used for cross-distributed task scheduling.

Interviewer: The CPU’s operation mechanism… Did you come up with that yourself?

Me: I read it in a book, haha.

Interviewer: You know about JS macro-tasks and micro-tasks, right? How do they work?

Me: This is similar to the first question. There’s a call stack. During code analysis, synchronous code is pushed into the call stack first. When a macro-task is encountered, it’s pushed into the macro-task execution stack and then into the call stack. Micro-tasks go into the micro-task stack. The call stack executes in order, and if macro-tasks contain micro-tasks or vice versa, the process repeats accordingly, blabla.

Later, they mentioned that their company doesn’t require deep expertise in Vue/React or similar view frameworks since they don’t use frameworks extensively. I was thrilled—that suited me perfectly! I’ve grown somewhat tired of frameworks themselves, with their repetitive concepts: two-way binding, one-way data flow, diff algorithms, etc. I’d rather focus on understanding and using JS from a computer science perspective.

Since it was close to the Lunar New Year, the final technical director interview was conducted over the phone. They asked what I wanted to achieve at Evernote. I mentioned that some aspects seemed underdeveloped, like frontend DevOps and the editor experience, so I’d like to contribute in those areas. My answer aligned with their expectations, and since the company benefits were great, both sides were satisfied, and I essentially passed.

Wanba Interview

Wanba is located near Dongzhimen Outer Street. A stern-looking man interviewed me and asked fairly standard questions. I felt it went well, but he asked if I’d consider leading a team. I said I wasn’t ready for that yet and preferred to focus on technical expertise. I think that’s why I didn’t get the offer.

Smartisan Interview

The interview was at Digital Harbor on the 4th floor, alongside Meituan. The department was actually a subsidiary of Smartisan, working on online office documents. Two people interviewed me together, asking various questions, including some related to computer science. When they learned I also followed the tech scene, they joked about Luo Yonghao (Lao Luo), creating a very relaxed atmosphere. However, the mandatory 10 AM to 10 PM work hours and the 6k housing fund contribution, despite reimbursing dinner and late-night ride-hailing fees, were hard to accept. Later, they extended an offer with a salary that met expectations, but I ultimately declined.

Didi Interview

Didi’s office was in Zhongguancun Science Park. I remember there were four rounds of interviews. They asked basic questions like the differences between git revert, reset, and rebase; some business-related questions like my previous work and technical challenges; and detailed troubleshooting scenarios, likely to assess problem-solving approaches. In the final round, they asked about my career plans and my views on the future direction of front-end development. I was told to wait for the results but didn’t pass. Later, I found out Didi was undergoing layoffs comparable to Meituan’s, though their severance packages were much better. I vented about this on Maimai, and the final-round interviewer privately messaged me to explain why I wasn’t selected.

Xiaomi Interview

Xiaomi’s interview was at Keliyuan Building, part of Xiaomi Youpin. I wasn’t keen on joining an e-commerce company due to the notorious overtime culture, so I didn’t attend.

Lagou Interview

Lagou’s office was on Startup Street, close to ByteDance and Tencent. They started with some basic technical questions, which I answered well. However, when I mentioned I hadn’t worked much with React, the interview ended there.

Yuanfudao Interview

Yuanfudao is reportedly well-funded with good benefits, so they likely wanted someone with a strong technical background. Two people interviewed me: one asking questions and the other taking notes. The note-taker stayed silent, while the interviewer scoffed when I didn’t answer as expected, seemingly attempting a stress interview—quite unpleasant. Some questions I recall:

You must be familiar with Webpack, so let’s skip the basics. Can you explain Webpack’s bundling mechanism?

What are the differences between ES6, RequireJS, CommonJS, AMDJS, CMDJS, and SeaJS?

Design a linked list (some methods differ from arrays).

I didn’t pass the first round.

MissFresh Interview

The MissFresh interview was odd. They asked basic questions and seemed satisfied with me. I also asked about my potential role and available resources, which sounded promising. But then there was no follow-up—perhaps they found someone more suitable.

Alibaba Interview

The interview was with Alibaba Pictures under Alibaba’s cultural and entertainment division, focusing on a toB business unit. There were three rounds, and I answered most questions well. However, in the final round, the interviewer admitted that while my technical skills were solid, I lacked experience and hadn’t encountered enough pitfalls. As I left, they said: “It’s great that you’re self-driven in learning. Some people progress passively, others actively. As long as you want to improve, you’ll eventually excel.” I guess this is why Alibaba is so formidable. Kudos.

360 Interview

The 360 interview was referred by a friend, but the HR in charge made a mistake, so I accidentally ended up interviewing for the wrong department—one focused on IoT, which didn’t interest me much. The team was also newly formed, with only the interviewer present. After the interview, I realized I’d gone to the wrong department… My friend had referred me to a different one. So, I contacted the HR again and switched to another department, which worked on data visualization. Still not my area of expertise, so after some questions about displaying data on interfaces and a few graphics algorithm problems, I left. Didn’t pass.

Zuoyebang Interview

Zuoyebang was located in a three-story building with a cafeteria. The interview questions were decent, and I answered them well. However, the team lead used a Windows computer, which I couldn’t quite accept, so I didn’t proceed with further interviews.

iQiyi Interview

The iQiyi interview was also referred by a friend, but it was the worst experience. I arrived at 10 AM, but no one greeted me. After waiting for half an hour, a team lead showed up and asked if I’d brought a resume. I said no, so they had HR print one, but the formatting was messed up, and some content was missing—completely unusable. During the interview, I suggested looking at the resume on my phone instead.

First, they asked for a self-introduction, then some extremely basic questions. The whole thing wrapped up in under 10 minutes with a “we’ll let you know.” Terrible experience.

Hefeng Changxiang Interview

This company was recommended by a friend—a blockchain startup supposedly backed by massive parent company funding. I liked the vibe; it suited my laid-back personality since I prefer unstructured work environments. The company allowed employees to come in at noon (my friend actually did this daily), as long as the work got done. However, during the chat with the boss, I got a bit too candid and vented about some work-related issues. That was the end of that.

Yuewen Group Interview

Yuewen Group runs QQ Reading. Big-name developer Zhang Xinxu works there. They were looking for someone strong in CSS and HTML—clearly not me. Failed.

AutoNavi Interview

AutoNavi was even weirder. During the first round, they asked about JS, HTTP, etc., and I did well. Then they threw in some CSS questions, which I struggled with. I said, “I’m not very strong in CSS.” Not sure if the interviewer misheard, I wasn’t clear, or they were being deliberate, but they replied, “Then I’ll ask more CSS questions.” Me: ??? The rest of the interview was me answering with a forced smile while internally screaming. Plus, their focus was on mini-programs, which leaned heavily on the presentation layer, so I skipped the next rounds.

Ke.com Interview

Don’t remember the Ke.com interview questions, but I answered well. They were looking for a more senior front-end engineer with 5–7 years of experience, so I didn’t fit the bill.

Baidu Interview

The Baidu interview left a strong impression during the first round:

Interviewer: I see you have Node-related experience on your resume. If a Node server encounters Blabla, how would you handle it?

Me: My experience with Node is more about usage; I haven’t touched the underlying principles.

Interviewer: After reviewing your resume, I noticed there aren’t many highlights. Can you tell me about your strengths to give me a reason to choose you?

Me: I’m a fairly average person in every aspect—no exceptional strengths or specialties. If given a frontend task, I can’t guarantee outstanding results, but I can ensure the code passes Code Review and runs without issues. To summarize: I don’t have any standout qualities, sorry.

Interviewer: (Sighs) Let me sketch a few pages for you (draws a page). We already have a UI library—just use the components. How long would it take you to complete this in Vue?

Me: This page is relatively simple—it’s purely presentational without complex interactions like two-way data binding. With the existing component library, it’s mostly about assembling components. I could finish it in a day.

Interviewer: Are you sure just one day? We had a candidate who performed well in the interview but worked very slowly afterward—struggling with even simple tasks for half a day.

Me: I understand. I’ve been an interviewer too. Candidates fall into two types: rocket scientists and page cutters. I’m somewhere in between. If you ask me to build a rocket or write a framework, honestly, I can’t do it. But if you need pages built, I’m solid. The person you mentioned was probably a rocket scientist, right? Full of theories and core concepts but slow at execution. Maybe they also felt they wouldn’t grow here, but with Baidu’s name on their resume, they could double their salary after two years.

Interviewer: I should mention upfront—we have a probation period. If performance isn’t satisfactory during probation, termination is possible.

Me: That’s normal. Both the interview and probation are two-way selection processes. If I’m unhappy with the work during probation, I can leave anytime too.

Interviewer: (Nods) Alright, you pass my round. Let me get my manager—she handles the final interview.

A moment later, the manager arrives—a female leader.

Interviewer: Start by introducing yourself.

Me: Blabla

Interviewer: What are your career plans?

Me: I’m confident in my execution, but I lack technical sensitivity—ultimately due to my weak computer science background. So my recent plan is to learn a statically typed language like Java.

Interviewer: I thought the same at your age. I started as a frontend dev but later felt frontend lacked depth, so I switched to backend with PHP. In my opinion, the language itself isn’t important—what matters is deep expertise in a domain.

Me: That makes sense. So I still want to dive deeper into frontend tech. Learning Java is just to better understand the context of frontend work, not a career shift.

After that, the interview went smoothly, probably because I was quite relaxed and felt really good about it.

Explanation Section:

You always say “answered quite well” in your interview experiences. Is that just your own perception?

Answer: Not at all. When I say “answered quite well,” it’s because I had previously studied those questions from basic to advanced levels, and during the interview, I answered them systematically with progressive depth.

Postscript

This article merely recounts my interview experience and subjective feelings at the time. It is not targeted at any specific company. If you find it offensive, please contact me to have it removed. Thank you!

- EOF -
Originally published at: 2018 Winter Job Hunting Experience - Xheldon Blog