Preparation process

I have been working in my old company for more than two years after graduation. My old company is a “small company” (after all, there is no BAT or TMD title in this year). I have never worked in a big factory for more than two years after graduation. In a panic, I thought for a while to cheer myself up. The process of actually finding a hole and preparing for an interview can be divided into several stages:

  • Introspection: do you really want to quit? If not, what should you do in your old employer to continue to improve?
  • Positioning: Where are my strengths in hard skills (coding, architecture)? What are my strengths in soft skills (communication, teamwork)? This step along with writing a resume
  • Look for platforms: which platforms can satisfy both: 1) challenges and room for improvement; 2, in line with my positioning direction; 3. The team atmosphere is as good as (or better than) the old team
  • Looking for someone to push inside: basically is in v2 to find (sincere thanks to everyone to help me push inside big guy)
  • The interview talk about offer

In fact, it took me several days to locate this step. First, I sorted out my project experience and expertise in the work content, and took Java + Golang as my “hard signature”, having done a wide range of business (business, middleware and infrastructure) and having expertise and interest in K8S cloud native.

Then, I take strong learning ability, like communication and cooperation, and desire for challenges as my “soft signature”. Finally, I position myself as an image of “I have demonstrated excellent learning ability and research ability in the past experience, but I am eager for challenges and do not want to stay in the comfort zone”.

In this process, my methodology is “perspective-taking”. I have interviewed a lot of people in the past (so the company usually asks me to interview, although it is a bit hard, but it is also accumulated), and I have also talked with HR and the business side that released HC about what kind of people we want to hire. Therefore, the whole process is to examine themselves in the interviewer’s mind:

If I were an interviewer, what kind of people would I hire as colleagues?

To give you a few examples, here are some of the questions I’ve considered along the way (just to my taste, of course) :

  • What do I look for in a person who has graduated more than two years? In fact, people at this stage are still “empty cup”. I hope that he has strong learning ability and initiative to cultivate a super productivity for his department.
  • What makes me “hate a resume” : highlighting every item in all caps, especially when the details are not focused; List the capabilities of frameworks when they are used for a class of scenarios that they feel can solve a class of business and so on;
  • What questions would I prefer to ask in an interview? Languages and middleware that are “understood” or “proficient” on the resume; The second is the interesting projects on the resume, which are not fully explained;

After positioning, THE next position I wanted to find was basically locked in the direction of PaaS, cloud native and middleware. Then the next is to find pits, this period of time “winter theory” fried hot, good pits are really difficult to find, finally turned around to PingCAP internal push.

After sending out my resume, I went over the “holes” in my resume, namely the “understand and master” language and middleware I wrote, as well as the project specifically designed to seduce interviewers. Later found that this step is very key, a lot of knowledge if you do not review the content really forget all, this is also calculated at the last minute, not fast light bar.

Before the interview

PingCAP’s resume response was the fastest. HR contacted me the next day after the internal promotion. After the telephone was connected, I had a brief talk about my life, and then I asked three questions of the social recruitment: “Why did you leave your job?”, “What is your salary now?”, “What is your expectation of salary?” “, I had not prepared any similar questions before, so I could only use them in a rush [” Now I have a bottleneck in technical growth, and I have always admired your company “, “NOW MY salary is XXX, but our company has XXX in addition to BASE, and I will soon raise my salary”, I value the platform and the challenge more than the package, but the basic salary requirements are what I want to get through. After a little peace of mind, my sister told me about the structure and main business of my department, and then explained the following interview process. She made an appointment with me and added wechat.

“One side” is put in quotation marks because “one side” actually arranged a small project on wechat, and then appointed a time to check it.

I would like to express my special thanks to the HR sister in PingCAP. After adding wechat, she helped me coordinate the interview time and answered all kinds of strange questions. Finally, she prepared a surprise for me when talking about the offer. Interview experience directly full of stars <3!

One side

I had heard PingCAP was going to write a small project, and I was really excited to do it myself. The interviewer gave the project requirements that looked something like this:

After K8S is containerization, there are almost no debugging tools available in the application container. You can use the idea of Namespace sharing to start a container containing various debugging tools (such as Netstat, GDB) and add them to the POD PID, NET and other namespaces. Implement the debug function of any POD. Now we want to use the Kubectl plugin mechanism to implement a plug-in, used to debug any pod container, to achieve kubectl exec experience.

Since I couldn’t find time to work during the week, I started working on it every few days until Friday night, finished it on Saturday night and shared the project’s address on Reddit. Unexpectedly, I was lucky enough to receive more than 100 stars, which made me feel like “Oh wow, this round should be stable!” (It turned out to be almost the only interview I ever felt “secure” in…)

Second interview

The second interview was with me, a Cloud senior, who spent more than 50 minutes on wechat voice chat:

  • I asked about my project experience and talked about two projects
  • How about Kubernetes? Have you read the source code?
  • In fact, I only read kubelet about k8S code before. I read apiserver, Scheduler and Controller-Manager all at the last minute, and my smile gradually appeared.
  • What is Kubernetes Service concept, how to implement?
  • You were talking about Informer, how is Informer implemented and what does it do?
  • Have you ever used StatefulSet? What are the characteristics?
  • How is the rolling upgrade of StatefulSet implemented?
  • Now we want to upgrade only any node in StatefulSet for testing. What can we do? Later, when I remembered a new StatefulSet, the data in PV was lost. In fact, the correct way was to use partition mechanism, and the smile gradually disappeared.
  • All resources in Kubernetes have version numbers specified. For the second uncertain question, I repeatedly told myself before the interview that “don’t force me to answer” and “if I don’t know the question, I will talk about the idea”. Therefore, I said that I had never seen this code, but according to the design concept of micro-service API, the version number plays a different role. The answer seemed to satisfy the interviewer, so he dug down:
  • How many sets of code does the K8S server need to maintain if there are more than one version number? This I have not seen k8S code how to write can not be sure (want to express myself really read the code will confirm, underline my strict… Holy shit), but if I were writing the code (pretending to be confident), I would just maintain a copy of the latest Model, and then design a version segment of Adpater to translate the old Model blah, blah, blah.” At this point, I’m a dead end
  • OK, let’s talk about Golang.
  • See if there is a problem with this code. Why?
  • How is Goroutine scheduled?
  • What is the relationship between Goroutine and kernel threads?
  • Is there anything you want to ask me?

After the face of the general feeling of the answer, the in the mind a little uneasy. Results the next day HR little sister came to arrange three sides, a long sigh of relief.

On three sides

In the third part, I had a chat with the Leader of the whole department. The interviewer was very good at chatting and had a comprehensive technology. The whole conversation lasted about 80 minutes on wechat:

  • Introduce me to the responsibilities and challenges of the PingCAP team
  • Why do you want to see opportunities and your future career plan
  • I was working on a data synchronization project, which was about subscribing to MySQL Binlog, sink to search index, sub-database sub-table and business event subscription stream
  • Why did you choose XXXX open source project in data synchronization? What’s the advantage?
  • How to subscribe to Binlog of sub – database sub – table?
  • How to solve the primary key conflict in the data source of sub – database sub – table?
  • How to guarantee downstream consumption order of Binlog?
  • How can atomicity of transactions be guaranteed downstream at consumption time?
  • How to ensure the binlog order in this scenario
  • Talking about a project on Kubernetes, asking for details and pitfalls
  • What problems have you solved with Kubernetes?
  • Talk about the surveillance alert project I was working on, ask about background and output
  • Prometheus single instance data scale is not holding, what is the solution?
  • Is there anything you want to ask me?

For the project of “data synchronization” in my resume, I have carefully reviewed the research documents and architecture documents I wrote in those years, and also prepared for being asked. This is exactly the kind of project I expect interviewers to dig for details). In the end, I did get asked the most about this project, which is really good luck.

All around

When I arrived at the scene, two interviewers chatted with me for about 40 minutes:

  • Talk about the details of the Configuration Center project
  • Why not use ZK, want oneself to write a configuration center “, “this question let me by surprise, I have to confess: young at the time, want to brush experience, understood later to make the wheels don’t repeat, of course, the final output of the system is also good (behind this is temporary I add the two sentences, can’t let the interviewer think I am a look at the global only brush experience in)
  • How does the configuration center do service discovery? How do you do failover?
  • What pits have you encountered with Kubernetes?
  • What changes have been made to Prometheus?
  • What changes have been made to Alertmanager?
  • How does the monitoring system do “self-monitoring”?
  • How to monitor cross-room network problems?
  • Is there anything you want to ask us?

Four sides is pure project, the experience inside is not quite universal. But there is a detail, and at the midway point the two interviewers check each other out and say, “Any questions?” I realized the interviewers were running out of questions, and it was only about 20 minutes (too short an interview is bad smell). I tried to be as specific as possible about the following monitoring questions, while also mentioning that “there’s another area where we were doing a lot of work at the time”, hinting that the interviewer was looking for clues. I don’t know if it worked, but it was a close call.

Five surface

The end of the technical side is the fourth side, the fifth side is the founder’s side (I was lucky to talk about life with Cui Qiu for more than 20 minutes), and then the offer call is finished.

PingCAP summary

Some subjective evaluations:

  • Interview difficulty: Normal
  • Interview experience: I give full marks
  • Question preference: Project experience, engineering ability

I really want to say a word about PingCAP (because the interview experience was great!). . The original intention of joining PingCAP is to feel that the team has a strong engineer culture, and there are many talents in it. Meanwhile, TiDB is excellent, and THE model of open source project is recognized in my heart. But there are many companies that sell dog meat, many JD write that engineers have a strong culture, in fact, many are not so true.

However, after five rounds of interviews with PingCAP, I truly felt the engineer culture: there were no “tough questions” in the interview. Every interviewer was interested in my engineering thinking, learning ability and technical insights, and was very keen to discuss and dig some holes and make technical decisions with me. It feels good: the interviewer knows me, and my thinking and technical insights as an engineer are recognized and respected. It’s an atmosphere that can’t be sloganized, because it’s a hard requirement that everyone in this group has a passion for technology and a lot of engineering experience.

The last

Thank you for reading here, the article is inadequate, welcome to point out; If you think it’s good, give me a thumbs up.