吹拉弹唱


  • Home
  • Archive
  • Categories
  • Tags
  • Books
  •  

© 2022 Kleon

Theme Typography by Makito

Proudly published with Hexo

Common - Behavior

Posted at 2022-04-19Updated at 2022-05-13 interview  interview 

Intros and common questions in non-technical interview.

  • Projects
    • Challenging Project #1 Optimize Throughput
    • Challenging Project #2 Optimize Worker Pool
    • Challenging Project #3 Connect to Billing System
    • Successful Project #7 Priority | Customer First
    • Leadership Project #1 | Lead different roles
    • Stressful/Failed Project #1 | Professional Persistence
    • Conflict with co-worker #1 | Rapid prototyping and profiling
    • Conflict with boss #1 | Occasion & Responsibility
  • Tell me about yourself?
  • What’s your most challenging project / project you are most proud of ?
  • What is your strength?
  • What is your weakness?
    • What are your weaknesses?
    • What is your greatest weakness?
    • What is your worst trait?
    • Describe your worst fault.
    • Tell me about your biggest failing.
    • What is one thing you could change about yourself?
  • How do you handle stress?
    • How well do you handle stress?
    • How do you handle conflict?
    • Occupational stress?
    • Work-related stress?
    • Managing stress?
  • Tell me about a time when you demonstrated leadership skills.
  • What is your ideal working environment
  • What’s your proudest professional achievement
  • Why should we hire you
  • Why do you want to work for us
  • What did you dislike about your last/present job
  • Where do you see yourself in 5 years from now?
    • Tell me about your future accomplishments?
    • Where do you see yourself down the line?
    • Where do you see yourself in 10 years?
    • Where do you see yourself in 15 years?
    • What does the future hold for you?
    • What are your long-term plans?
    • Describe your career goals.
    • What is your ambition?
    • What’s do you see yourself in 5 years?
    • What’s your career path?
    • Is there anything change in the past few years?
  • How did you manage your time and prioritize your tasks?
  • Tell me about a time you failed? How did you deal with the situation
  • Have your suggestion being adopted
  • Describe your idea boss
  • What will you do if you are 100% that your boss is wrong
  • How do you finish an impossible task
  • Have you ever did more than required
  • How do you compare yourself to your peers
  • Belbin’s team roles
  • Why do you want to leave your current position? Why us?
  • What do you know about us?
  • Describe a situation… / Tell me about a time, conflict with co-worker/manager
  • What’s your biggest failure? What’s your most regretful decision in your work?
  • Why should we hire you?
    • Why do you want to work here?
    • Why do you want to work at this company?
    • Why do you want to work for us?
    • What makes you the best candidate?
    • What makes you have what it makes?
  • What are your expected salary?
    • What are your salary expectations for the job
    • When interviewers press further for a specific number
    • What are you making now
  • Why did you leave your last job?
  • Ask me

BQ Compilation[1][2]

Operational Roles:

  • Marketing specialist
  • Business analyst
  • Human resource personnel
  • Accountant
  • Sales representative
  • Customer service representative

# Projects

# Challenging Project #1 Optimize Throughput

That reminds me of optimizing the throughput of the SMS Service of the marketing & growth platform. The SMS Service is the most important service, which requires large throughput and is directly connected with the Billing System of Alibaba Cloud. We have to handle it very carefully.
At first, after we finished the coding, we found that the input throughput is only a dozen requests per second. And it will take about 3 hours to send 1 million text messages. Which is totally unacceptable. So we start to optimize the performance of the whole system.

The two main third-party services we used is Hologres and Kafka. Hologres is a distributed database provides postgreSQL liked interface. And Kafka is a distributed message queue.

First, after profiling the database, we found that the query latency and the CPU utility are both quite high. The average insert latency is greater than 500ms, and the worst insert latency could be greater than 2s. The performance of the whole system is bounded on database.
Therefore, we started to optimize it using mainly several approaches.

  1. Write messages into the database in batch, using batch update query, which reduce the number of write operations.
  2. Write messages into the message queue in batch, which also improve the processing efficiency.
  3. Messages are not stored into the database in API service, but are stored in the message queue and write them back into the database after sending them. Reduce the number of database write operations.
  4. Use large batch size, since the users can send unpredictable number of messages in a request, which will reduce the throughput if we use that as the batch size for the database operations. So we write messages in a large batch (maybe 1000) after sending them. Which is also a benefit from approach 3.
  5. Construct SQL manually for the critical table operations rather than using ORM model, which eliminates unnecessary columns and saves a lot of bandwidth.
  6. Use local cache and local authentication mechanism to avoid reading database in API.

In the end, we did thoroughly functional tests and profiling tests. The speedup comparing to our first version is over 100x. A million messages can be sent into our system within 1 minutes.
That’s the most challenging project impressed me and I’ve learned a lot from designing the systems.

And the average insert latency of the database is 200ms, the worst case is about 400ms. Average Read latency is about 100 ms. That’s the one of the most challenging projects.

# Challenging Project #2 Optimize Worker Pool

Yes. One of the most challenging projects that impressed me is optimizing the video enhancement platform, which involves 3 aspects:

  1. The first is to support multiple workers processing parallelly and get their status back correctly.
  2. The second is to save the costs.
  3. The third is to shorten the processing time of a single video.
    The whole solution is about how to break down large problems into small ones and verify solutions by rapid prototyping.
    For the First requirement, I tried different worker pool solutions using jobs or services. And tried different status synchronization mechanisms using database connections, unified status APIs or messages queues.
    For the second requirement, I tried different optimization methods from the cluster level, the service level and the model level.
    For the third requirement, I designed the mechanism to split videos into chunks and process them in parallel.

I finally choose the technical solutions weighing tradeoffs between technical complexity, costs and service quality.
I also provide some hyperparameters controlling the thresholds and key factors of the system and can be tuned according to the practical business requirements.
That’s the one of the most challenging projects impressed me. And I’ve learned to comprehensively consider the requirements and technical solutions of the system as a whole.

# Challenging Project #3 Connect to Billing System

I remembered when I was connecting our system into the Billing System of Alibaba Cloud for the Marketing & Growth Platform. The most challenging things are not technical things. At first glance, it’s a not-that-complex job. But when you dive deep, there’s a lot of pitfalls during the development.
What did I do?

  1. Skim and scan all official documents to form a rough picture of the connections between those services.
  2. Communicate across more than 10 teams, such as product definition, gateway, metrics, billing, accounting, endpoint, reserve-proxy, authentication, security, private network etc.
  3. For those missing details, ask the colleagues with related experiences. If they haven’t encountered, search the document library to sort out all related information and ask the technical supports from those teams.
  4. Collect all possible reusable code snippet from authorized repositories and figure out the correct version of official or unofficial SDKs.
  5. Develop and test step by step. Solves the problems like the host binding of the preview environment, accessing the private network by applying tunnel connection whitelist.
  6. Cooperate with technical support, product manager, product developer to make the product go-alive on time.
    And finally after solved a lot of pitfalls. We made it. No body knows the details than me. So I have to own the product.
    And I write a document as a guidance and supplement in higher view, which records common pitfalls and solutions.
    I’ve learned how to cooperate with different people across departments and get the project done.

# Leadership Project #1 | Lead different roles

Design the growth and marketing platform.

Involves co-workers for product, algorithm, operations and sales.

They are providing suggestions from their own perspective.

The colleagues responsible for the product explained how should we organize the web pages and how to improve the user experience.
The colleagues responsible for the algorithm gave suggestions on the extensibility and generalization of algorithms jobs.
The colleagues responsible for the customer operations shared the common user cases.
The colleagues responsible for the sales emphasized that the customers have a lot of requests on product features and urge us to launch the features as soon as possible.

I communicated with them respectively and gain a deeper understanding of the details. Then I sorted out the requirements and the priorities of product features, and made the technical decisions and the development plan of product features.
An important thing here is to take the ownership of projects. I will not passively accept the suggestions or requirements from other colleagues. I’d like to understand the business background and the core targets that we want to achieve. I would also propose suggestions from the technical and product perspectives. And also make the boundary for different roles more clear will help people to cooperate more actively. Because a lot of people I’ve cooperated with are willing to accept your standards or interfaces rather than proposing theirs first.

That’s it.

For example, I would abstract and reorganize the product features in a quick designed technical solution, kind of like the system design and make the assessments of whether the complexity and the extensibility of our solution can meet the requirement. Apart from that, I would share my suggestions on the unreasonable relations between features and try to come up with maybe a better solution for us to discuss together.

# Stressful/Failed Project #1 | Professional Persistence

I remembered there was a time when we developed the recommendation services for a small cross-border e-commerce company.
After we communicated with the customer and confirmed the business requirements and technical details, we made a plan reserving enough time for modeling, developing and testing.
But The salesman were just keep emphasizing how emergent this project is and how eagerly the customers want our services to go-alive and gave us a so-called deadline. The tight deadline broke our plans, and we had to rearrange our time among the projects we were handling. We spent a lot of efforts on how to adapt our design for this particular customer which made the whole system tightly coupled. But it turned out that the salesman was overcommitting. And the customer did not actually test our services util they finished their inner tasks with higher priorities. Other than that, the customers had to make a thorough assessment by AB testing which would take a lot of time as well. There could be enough time we can used to develop at our own pace and test thoroughly. And the system is totally unmaintainable and inextensible. All the efforts we worked overtime are wasted. We have to rewrite the whole system again and manually tackle the trivial migration problems.

What I learned is having your own persistence, giving your professional suggestions and considering the real priority and emergency. The roles in business are equally to the express themselves.

# Conflict with co-worker #1 | Rapid prototyping and profiling

Have different opinions on the technical solutions.

I said
He said

We can’t persuade each other.

We do rapid prototyping and profiling

We agreed

Take that solution.

# Conflict with boss #1 | Occasion & Responsibility

Boss insists but ignore
When
On a meeting, point out the problem, if he don’t accept, no need to argue it on the meeting, cause it will waste the time of us.
Schedule a conversation with boss, and propose the solution again with detailed explanation in document. If he don’t accept, emphasize the risks and pitfalls that may encountered. And execute his solution.

# Tell me about yourself?

As you can see from resume,
Go down to your resume chronologically, from the oldest experience.
Limits time into 45 seconds to 1 minute at most. With a conclusion: that’s what takes me here today for this opportunity.

And that’s what brings me here today and why I’m excited to learn more about this opportunity.

Only describe your experience qualified with the job requirements. Pick the importance.

Show your value.

After a quick introduction, so you can return to communicating your value and speaking to the requirements.

[3]
I am XXX from XXXX, majored in XXX.这是第一句。(如果不是CS的话呢,这后面要加一句你现在在做的CS的相关的东西。还有提一下Myprimary programming language is XXX) I am concentrated on XXXX and I have experience in XXX./I am solid in XXX(这一句是technical的强势方向,一般如果说的是project的话强调相关性,不然就说一说你会的语言啊,XXXX experience之类比较以广度取胜的东西). I am interested in XXXX inyour companry.  基本上就是这个格式。如果是转专业的人的话要加一句为什么你想要转CS,一个比较常用的模式就是I found my interest when I am doing XXX差不多是这样吧~重点是简短!当然对于一些强势相关方向一定要提,比如说做过的app之于iOS开发,后面可以加一句提一下下载量什么的。

一般在面试刚开始几分钟作为热身问题,让面试官和面试者互相了解。这类问题一般都是标准模板,相信所有人都会准备,总之就是事先准备好比较长的介绍,可以超过3分钟,然后在面试的前几天,针对你要面试的公司和职位,专门裁剪一下答案,突出自己适合这类工作。比如面试职位要求有一定的Web Services经验,你就可以在介绍中说自己不少项目都开发或者使用过REST API。

Hi, I’m XX. As you can see from my resume, I graduated from Fudan University in Shanghai and earned a Master degree of engineering. In college, I mainly concentrated on the acceleration of computing system, by designing dedicated chips and developing the runtimes and compilers for those chips. After graduation, I have been working in Alibaba Group for 4 years. I work in the team PAI (which is short for platform of AI) in the computing platform department of Alibaba Cloud .

I started with designing the custom chip solutions to accelerate the inference of deep learning models, which is similar to what I’ve done in college.

I wrote hardware logics (mostly are compute-intensive operators) in Verilog, a hardware description language for chips. And I also wrote the runtime and the compiler for our chips, which are used to mapping the computational graph of TensorFlow to our chip’s instructions. For those operators which are not implemented in the chip, we use TensorFlow to handle them. Therefore, we integrated our chip’s runtime into TensorFlow using custom operator (which is a mechanism for user to customize their own operators in C++) and XLA (which is a compilation framework embedded in the TensorFlow, generating instructions for different hardware backend from the computational graph).
I developed chip logics for compute-intensive operators in Verilog, a hardware description language and the runtime and compiler as well in C++. We integrated our runtime into tensorflow to make it a complete solution.

The speedup is about several to hundreds of times depending on the proportion of the compute-intensive operators.

Then I participated in the project to optimize the inference service from a higher level perspective.

We researched and integrated different solutions including community, vendor and our own acceleration chip solution at the operator, computational graph and service levels.
To be more specific, the operator level focus on how to improve the utility of hardware in an operator. We can develop a customized chip with dedicated operator logics which will very fast but expensive, considering the time and cost of development. Or we can use computing libraries provided by vendors, like MKL-DNN or cuDNN. And more, since the intensive computation is usually a group of nested loop, we can “tune” the operator to find the most efficient combination of the loops, which is a main function of TVM.
As for the system level, we deployed models in our model serving platform called EAS, which have a flexible architecture supporting different frameworks. We found the system level optimization is also very important. Data transmission format, threads, core affinity and network gateway may influence the end-to-end performance significantly. And we use a bunch of methods to optimize them.

The end-to-end latency and throughput of inference services are improved by combining different approaches at different levels.

In 2019, Alibaba Cloud started to set revenue targets for every departments,

and therefore, apart form the products that we already had for the professional machine learning customers and the engineers inside the our company,

We started to develope application level products providing machine learning abilities for the customers who want out-of-the-box features.
Those products target traditional companies which have accumulated data but lack the ability to utilize them.

or the companies which already use a simple machine learning system but want to improve the business indicators further.

I participated in tree products:
A modularized recommendation engine, used to provide recommendation services for the small and medium companies.
A marketing and growth platform, used to optimize the CTR/CVR liked business indicators of marketing campaigns or the efficiency and accuracy of recovering lost customers via text messages.
And a video enhancement platform, used to improve the video quality under the same bandwidth or reduce the bandwidth while keeping the quality.
The microservices of these products are developed in Go, and deployed in k8s.
And those products have quite different requirements and are used in various scenarios but share similar engineer approaches.

That’s my experience so far, and I think I’m qualified for this position.

# What’s your most challenging project / project you are most proud of ?

有的人可能经验比较少,或者觉得目前的学习/工作上接触的项目都太简单,实在没有什么好说的。我一开始也是这么觉得的,但是后来经过一段时间研究和实践,我发现其实这类问题都可以用类似的套路来解决,总的回答框架还是STAR原则,介绍问题的时候终点突出问题的严重性(比如:我们一个页面要好几分钟才能加载完成),我们要提高到1秒以内,考虑到网络延时(Network Latency),实际上留给服务器的时间只有几百毫秒,这是一个非常有挑战性的项目。然后我首先分析问题,我们知道服务器端响应时间长,要么是获取数据时间长,要么是内存处理运算量过大,然后我从这两个角度来审视代码,发现我们频繁从数据库拿信息,同时,所以我提出了两个方案:

数据库反范式化 (Denormalization)
分析载入的数据,对于实时性要求不高的我写了缓存(因为某些限制我们不能用第三方的缓存,所以我自己写了一个)
最后我载入大量数据进行测试,发现通过这两个优化办法,我减少了大量的数据库访问,原来载入一个页面需要100次,现在只要5次。大大提高了速度。

上面这个例子很简单直接,但是我认为是一个比较好的回答,其实很多时候讲有挑战性的项目并不需要讲什么高大上的东西,甩一大堆目前流行的概念,比如说页面访问慢我就搞分布式,多加机器并行计算之类的,很多时候你可以通过一个很简单的例子来阐述,我认为重点应该是思维方式,突出你是一个愿意发现问题,愿意刨根问底,愿意积极解决问题的人。

I think the project would be the marketing & growth platform product. My colleagues and I design it from 0 to 1 together. I have to balance the technical complexity and product functionality, and make the choice. I build and optimize it to meet the business requirements and handle the corner case encountered in practical use.

For example, designing the features details of product is quite complex, and I play a important role to help product manager and modeling engineer understand the whole process.
For another example, I encountered performance problem, and have to profile to the bottleneck inside the system, and when I finally solved the problem, I’m quite proud of that.

In the whole process, I learned many valuable practical experiences for both product design and technical solutions.

# What is your strength?

Qualified for the job requirements.

# What is your weakness?

# What are your weaknesses?

# What is your greatest weakness?

# What is your worst trait?

# Describe your worst fault.

# Tell me about your biggest failing.

# What is one thing you could change about yourself?

Sudden death elimination. Get dirt.

I have very high standards and unfortunately not everybody share those standards, which can sometime lead to frustration. What I found now that a little bit of good communication I can smooth that over and it ends up really ever being a problem.

  1. I do (good)
  2. But can lead to (bad)
  3. But then I do (good)
  4. Fixes it

What seems a weakness but it’s actually a strength but under improper situation, and can be a strength during most of the proper situation.

Under some circumstances, I insists on the principles considering the technical and product level features like extensibility and flexibilities, which may potentially requires a bit more work. Sales men want the product to go live as soon as possible because they tend to over-commit to customers but ignore the design and development details of the product. In the long run, my insistence is proved worthwhile. A plenty of time and costs are saved by designing and developing a relatively general and extensible architecture, which avoids re-designing and developing for dedicated architecture.

I actually fully understand that we couldn’t consider all possible situations in the future, but at least we should design a relatively reasonable architecture balancing the sales requirements and product features. If the project is vital, I may choose to work overtime to implement my technical decisions. And by deep communication between me and my colleagues and thorough consideration on both the business and engineering, my insist can play an important role helping the product more sustainable and scalable for more similar business cases.

# How do you handle stress?

# How well do you handle stress?

# How do you handle conflict?

# Occupational stress?

# Work-related stress?

# Managing stress?

Get dirt.

  1. Never say anything bad about your self.
  2. Bad question.
  3. Long silence.

I actually handle it very well.
STOP TALKING

90% percent the recruiter just move on to the next question.

If they press you to speak more about how you handle press.

A certain amount of stress is sometimes unavoidable. But, it’s never been a problem for me in the past.
STOP TALKING

I handle stress very well, but in the event when it’s unavoidable I tend to focus on team communication in the workplace.

# Tell me about a time when you demonstrated leadership skills.

对于有经验的面试来说有的时候会考察领导力(Leadership),对于应届毕业生也有可能会问到,问题也很简单,就是让你说说你领导的经历,很多人实际上都没有领导的经验,毕竟这样的机会不多,我觉得可以有种化解方法:把上面提到的最有挑战性的项目转化成你带领几个组员一起做,然后在这个过程中你怎么体现领导力,重点放在领导上面而不是技术细节。

How I lead and make the technical decisions and how I coordinate people from different positions to work together and provide a global perspective to clarify the details and connections between each product features.

# What is your ideal working environment

# What’s your proudest professional achievement

# Why should we hire you

# Why do you want to work for us

# What did you dislike about your last/present job

# Where do you see yourself in 5 years from now?

# Tell me about your future accomplishments?

# Where do you see yourself down the line?

# Where do you see yourself in 10 years?

# Where do you see yourself in 15 years?

# What does the future hold for you?

# What are your long-term plans?

# Describe your career goals.

# What is your ambition?

# What’s do you see yourself in 5 years?

# What’s your career path?

# Is there anything change in the past few years?

如果不是General Hire, 面试前看看职位要求,然后自己介绍未来计划的时候可以多,如果是General Hire,那么面试前可以稍微了解一下公司的的常见的Career Path(如果网上找不到,可以问面试官)。遇到这类问题表达结构清晰一些,像写GRE作文,比如可以说:首先,我希望在技术上有所提高,成为某方面的的专家… 其次,我希望能体现出领导力(Leadership)…

I expect to be advancing based on my job performance, and likely taking on some new job responsibilities.
Do you mind me asking where you see this compony going in the future?
What is the long term plan of this department?

First, become an expert on the architecture, and participate more in product design, and I expect to be advancing and taking on some new job responsibilities.

Do you mind me asking where you see our department going in the future? What is the long term plan of our team?

What’s the business vision of our team? What’s the tech stack of our team?


Blind Prediction. Get dirt.

Hidden elimination criteria.

More talk = bad.

Conversations are better than interrogations.

Turn the interview into a conversation rather than an interrogation.

End with:

Does that fit in with what you’re looking for?

Good answer:

I expect to be advancing based on my job performance, and likely taking on some new job responsibilities.
Do you mind me asking where you see this compony going in the future?
What is the long term plan of this department?

# How did you manage your time and prioritize your tasks?

# Tell me about a time you failed? How did you deal with the situation

# Have your suggestion being adopted

# Describe your idea boss

# What will you do if you are 100% that your boss is wrong

# How do you finish an impossible task

# Have you ever did more than required

# How do you compare yourself to your peers

# Belbin’s team roles

# Why do you want to leave your current position? Why us?

关于为什么跳槽,有不少经验或者攻略说可以说一些诸如个人、家庭原因所以要跳槽,但是我觉得这种回答是中性的,不好也不坏,能作为答案,但是不能给自己的面试加分。还有一个比较讨巧的回答就是:我想要迎接新的挑战。我认为是可以这么回答的,但是不能就这么直接的甩一句话给面试官,需要结合自身经历,用一些故事或者例子来引出结论,然面试官明白你确实是这么想的,而不是因为看了面试攻略,攻略上说这样回答比较好。

举个例子

我在现在的职位上已经XX年了,我参与了很多的项目,在这些项目中我参与了

前端和后端的开发,或者
不同模块的开发,A模块,B模块……(针对你的经验说),或者
从需求分析,到数据模型设计,数据库开发,服务器端开发和客户端开发的全过程
通过这些项目我学习到了很多很多东西,我发觉我已经非常熟悉xxx(和你职位相关)的那些流程/理论/方法,由于

目前职位所限,或者
公司技术栈(Tech Stack)所限,或者
公司管理方式所限(比如不能自由换组,只能一直在一个/一类项目上工作)
我觉得继续做下去学到的东西越来越少/我觉得越来越舒服,我个人是喜欢不断挑战/跳出自己的舒适区,所以我就出来寻找不同的机会

我个人认为这样的回答算是中等偏上的回答,首先指明自己经验丰富能胜任工作,然后又体现了自己是勤学好问积极向上的人。至于怎么组织出精炼,就需要各位自己体会了,反复练习找到自己最说的最自然最顺口的句子是最好的,避免使用难长句,这样容易显得自己在背答案。

*有些人可能工作几个月就跳槽了,上面的回答方法不太适用,我没有这方面经验不知道这种情况怎么回答,希望大家提出建议

关于为什么选我们(Why us?),我觉得同样有一些套路,原则就是尽量体现自己对这个公司的产品/文化有极强的认同感,同时体现自己与众不同。

假大空的话大家都会说,因为你们公司是行业顶尖的公司,因为你们公司福利很好一日三餐免费,因为你们公司工资给的最高,这些虽然都是实话,但是光说这些是没法通过面试的,我认为这些理由可以提,你可以说:“Be honest, one of the reasons is that…” ,但是简单带过就好。

实际上网上很多面试指导提供的答案都是这些进阶套话,因为这样套话多多少少向面试官展示了面试者是了解他们公司的,但是我认为这样的套路已经不能满足面试官了,所以这些套话依然是可以说,但要做到尽量简洁!

剩下的时间我认为应该说与众不同的理由,让面试官觉得你是真心实意想来的,就是我自己归纳的“以小见大”法则:通过一个小故事/小功能(feature),讲大道理,而不是泛泛而谈。

例子:比如你去面试 Facebook。大家都知道脸书的文化中有move fast,你单单说:“我喜欢你们move fast的文化, 因为我就是一个这样的人。”,是不够的。你可以说:“我很欣赏脸书的文化,其中特别喜欢move fast,我记得巴黎恐怖袭击的时候,脸书很快就上线了Safety Check,想想一下如果当时我在巴黎,我朋友家人肯定担心我,如果通过这,从这一个小例子我就发现脸书确实是move fast,而且还是一个有人文关怀的公司,当时我就想这是我的理想公司。”

我个人觉得这样回答是不错的,首先体现了你一直在关注这个公司的产品,然后透过这个产品你观察到了什么,最后再升华成大道理,很像写高考作文。所以在面试之前,多了解公司的产品,有条件的话多使用几次(如果公司是做B2B的产品,用不到怎么办?那么多看看新闻,找找线索),然找到属于自己的那个“特殊理由”,让自己能与众不同,脱颖而出。

总结:为什么选我们 = 常用套话/进阶套话 + 自己的闪光点

I’ve been working in the current team for 4 years, and participated in several projects. Now, I’ve learned a lot experience from those projects and have a deep understanding from the low-level optimization to the high-level application development.
I’d like to try something new and learn how it works in a large global company. And I think I will learn a lot from that. I’m considering it to be stepping out of my comfort zone, so I came out and look for different opportunities.
A important reason is Shopee is still a company has a large growth potential.
Be honest, one of the reasons is that TikTok is an international company with rich culture diversities.
I’m expecting to work with the talented co-workers together and something extraordinary from them.

  1. I’ve been working in the current company for 4 years. And I’ve learned a lot from the projected I participated, from the high-level applications to the low-level optimizations. And I think it’s the time for new challenges, especially in a large scale customer oriented product. And I think can learn more practical experiences on international products while applying the experiences I’ve accumulated.
  2. It’s about the growth potential. The products like e-commerce and local services provided by Alibaba or Meituan are facing a slowdown in growth. While the southeast market is growing rapidly and still has a large growth potential.
  3. I want to experience the international atmosphere working with various latents from all over the world.

Why us?

# What do you know about us?

Grab

Shopee

Shopee is an eCommerce business across Southeast Asia, including Taiwan. Headquartered in Singapore, we are a mobile-first social marketplace app spearheaded by a top-notch team with strong leadership capabilities and deep expertise in the eCommerce industry. Shopee believes in the transformative power of technology and we are confident in becoming Southeast Asia’s largest C2C social marketplace platform and mobile commerce destination of choice. Be part of the best eCommerce business in Southeast Asia today by joining our team of talented and highly-motivated individuals. This will be an exceptional opportunity for anyone looking to gain an exciting mix of valuable experiences at a rapidly expanding company.

# Describe a situation… / Tell me about a time, conflict with co-worker/manager

这个问题也是非常常见的面试题了,主要目的就是考察面试者是不是一个能和别人合作的人,算是一个比较容易回答的问题。回答的要点在于不要假设,而是讲故事。如果你觉得找不到一个比较合适的故事,或者是实在没有那种真的算得上冲突的经历,可以这么思考:不要把冲突想成很大的事情,冲突可以是两个人对某个问题有不同的看法,尤其是遇到Design Decision这种没有标准答案的情况,肯定会有意见不统一的时候。

还是上面的例子,我们的产品页面响应时间很慢,我和另外一个同事/同学负责改进。我的想法是我们的数据库Table设计不合理,导致过多的请求,拖慢的速度,所以我们应该重新设计。我同事的想法是修改数据库会导致很多代码需要修改,有潜在风险,所以应该引入缓存。我们都觉得自己说的有理,无法说服对方。时间紧任务重,所以我就跟对方提出,我们都想让产品变好,光这样分析很难,不如我们合作,一起花半天时间把两种方法都写个简化版,然后测试一下,最后选更好的方案。对方同意了我的提议,最后经过综合分析,觉得我的方案好,然后同事/同学也理解了我的思路,当然我也理解了他的思路,在这个基础上,两个人合作的效率变得更高了,而且以后两个人合作也更顺手了。

当然你也可以有其他的故事,比如客户对产品不满意,非常生气怪罪到你头上,之后就不配合你工作之类的,总之对待这种问题就需要发掘自己过去经历中发生冲突的时刻,然后做适当包装。回答中要注意的是:

  • 对事不对人,任何时候不能说别人坏话;
  • 不要做假设性回答,讲故事;
  • 不能说我和别人相处的很好没有冲突;
  • 在说你怎么处理问题时候体现你专业素养,是一个好的team player,是愿意沟通的人,是努力想让项目成功的人。

有的时候会反过来考你,让你说说有冲突而且你失败的故事,那么你就可以把上面的故事反过来说,同样在说的过程中体现出你是愿意倾听别人意见,愿意承认错误并且配合的人。

The problem is they had planned a lot of features to do, but without prioritizing product features and clarifying the connections between those features. The good thing is that we all want our product to go live as early as possible and be convenient and handy for our customers. It takes some time to communicate and discuss the details together. And I explained why we shouldn’t put too many features unrelated in a single sprint. From the technical view, that means a lot of work of developing and testing. And there’s a great possibility that we couldn’t release any of these features. What we should do here is to aggregate the related features and prioritize them and then have a plan of how to develop and test these features in every sprint in the future.

# What’s your biggest failure? What’s your most regretful decision in your work?

这种负面问题是最讨厌的,很容易一不小心说多了给面试官留下坏印象,又不能太油滑回避问题。回答原则就是实话实说,说说你过去的失败经历,你犯的错误造成的后果,以及你学到了什么,比如说你可以这样:我曾经领导一个项目(可以是course project, 或者是工作上的项目),带着一堆人,起初我觉得大家都是优秀的工程师,所以开始就简单的做一个计划, 分配好任务就开始做了,做到后面慢慢发现当我们把大家的东西整合到一起的时候,我们发现了很多问题,比如有人默认其他人已经handle好了exception,他就没有再做检查等等。最后我们浪费了不少时间在debug上面。如果让我再做一次,我会花更多的时间在分析上,明确好每个人的责任,定好interface等等再分配任务,这样就能避免很多问题。

我觉得这个例子一般,暂时想不到更好的回答。我在面试中遇到过这个问题,我的回答是结合我自身经历来说的,并不通用,但是回答结构和上面的例子差不多。之后如果有看到更好的例子,会再做补充。

Lead a group of people, but I realized there should someone take the leadership, because most of them are passively decide what they will do according the priority of tasks assigned to them. I have to make a clear deadline from my point of view, rather than letting themselves make a assessment. I don’t know, maybe what I encounter in work is not a common case. After that, I will always step out and keep the track of whole project.

# Why should we hire you?

# Why do you want to work here?

# Why do you want to work at this company?

# Why do you want to work for us?

# What makes you the best candidate?

# What makes you have what it makes?

I was hoping you’d ask that.

Recruiter: Hiring people meeting the job Requirements.
Hire Manager: Maybe your future boss.

How you meet all the requirement of the job.

Well, as I understand it, you’re looking for someone who:

Go down the list of job requirements.

Personality.
Desire.

Highlight each requirement.

Tree years experience in this. Yes I actually have 5.

# What are your expected salary?

If they ask you this question during the last round of interviews maybe they are actually interested in accommodating your compensation expectations.

However when they ask you this question at an early stage like in your first job interview they’re not asking it because they want to accommodate you they’re asking it because they’re trying to eliminate you as a candidate.

Avoid giving a single number.

If you’re in the first or two interviews into the process

  1. I need more details.

Well at this point, I need to know quite a bit more of the details about the role before it can really give you an accurate answer on that.

What details do you need?

Technically I would need to know how it works with the official job hours and overtime and shift work, travel requirements, breaks benefits, flex time, remote work and general job demands. But it’s easier to say well maybe just more of a feel for the culture in general and then go straight to the second part and ask for the approved salary range.

  1. Ask for the approved salary range.

Now if they’re not satisfied with this and they press you further to give a number.

I understand this is an approved position, so the salary range must be approved. Can I ask what it is for this position.

  1. Give a wide range.
    If the recruiter insists that you should give a specific number, describe a range of number. Never speak a specific number.

# What are your salary expectations for the job

I’m more interested in finding a position that’s a good fit for my skills and interests. I’m confident that you’re offering a salary that’s competitive in the current market.

# When interviewers press further for a specific number

Well, according to my research and past experience, my understanding is that XXX K per year is typical based on the role and requirements.

# What are you making now

Since this position is not exactly the same as my current job, let’s discuss what my responsibilities at this company will be and work together to determine a fair salary for this position.

# Why did you leave your last job?

[3:1] 在开始讨论问题之前呢,有一个问题需要考虑一下,就是面试官expect一个怎么样的人。但是不要说谎,不要随便站道德制高点(我每周工作80小时没关系的!之类)。。。因为太假了……
这个问题的答案其实不难:专业领域上水平够,然后good team player,对工作对公司有热情,对文化对模式有认同感的人。
专业领域水平够体现在:CS背景够强:有一两个能被demonstrate能力的编程语言,从事相关工作和经历。
good team player体现在:有疑问多沟通,有矛盾善于解决,以team利益为先,敢于承担责任敢于优化流程。
对公司对工作,还有对文化模式的热情体现在:整个人对面试的良好准备,还有就是问面试官的问题,还有整个面试的精神面貌和态度上。

# Ask me

无论什么面试最后一般都会留时间让你问问题,虽然很多时候只是走过场,但是并不代表这个环节不会挂人(Mitbbs的帖子也提到了:behavior question要认真准备)。

最后这个环节很简单,肯定是要体现出对面试的职位的渴望,对面试公司的热爱。一些经典的提问:

What are you working on? (如果之前面试官没有介绍的话)
What does a typical day in this role look like?
What are the trainings I will receive if I am hired?
What do you enjoy most about working here?
What’s the biggest challenges I will face if I am hired?
Does the company encourage us to work on different projects/teams?
这些问题其实都非常笼统,我认为可以在此基础上优化一下,我叫它“对症下药”法。一般面试开始前面试官都会做自我介绍,可以仔细听听面试官都来自哪些组,做什么项目,最后问问题的时候可以问一些针对性的问题,比如面试官是做某个功能的,你可以说我觉得开发这个功能的challenge在这里这里,你认为是什么?比如面试官介绍说原来在A公司工作,现在来了这,你就可以问你觉得两个公司工作上、文化上有什么区别?比如面试官是一个经理,你可以问问他怎么看待员工换组的问题,怎么给员工提供继续教育的问题。其实问题还是上面列出来那些问题,只是你换了一种方式来问。万一面试官是一个很喜欢说话的人,可能这一个问题他就能说很久,如果面试官说的不多,你可以继续针对他的回答再追加问题,这样可以在一个话题上讨论很久,而且显得你尊重面试官,有认真听并且有思考。


  1. Behavior Interview ↩︎

  2. 说说FLAG的面试经验 ↩︎

  3. Crack the Behavior Questions——关于Behavior Question的碎碎念 ↩︎ ↩︎

Share 

 Previous post: Common - Jobs Next post: 游戏设计 1 - 玩法类型 

© 2022 Kleon

Theme Typography by Makito

Proudly published with Hexo