Ant Financial – before the interview

Ant’s interview is quite unique, there is no HR appointment time for each round of interview. Generally, the interviewer calls at about 8 PM and asks if he can have an interview. If he can, the interview will start.

The whole process has 6 interviews, the first five technical interviews, telephone interview, the last one is HR interview, on-site interview. The boss said that the technical aspects must be mastered well, in fact, the interview questions can also be memorized, if he had time in advance to read the following questions maybe some questions can be answered better, can play a cramping role.

One side

  • Tell me about yourself
  • Ask about the project experience, talk about “data synchronization”
  • Then we talked about the K8S project
  • Have what to delve into to get technology more deeply? (Kubernetes, Golang, Prometheus, Java)
  • What is the architecture of Kubernetes?
  • This problem is very big, and it is divided into Apiserver, Controller, Kubelet and Scheduler to discuss it
  • Golang vs. Java
  • This is a big problem. I compared VM, coroutine support, the difference between object-oriented and generic, and my understanding of each use scenario
  • Golang’s GC algorithm
  • I know it’s a tricolor, but I don’t know the details
  • From an infinite stream of characters, 10 characters are selected at random
  • Did not see also did not think out, checked the reservoir sampling algorithm, classic interview questions, did not brush the loss
  • How can the Kubernetes scheduler be extended to handle large-scale node scheduling
  • Single node acceleration: select some nodes randomly for optimization in the optimization stage; Scaling out Scheduler nodes horizontally, POD does a consistent hash to determine which Scheduler is scheduled
  • What do you want to ask me?

On the one hand, I was a little stiff. The interviewer didn’t give much feedback or insight into the boss’s answers. It was all “Oh yes” and then passed. So the boss thought he had hung up after the interview (if he wasn’t interested in the candidate, he would sometimes just ask questions and walk away), and was surprised when he got a second call.

Second interview

  • We talked about the project first
  • What changes have you made to Prometheus?
  • From grind configuration center, what content did specifically?
  • Have you used any advanced features of MySQL?
  • I don’t understand. I ask what is an advanced feature and the interviewer moves on to the next question
  • How are the core data tables in the configuration center designed?
  • Why do you use Redis in your business? What are the benefits of Redis?
  • Single threading: Concurrency security; High performance; Rich primitives and data structures; Widely used, low cost
  • Are you familiar with the implementation of data structures in Redis?
  • It says a ZSET skip table
  • Which data structures have been used in Redis and in what scenarios?
  • What parameters can be configured for Java to initialize a thread pool and what are their roles?
  • Which JVM parameters have my Java application tuned and why? * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  • Are there any parameters when you use Jetty and why?
  • Would it be nice to configure the Jetty QTP wait queue to be unlimited? Will there be any problems?
  • What commands have you used in Linux Bash, and what are they for?

A pen test: need to be given in the link to answer, can not Google, can not jump out, can not use the IDE:

The title is this:

Start two threads, one prints 1,3,5,7… 99, another output 2,4,6,8… 100 Stdout output 1,2,3,4,5… 100

You can’t use the Java BlockingQueue, but you need to use the Java wait + notify mechanism to implement it

‘Wait + notify’ means’ no ‘and’ go ‘means’ no’. ‘Wait + notify’ means’ no ‘

Finally, I realized a version with Go Channel, but the webpage I gave couldn’t run the code, and I didn’t know if it was written correctly. Then the interview ended.

This time around, the interviewer continued his usual style of asking one question and then moving on to the next. He didn’t seem to show any interest in or approval of my answers. So at the end of the round, he thought he might be dead again…

On three sides

  • Let’s talk about the project first
  • I was very interested in the project to monitor the alarms and asked for a lot of details. Finally, I asked a question: Now that you are asked to implement a query language that is not semantically weaker than PROMQL, can you implement it? (I’ve seen some Prometheus code, but I haven’t looked at ProMQL’s lexer and parser parts. I did a bit of research on ANTLR when I wanted to write declarative Stream SQL in a data synchronization project.) ANTLR write syntax + AST traversal to block the query logic.
  • What do you think is the most in-depth project (data synchronization, of course)
  • Talk about data synchronization projects
  • How are you doing with Linux? (No systematic study, basically my own operation and maintenance of pit accumulation)
  • How is Golang doing? (Has used it for half a year, read Effective Go)
  • How are the algorithms doing? (Up to the picture)
  • Ask the shortest circuit algorithm (just remember Dijkstra, describes the code flow)
  • How is K8S mastered? (I have not written Controller and Scheduler myself, but I am familiar with the concepts and have read the source code of XXX)
  • How is K8S exec implemented? (This question is right on my mind. I wrote PingCap homework before and I’m very familiar with it.)

The conversation went much more smoothly this round. Also notice that the ant interviewer seems to enjoy asking you to comment on your own: “How well do you think you’ve mastered XXX?” (There are only five interviewers, so the sample is not large enough to count). In fact, I am scared to death about this kind of question, because I am afraid that I can’t answer it because I overblow it. It is a small matter to fail the interview, but a big matter to lose face. I should have learned how to brag.

All around

  • Tell me about yourself
  • How do you feel about your basic knowledge
  • What data structures are used in general?
  • What are the advantages and disadvantages of linked lists versus arrays?
  • How to determine whether two acyclic singly linked lists have intersections
  • How to determine whether two single linked lists with a ring have an intersection
  • How to judge a single linked list has a ring, and find out the ring point
  • What’s the difference between TCP and UDP?
  • Describe the process of TCP’s four waves
  • What is the state of TCP
  • What is the LISTEN state of TCP
  • What is the CLOSE\_WAIT status of TCP
  • What steps are required to establish a socket connection
  • What are the common HTTP status codes
  • What’s the difference between 301 and 302
  • What’s the difference between a 504 and a 500
  • What’s the difference between HTTPS and HTTP
  • Write an algorithm problem: handwriting quicksort

This round of the whole process of the basic knowledge, solid foundation of the words will be no problem, but the big guy felt a little like the school recruitment of the question.

Five surface

  • Tell me about yourself
  • What secondary development has been done on the K8S?
  • Have you ever built Chart with Helm? What are the?
  • Have you considered encapsulating your own PaaS platform for R&D?
  • What does the configuration center do?
  • Why not use ZooKeeper?
  • How does configuration center ensure consistency?
  • Spring uses singleton beans. How do you ensure concurrency security when accessing Bean fields?
  • Use concurrentHashMap with a concurrentHashMap. Or add a mutex
  • What if I also want to isolate data from two threads?
  • ThreadLocal, and then we give an example
  • What is escape analysis in Golang? How to avoid memory escape?
  • I don’t know. I’m sorry
  • Compare Golang to Java GC
  • The JVM has generational recycling, but the Go Runtime does not
  • What is the GC trigger time for Golang
  • Threshold trigger; Active trigger; Two-minute timing trigger;
  • Have you ever written an Operator or Controller for k8s? (Big guy: No.)
  • Talk about your understanding of microservice architecture
  • General idea: “The essence of micro-service is the evolution of personnel organization structure and separation of concerns”
  • Talk about your understanding of Serveless
  • The general idea is “Serveless is another boundary demarcation between application development and infrastructure provider after docker and container choreography”
  • Do you think Serveless is the future? Why is that?
  • The general idea is “the future of cloud services, to cut the cake from the IT, operation and maintenance and middleware departments of the enterprise, to form the scale effect, the more you do, the more you will earn; In the company, Servless can help accelerate the front-end business iteration, but the benefits for the middle and back end are not yet visible, and there may be an architecture that’s better suited to the middle and back end.”

Interviewer: Do you have any final questions for me?

Why are there five rounds of technical interviews, and two of them seem to have nothing to do with K8S?

Interviewer: We think you’ve done a lot of things, and we want you to try them in all directions

Me: So is this the last round of technicals?

Interviewer: Not necessarily

Then I asked the interviewer some questions about the business, so I don’t need to repeat them

The boss said he was very interested in the last three blowing-water problems, but the interviewer only listened to him, did not discuss with him. In addition, I didn’t know until I asked the interviewer that the interviewer of the two sides was from the PaaS platform, so the main question about Java did not involve K8S and GO.

Six Faces (HR Faces)

  • I’ve heard before that HR from Alibaba is there to “smell” (to see if you fit in with Alibaba’s style) and has veto power. So it’s pretty stressful.
  • Ask experience
  • Why do you think about it?
  • “Now I’m kind of hitting a bottleneck in my technology growth, and I’ve been looking forward to your company.”
  • What is the company’s main business now? (This section asks a lot of technical questions. I feel like I want to test my ability to explain complex problems.)
  • Are you taking anyone with you now? What is the report hierarchy?
  • Are you satisfied with your experience these years?
  • What do you think are your weaknesses?
  • Have you ever had a frustrating experience?
  • What is your future career plan?
  • When looking for an opportunity, are you looking for benefits, platform, people, or some other factor?
  • How are you being treated now
  • Is there anything you want to ask me?

We chatted for more than 40 minutes, covering a wide range of topics. The interviewer also said that there was great pressure in System Department, and only outstanding talents could stay.

The boss felt that there was nothing to prepare for the HR meeting except the part about salary. Just say what you want. Because at least to HR to prove that your skills are not a problem, speak out so that HR can judge whether the values of the two sides are in harmony, if really not, it is better to get stuck in the HR side than to regret and then change jobs, after all, people do not like the resume of frequent job-hopping.

summary

After that, I asked for some subjective comments:

Interview difficulty: normal

Interview experience: Not bad, it didn’t feel that hard. (I’m sour anyway)

Problem bias: basic knowledge, common development knowledge, technical insight

Ant’s interview style is relatively “high cold”, the interviewer gives the big guy’s consistent feeling is very strong, Crouching Tiger, Hidden Dragon. The interview content in the basic knowledge part of the relative investigation of some more, no partial door and the question of curiosity, solid basic knowledge of the students can be bold to cast to see ants.