Some time ago, there was a fan letter, said that he was interviewed by Ant Financial, this relationship is good, ants are ready to go public, this is not far from the wealth of freedom? Today xiaobian will share the fan’s interview experience, I hope xiaobian share can help you.

Before the interview

Ant’s interview is quite unique. There is no HR appointment for each round of interview. Generally, the interviewer calls at around 8 PM to ask if the interview is available.

Six interviews, the first five technical interviews, telephone interviews, the last one is HR interview, on-site interview.

One side

  • Introduce yourself
  • Ask about project experience and talk about “data synchronization”
  • Then we talked about the K8S project
  • Is there any technology that you dig deeper into?
  • What is the architecture of Kubernetes? This problem is very big, which is divided into Apiserver, controller, Kubelet and Scheduler
  • Golang versus Java was a big question, and I was comparing VMS, coroutine support, the difference between object-oriented and generics, and my own understanding of their respective usage scenarios
  • Golang’s GC algorithm is known to be tricolor, but the details are not available
  • From the infinite character stream, randomly select 10 characters that I have never seen or thought of, check it is the reservoir sampling algorithm, classic interview question, did not brush the question to fail
  • How to expand Kubernetes Scheduler so that it can handle large-scale node scheduling and speed up single node: Select some nodes randomly for optimization in the optimization stage; When scheduler nodes are extended horizontally, the pod does a consistent hash to determine which scheduler is scheduled
  • What do you want to ask me?

Second interview

  • We talked about the project first
  • What changes were made to Prometheus?
  • Self-research configuration center, what specific content did?
  • Have you used any advanced features of MySQL? I asked what was an advanced feature, and the interviewer moved on to the next question
  • How is the core data table in the configuration center designed?
  • Why use Redis in business, what are the advantages of Redis? Single thread: concurrency safety; High performance; Rich primitives and data structures; Widely used, low cost of stepping pits
  • Are you familiar with Redis data structure implementation? Said a zset skip list
  • What data structures have you used in Redis and in what scenarios?
  • What parameters can be configured to initialize a thread pool in Java?
  • What JVM parameters have been tuned by your Java application, and why? I only know the basic things like Max heap min heap, open G1, open GC log and OOM Dumper
  • Do you have any parameters when you use Jetty, and why?
  • Would it be okay if the Jetty QTP wait queue was configured to be infinite? Will there be any problems?
  • Which Linux Bash commands have you used and what do you use them for?
  • A pen test: need to answer in the link given, can’t Google, can’t jump out, can’t use IDE:

The title goes like this:

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

Fan: I’ll do it with Go

Interviewer: No, use the Notify mechanism of Java

Fan: I’ll use Java BlockingQueue

Interviewer: No, please use Java wait + Notify mechanism to implement

You can write “go” instead of “wait” and “notify”

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

On three sides

  • Still talk about the project first
  • Interested in a project to monitor alerts, I asked a lot of details, and finally asked a question: Can you implement a query language whose semantics are not weaker than PromQL? I’ve seen some Prometheus code, but I haven’t really looked at PromQL’s Lexer and Parser parts. Thankfully, I’ve studied ANTLR a little bit in my data synchronization project because I wanted to write declarative Stream SQL. ANTLR write syntax + AST traversal plug query logic is fooled.
  • I was asked what was the most in-depth project that I’ve worked on of course data synchronization
  • Talk about data synchronization projects
  • How is Linux? Without systematic learning, it is basically accumulated by their own operation and maintenance
  • How is Golang mastering it? Six months, effective Go
  • How is the algorithm mastered? All the way up to the diagram
  • The shortest path algorithm, I just remember Dijkstra, describes the code flow
  • How’s your mastery of k8S? Not good. I have not written controller and Scheduler myself, but I am familiar with the concept. I have read the source code of XXX
  • How is k8S exec implemented?

All around

  • Introduce yourself
  • How do you feel about your basic knowledge
  • What data structures do you usually use?
  • What are the advantages and disadvantages of linked lists versus arrays?
  • How to determine if two acyclic singly linked lists have intersections
  • How can I tell if two singly linked lists have an intersection
  • How to determine whether a single linked list has a ring, and find out the ring point
  • What is the difference between TCP and UDP?
  • Describe how TCP waves four times
  • The status of TCP
  • What is the LISTEN state of TCP
  • What is the CLOSE_WAIT state of TCP
  • How to set up a socket connection
  • What are the common HTTP status codes
  • What’s the difference between 301 and 302
  • What’s the difference between 504 and 500
  • What’s the difference between HTTPS and HTTP
  • Write an algorithm problem: hand type

Five surface

  • Introduce yourself
  • What secondary development has been done on k8S?
  • Have you ever built Chart with Helm? What are the?
  • Have you considered encapsulating your own DEVELOPment-oriented PaaS platform?
  • What does the configuration center do?
  • Why not Use ZooKeeper?
  • How does the configuration center ensure consistency?
  • Spring uses singleton beans. How to ensure concurrency safety when accessing Bean fields? Use concurrent safe data structures, such as ConcurrentHashMap; Or mutex
  • What if I also want to isolate data from two threads? ThreadLocal, and then gave an example
  • What is escape analysis in Golang? How do I avoid memory escape?
  • Comparing Golang’s GC to Java’s CMS, G1, and tricolor markers, my point of comparison is that the JVM has generational collection, while the Go Runtime does not
  • Golang’s GC trigger time is the threshold trigger; Active trigger; Two-minute timing trigger;
  • Have you written Operator or Controller for K8S?
  • Talk about your understanding of microservices architecture. “The essence of microservices is the evolution of people’s organizational structure and separation of concerns.”
  • “Serveless is the next frontier between application development and infrastructure providers after Docker and container Choreography.”
  • Do you think Serveless is the future? Why is that? “The big idea” is the future of cloud services, taking the pie out of the IT, operations and middleware departments of the enterprise and creating economies of scale where the more you do, the more you make. In the company, Servless can help accelerate the front end business iteration, but we don’t see the benefits for the middle back end. In the future, there may be a better architecture for the middle back end than Servless.”
  • Interviewer: What’s the last thing you want to ask me?
  • Fan: Why are there 5 rounds of tech and 2 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 it in all directions
  • Fan: Is this the last technical round?
  • Interviewer: Not necessarily

Six sides

  • Ask experience
  • Why would you consider coming out? Golden sentence: “now my own technology growth a little bottleneck, plus has been admiration for your company.”
  • What is the company’s main business now?
  • Are you bringing anyone now? What is the report level?
  • Are you satisfied with your experience these years?
  • What weaknesses do you see in yourself?
  • Have you encountered anything frustrating?
  • What are your future career plans?
  • When looking at an opportunity, do you consider salary, platform, people or other factors?
  • How are you being paid now
  • Is there anything you want to ask me

summary

Some subjective evaluations:

  • Interview difficulty: Normal
  • Interview experience: Normal
  • Question bias: basic knowledge, common sense of development, technical insight

Ant’s interview style is “high cold”, the interviewer gave me the same feeling is very strong, crouching tiger hidden dragon. Interview content in the basic knowledge part of the relative investigation more, no partial door and curious questions, students with solid basic knowledge can be bold to cast ants.

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.