[toc]
1. Brief introduction
After graduation, I have been working in a medium-sized factory (hangzhou quasi-unicorn, 200 people in r&d, Ali style). My technology is not top notch, and my infrastructure is rough, but I have basically everything I need. I did learn something in it, mostly process specifications and some business practices.
Although the technology of small companies is not very good, but there is a good point, is able to trial and error, their own ideas or new things, basically can be carried out in the online business, the constraints are not as strict as big factories.
This time to share the interview experience of several large factories. Interviewed didi, Ali, headlines, Hang Seng, in addition to didi face black twice a hang up he has been.
2. Interview content
- Ali-tao backend development
- Byte – e-commerce
- Hang Seng – Financial software
- Didi – Marketing, supply chain
Didi [side, video] *2-60 minutes
I can’t remember exactly, but the basics: caching, GC, database indexing, MQ, distribution, etc.
The questions are deep and tough. Look for the insider to help see the results of the surface evaluation is poor, said that the foundation is too poor, no distributed system experience and so on. The level of the interviewer is not too good will not guide, a question is not prompted directly, and then said that the foundation is poor, and ali compared to the interviewer experience is a lot worse.
Conclusion: It is difficult to interview for departments that are not short of staff, and they may compare their own dishes. They fail twice at the same time. There is a gap between the level of the interviewer and that of the first-line large factories.
PS: In the second interview, I took two calls from ALI HR to set up a cross interview, and then disrespected the interviewer by giving G. I shouldn’t have thought about it, but Ali had one last look.
Hang Seng [one or two, video] – Senior development engineer
Hang Seng this interview feels more casual, also quite basic quite simple. Should be quite short of people, ask more down-to-earth.
One side – Project Manager: Ask basic questions (30 minutes)
- What storage structure and usage scenarios does Redis have?
- Have you used Springboot? How to configure Redis, MQ, etc.
- Several data structures, safe and unsafe, usage scenarios, etc.
- Business done by your company, technology stack used, team status.
Second interview – Project Manager: Mainly about engineering (40 minutes)
- What business does the company do, which part of the team is responsible for, and how much of the team is responsible for itself?
- Tell me about your company’s development process. Which part is involved in development and how is it?
- Have you done system analysis, process analysis, unit testing? Tell me the difference between them. Give me a practical example.
- Have you ever led any projects? What is the ratio of personnel? What should we pay attention to?
- How does MQ guarantee that it will be sent successfully and that it will not be re-consumed?
- Do you have any questions about hang Seng?
Three – HR: Mainly about salary (probably satisfied with me) (30 minutes)
More general, is personal character, strengths and weaknesses, expected salary and so on
Finally: the offer came down, and finally declined, because Ali was already stable by then
Ali [Side, phone, pure technology] (old P7-90 mins)
- Multithreading.
- What is CAS? Where are the applications?
- How does pessimism differ from CAS, how does it perform, and why?
- What is the difference between object locks and class locks? If a class lock is passed in by an external declaration, it is in some sense the same as a class lock. But further points if written tool can understand the difference between it, for example, I do an asynchronous concurrent load data operation, multiple threads at the same time to obtain a data, each thread to generate an object the CAS operation in the queue ready to load, ensure that only one person can put in others have the same object, the object contains a lock and load function, Multiple threads hold the current object, call the GET method, wait if the data is not ready, and wake up all threads when the data is loaded. Class locking is more suitable for global nature, such as singleton loading.
- When can volatile use scenarios not be added?
- Collection problem
- Why is ArrayList faster to randomly find than LinkedList? Why is continuous memory addressing faster? Why is continuous memory addressing faster?
- A brief introduction to concurrent security packages
- MySQL
- Common index, failure problem, how to troubleshoot and optimize
- Why do we have to divide the database into different tables? Why do we have to do it faster? How to divide the database into tables, for example
- What is the difference between horizontal and vertical sharding, and what are the benefits of each?
- What’s the difference between a level score for multiple instances and one instance?
- MQ
- Use scenarios, why use them? Give examples and then follow up based on your answers
- MQ is a common solution for ultimate consistency, but there is no guarantee of ultimate consistency.
- distributed
- What is a consistent hash? What’s the difference with ordinary sharding? (Poor answer)
- What are the application scenarios?
- Redis
- Infrastructure, usage scenarios
- Do you know the underlying structure? – I don’t know
- What are cache penetration, breakdown, hot spot, and avalanche, and how are they resolved?
- What problems can bloom filters be used to solve?
- reflection
- Basic introduction of reflection, what function?
- I’ve done something with reflection. I happened to make several tools for this, and used all the reflection agents, which satisfied the interviewer.
- subsequent
- I am satisfied with you. There are two algorithm questions. If you can solve the simple ones, I will give you two questions immediately.
- The first problem: single producer and many consumers, to ensure sequential consumption. ReentrantLock and Condition
- The second problem: multilevel address list parsing, storage, search, print. Examine B tree construction and lookups.
Ali [Side – Continued, phone] (30 mins)
- Describe your thinking and design details for these two algorithms, and then ask for some random code details.
- Gave me a few DOS and don ‘ts for the second interview. Say steady play basically can pass. Given four words and two sentences: smart, optimistic, realistic, introspective, introduce the project, speak with data and results, and think about how you represent the first four words in all your answers.)
Ali [Second interview, telephone, partial Technology] (P8-60 mins)
- Project experience and personal soft power
- What’s your plan for the future?
- Do you follow open source projects? Which ones are you interested in and think the design is great? Give some examples? Spring and Dubbo
- In addition to work how to study, tell me about your actual situation.
- Tell me about one of your best projects, how difficult it was, and what the highlights were. (The answer is not the question, finally I remember to use the data to speak, say several times the performance, what was before, what is now, immediately satisfied)
- technology
- What are the concurrency safe containers in the collection? How are they implemented? Which ones have you used?
- What does ThreadLoca do? Have you used it yourself? Give me an example. What are the underlying implementation and data structures of ThreadLocal? Why does memory overflow occur and how can it be avoided?
- ThreadLocal uses weak references. What are the differences between weak references and weak references?
- What have you read about open source frameworks? — Say JDK and Spring, then stop asking
- Why is Redis fast? — Probably want to ask the underlying implementation, I said IO multiplexing (epoll), and then no, too
- How does Redis solve hotspot caching? Hash fragmentation, local cache, hit ratio, and hotspot monitoring are preheated in advance
- You said you are familiar with Dubbo, which piece of design do you think is better? Filter implementation is good, such as the built-in stream limiting module, generalization call, etc
- Troubleshoot problems
- What are the methods of troubleshooting? What problems have you encountered? How do you check?
- Log alarm, PINPOINT monitoring, RT monitoring, ARTHas monitoring, etc
- How to troubleshoot a CPU problem? Top, JStack, arthas
- How to troubleshoot GC problems? Look at the GC log, frequency. — Specific analysis has not done won’t, don’t ask
- Practical examples. Thread pool timeout in multiple threads
- How much do you know about GC? Answer can only principle, no opportunity will not practice
- What are the methods of troubleshooting? What problems have you encountered? How do you check?
- Think good, direct on the spot about 3
Ali [Three interviews, telephone, partial Comprehensive Quality] (P9-60 mins)
- Business related, mainly to examine their own perception of the company’s overall business
- What business are you responsible for, what is the technical architecture, and what do you do? You can quantify the value of what you do.
- What does the company do? What is the core?
- How is the company growing? Who are the competitors? What are the advantages?
- Do you have your own follow-up plan on the supplier side?
- technology
- Personal growth
- other
- Why did you leave? Your strengths and weaknesses?
- What do you think of other offers?
- Where do you live and what are your salary expectations?
- Do you have any questions?
- Your own interview evaluation. Lack of complex system thinking and design, lack of distributed and highly concurrent experience, expression and summary ability to improve. Advantages solid foundation, clear understanding of business market. The surface review is good, an hour later gave about four.
Ali [Four sides, video, crossover] (P9 and HR -70 mins 40+30)
- p9
- To introduce myself
- Tell me about the project, how it was done, what were the advantages and disadvantages? Data to talk
- An extension of your own project. — I was talking about abstract design, and MD almost gave up the interview when he kept asking me about abstract design
- The cache
- How to optimize mysql if there are performance problems? — Comprehensive thinking, hardware upgrade, hot and cold separation, master and slave, separate library and table, parameter setting, cache, etc. Not a good answer, hardware and parameter Settings.
- hr
- Advantages and disadvantages
- What do you know about C2M? You know what the core is? Is it clear what you will do when you join the company?
- At ordinary times have the initiative to promote product optimization achieved business results of the case, say.
- Do you have any other interviews? What are offers? How can we choose if we have all of them?
- Single? When will the offer be accepted?
Ali interview summary
- Comprehensive. Comprehensive evaluation of technology, business, design, soft power, etc.
- The interview experience was good, the interviewer was of high level, and the interview process ended in a week.
- Focus on potential rather than status quo, which is metaphysical, and if the 12-interview interviewers think highly of you, you’re pretty much guaranteed.
Bytes [side, head soldier] (60 minutes)
- Introduce the project, how you did it and what the results were.
- technology
- How to ensure security with HashMap?
- What’s the difference between Synchornized and ReentrantLock? Are they all reentrant locks?
- What is OOM? How does it work? Write an OOM code by hand
- JVM all introduction, JVM each module introduction, is what. Give a scenario, then how to check GC problems, how to adjust GC parameters.
- Algorithm. List order
Byte [Second side, Dashed Line supervisor] (60 mins)
- Introduce the project, say a design that you think is good.
- technology
- A HashMap, CurrentHashMap
- What methods does Object have
- Tell us about locks, what are fair and unfair, and how are the implementation details different?
- Spring IOC, DI, AOP, BeanFactory and FactoryBean
- MySQL InnoDB introduces the difference between B+ tree and B tree
- Problem scenario
- There are two files. Find the same line in both files
- Files are hashed into smaller files, which are then processed and merged
- IO times too many optimization? I didn’t answer. I gave a hint and bloem filter still didn’t answer
- There are two files. Find the same line in both files
- Algorithm. Parentheses match to find the longest length that matches the match. Need dynamic programming, no, only half done
Bytes [Three Sides, Big Boss] (60 mins)
- To introduce myself
- Write an algorithm, KMP. –
- Write an algorithm that lists all the subsets. — Began to think of a complete permutation, did not write out, through the prompt to write recursively
- Write a SQL query to find the person and department whose salary is greater than the average salary in the province
- What are the benefits of thread pools and what is the underlying implementation? What does each parameter mean?
- The other…
Bytes [Four Sides, HR] (80 minutes)
- Interview evaluation, evaluation of the interviewer, evaluation of yourself, how do you feel about the interview, questions, algorithms, etc.
- Strengths and weaknesses
- Have you ever led any projects? What is the ratio of personnel? What problems did you encounter and how did you solve them?
- What offer do you have? How much salary do you expect?
Byte Interview summary:
- The level of the interviewer feels a little bit behind Ali, but the interview experience is good, there are email prompts on each side, more formal.
- It’s a little sparse, algorithmic, and takes up half the interview time.
- Hr has the advantage of being difficult to ask. The questions they ask are not as formal as ordinary companies, and they are still difficult to answer.
PS: Went to Ali for two weeks, then went to Byte. The main feeling is that they can not enjoy the blessing, pit or better people.