My Recent Job Hunting Experience

2021-07-03

I’ve always known that my ambitions exceed my abilities, and I tend to look down on certain things. However, working behind closed doors is never a good idea. I often think about issues from a high-level perspective, but in reality, I’m at the bottom, a fact that is hard to change. I attend interviews I know I can’t pass to understand the gap between myself and reality, and then decide my next steps accordingly. This will be a difficult time.

It’s ridiculous to know that I can’t pass an interview even before it starts. This is mainly because I’ve heard about the difficulty of interviews at certain companies. Although I haven’t been idle these past two years, I’ve been focusing my skills elsewhere. Recently, I’ve been thinking about the direction of the company’s products and whether I can find highlights, almost never studying knowledge points or focusing on technical details. My experience over the past two years allows me to handle my current job and the work of programmers at the same level in similar companies, but I lack confidence to step up a level.

(1)

After some interviews, I have a few simple insights.

There are three types of companies. The first type needs you to have certain skills and checks if you possess them. The second type wants to know what skills you have. The third type looks down on you, and you look down on them.

Interview questions are divided into three categories: basic programming language, data structures and algorithms, and project experience, system architecture, and system components.

Although I haven’t had many interviews, repeated failures are still frustrating. What is the ideal job? Salary? Office environment? Work intensity? Career prospects? Colleague relationships? It’s impossible to have everything, right? Good opportunities are out of reach, and bad opportunities are uninteresting.

I will persist and try to interview with at least 10 companies.

(2)

Companies are more concerned about skill matching.

Actually, now is not a good time to change jobs. Usually, it’s said that March and April, September and October are the peak times for job hunting, but now it’s June, the hot season, a recruitment off-season.

I suddenly want to change my approach.

Previously, I only applied to well-known companies, those in the traditional internet industry. These companies often focus on common technical abilities. In recent interviews, my biggest feeling is that my understanding of blockchain is completely useless. This job change is directly switching industries.

I used to be very disappointed with blockchain. Most domestic consortium chains are unreliable, even leading companies like AntChain and Qulian are not doing well. Apart from the cryptocurrency and exchanges making money, other companies haven’t found a business model.

On one hand, it’s almost certain that I don’t have the chance to join top internet companies, and I roughly know their recruitment requirements. On the other hand, blockchain is one of the few “new” technologies currently. In terms of priority, it definitely comes before general internet companies.

So, I will start applying to blockchain companies, focusing on startups with overseas business and background, hoping to work on Premissionless Blockchain development.

(3)

Why can’t I get into big companies?

Entering a big company requires reviewing basic knowledge and practicing problems, which is different from my values. So, I want to see if I can find a suitable company without deliberate preparation.

I’m currently waiting for a result from a company, and I have some work to do, so I won’t participate in new interviews for now and see how things go.

(4)

It’s been almost three weeks since I started, and although the number of interviews is less than expected, it’s very tiring. Even if there will be other interviews, it will be in the next job-hunting cycle. For now, I’ll take a break.

(5)

In the past week, I interviewed with a few more companies, not many, not high quality. Given the short time since the last stage, I’ll just add the content here.

After the last stage of interviews, I realized I should get rid of some wrong ideas. I hope to proceed with the upcoming interviews calmly.

Maybe this job search will end sooner than expected.

Baidu - Baidu Netdisk (Engineering Direction)

I remember when I was looking for an internship, the only big company phone interview I had was with Baidu, and I was rejected on the spot :)

Originally planned for a video interview, there were some issues. Baidu uses its “Ruliu” video conferencing software. The page indicated there was a web version, but it was completely unusable. Entering the page repeatedly refreshed and still showed “meeting does not exist”. Clicking the download Ruliu software button, the page directly jumped to about:blank. My laptop runs Linux, and Ruliu has no Linux version, so we switched to a phone interview.

The interview feedback was basically as expected: weak algorithm ability and insufficient language foundation. I could hear the template-like questions from the interviewer and the sound of typing, guessing there was a standardized interview process recording the results. It’s said that Baidu has a tradition of not rejecting people in the first round unless they are particularly bad. The first-round questions were indeed basic, though I didn’t answer well.

There were two questions I clearly couldn’t answer:

I don’t have much experience with languages. I’ve always paid little attention to language details, especially specific implementations, unless I really need to use them. Even if asked about Java-related language issues, I probably wouldn’t be able to answer. This is also a major feature and weakness of my current job: too little coding! But I’m not too worried about this.

The second question is a classic algorithm problem, not too difficult. I could outline the approach but hadn’t written related code before and didn’t know the complexity. The interviewer then lowered the difficulty and asked what sorting algorithms are there? Not the approach, but the highest, lowest, and average complexities. I didn’t know.

During the final question session, I asked how to improve technical abilities. The answer was communication ability and code ability; good code indicates good technical skills.

Review and feelings: This year’s first interview company without any preparation, lacking basic knowledge. The interviewer was nice, but the interview had a checklist, and I don’t like such interview standards and processes. From the willingness perspective, I didn’t expect to jump directly to a big company; it’s a big leap.

Megvii (Data Platform)

(First Round)

Video interview, interviewer did not turn on the camera.

Focused on Go language basics, asked how to exit a goroutine and what happens if you write data to a closed channel.

The algorithm question was relatively simple, reversing a binary tree (sharing screen to write code), and detecting if a linked list has a cycle. The additional question was about the starting point of the cycle. I had an impression but wasn’t clear, answered using fast and slow pointers meeting point.

During the final question session, I asked how to improve technical abilities. The answer was to imitate and build wheels, focusing on independent working abilities.

(Second Round)

Handwritten LRU, requiring both query and write time complexities to be O(1). Couldn’t do it. The interviewer was kind, prompting me the whole time. Still couldn’t do it.

During the final question session, I asked what technical abilities are most valued. The answer was enthusiasm for learning and geek spirit.

(Final Round)

The worst performance.

The network signal was poor at the beginning, interrupted for a few minutes, directly disrupting my rhythm, making me panic. I had a lot to say but ended up speaking incoherently.

Asked what was the most growth-inducing task in your work? Too many to count, couldn’t say clearly.

Asked what improvements you would make if you redid a previous task? Answered poorly. First time in a final interview, facing senior interviewers, facing such questions.

Later, the problem was to write code to transpose a matrix, a very simple problem, but got stuck on Golang syntax for several minutes.

Later asked if I write test code usually, I said rarely in my work.

During the final question session, I asked what technical abilities are most valued. The answer was the question is too broad, abilities are multi-faceted.

(HR Interview)

The big sister laughed heartily…

CNKI

On-site interview.

Beautiful office environment.

Technical stack is years behind the internet industry.

At the end of the interview, the interviewer suggested that I delve into a technical detail.

Review and feelings: A mutual dislike situation, asked some very low-level questions. Outside of the interview context, such an interviewer isn’t qualified to evaluate my technical abilities.

Tantan

On-site interview.

First round whiteboard algorithm, a gentle girl.

Second round whiteboard architecture, focused on understanding system components, designed an instant messaging system. Performed poorly. First encounter, a bit confused. Indeed, not much to say.

Review and feelings: Ability mismatch, the other party expects someone who can independently architect and maintain the entire backend service, I currently lack architecture experience. Suddenly remembered during the second round, the interviewer said WebSocket can only communicate in LAN, not in public network. Before I graduated, I watched tutorials and made a real-time chat app based on React.js + Node.js + WebSocket. The interviewer’s technical skills might also be subpar.

Huobi

(Department 1)

Phone interview.

Only asked language basics. Couldn’t answer any.

Review and feelings: Turns out Huobi is also a sweatshop, at least the department I interviewed for. Another mutual dislike situation, the interviewer said besides language basics, didn’t know what else to ask. Algorithms