background

I worked as an engineer with four years of experience in miscellaneous work, but I worked at home due to the epidemic, so THERE was no need to attend the interview. In this gap interviewed several big factories, the result is not satisfactory.

Their lack of preparation before the interview, the interview effect is unsatisfactory. What impressed me most was that when I was asked about the common indicators of performance optimization, the word “DomContentLoad” did not come to mind, only the word “DCL” came to mind. Therefore, it is suggested that you should be fully prepared before the interview, whether it is to test the water in a small company

Good things go a long way, I put the experience of several large factories together to share the interview experience, the interview process of technical depth and breadth, project and management are involved, below some impressive to make a summary

The interview

  • To introduce myself
    • This section, every company will have, although partial to the form, but seriously, twice the result with half the effort. My advice is to write it down, memorize it, and see if it reflects your abilities and contribution to the team. Furthermore, we should pay attention to reflect our own product business ability and management ability. Business ability is very useful in similar business companies, which can be revenue (reflecting market size), competition, product differentiation and advantages, or pain points to solve. Management skills can be the construction of technical infrastructure, project control and team management.
  • Brief introduction of business and products
    • This is a question that is occasionally asked, usually on three sides. In short, to have a good understanding of the business, which requires more communication with the product at ordinary times, and more click on their own system. (It can be inspired by the company’s business to remove the pain point and wake up the SideProject, so as to achieve a win-win situation with the company from the in-depth understanding of the business)
  • Explain the threading model of Node
    • I didn’t answer that question very well. To understand the threading model of Node, it is important to understand the architecture of Nodelibuv.v8Two large brackets and some smaller dependencies asnode12In the introduction of fasterllhttp.c-ares.icu-data.zlibAnd so on. So learn it wellnode, to understandlibuvAs well asv8Two big pieces, onelibuvIt’s related to the event loop, it’s in your code all the time, andv8Related to CPU /memory/ GC, it is always present in your online troubleshooting. For more on threads, seeAnalyze Node processes and threads
  • How to troubleshoot problems online
    • Sentry monitor, according to the monitoring of the exception code, exception and exception related context (such as request failure, failed request, database query failure, failed SQL, and additional user information, etc.) to solve the problem, failed, go down
    • Obtain full-link logs based on requestId and search for clues in logs (APM is required)
    • Read log related service logic
    • The test environment tries to reproduce and resolve
  • Have you used egg yet? Tell me about egg-cluster
    • No, but the question has been asked so many times that it seems egg-cluster should be investigated
  • How to solve the OOM online
    • Keep an eye on Prometheus/Grafana every time it goes online (online deployment is based on K8S, so the monitoring of deployment is relatively simple), if there is any abnormality, check the new code this time (according to the operation and maintenance method, most problems will be solved here)
    • If the fault cannot be rectified from the perspective of operation and maintenance, enter the container and send it using heapdumpUSR2Signals are extracted from dump, downloaded locally, and analyzed in Chrome DevTool
  • How do you deal with heavy online traffic
  • How to prevent service avalanche
  • Why do you use Postgres for your database, and what are its benefits
    • Better use, more user-friendly for JSONB and data analysis (chosen by the bosses, I’m weak on databases overall)