Skip to content

Latest commit

 

History

History
executable file
·
580 lines (327 loc) · 40.3 KB

File metadata and controls

executable file
·
580 lines (327 loc) · 40.3 KB

主观面试Behavioral-based interviewing Competency-Based Interviewing

https://github.com/ChenYilong/iOSInterviewQuestions

视频介绍

https://youtu.be/xJm0lBLh6dQ

正文

How do you handle the pressure?

How is your work affected effectively under pressure?

Keywords:  passion and enthusiasm, beginner, unfamiliar

First, I think the best way to deal with the pressure is to use your passion and enthusiasm.

Generally speaking, pressure means that tasks are very challenging and frustrating. However, if you can face the problems directly and use your passion to manage them, you will enhance your profession and gain knowledge.

I want to give you an example.

It was a long time ago; I joined a new company. As a beginner, I faced some challenging situations because I was unfamiliar with the system and the tools. So I worked under pressure.

And I’d like to talk about how I dealt with this situation. Firstly I tried to get familiar with the system and the technical knowledge used in the company to have a quick start. If I have any questions I can’t manage to answer, I want to ask my manager or my co-worker for help, so they can give me some advice so I can finish my tasks effectively.

As a result, I finished my first tasks on time, and also at the same time, I learned a lot of technical knowledge and prepared for the later tasks.

How do you handle a challenge?

When it comes to the challenge during the work, sometimes challenges come from your colleagues.

try to face the problem. But my colleagues disagreed with this plan. So I think this situation could be called a challenging situation. I want to talk about how I handle it. First, I had a very detailed conversation with my colleagues and tried to give a quick demo to customers to have quick feedback from the customers so that we could figure out if the plan worked well. If the feedback is negative, we will try another one, but if the feedback from the customer is very positive, we will have a deal. So I think feedback and communication are the critical points to dealing with the challenge.

//TODO: STAR

//one more thing

Have you ever made a mistake?

How did you handle the mistake?

Keywords: learn from a mistake,

We all make mistakes and learn from them.

Let me give you an example, and it was a long time ago; I was dealing with a project, and we had a deadline, but I was a perfectionist and wanted to finish work perfectly. So I did many additional works to help our customers. as a result, I didn’t finish the work on time. I think it was quite a mistake. after the mistake, I reviewed the error and concluded that I should ask your manager for some advice and confirm the more critical task. so that I can finish work on time. I learned a lot about priority through mistakes. ( //TODO: 朋友点评: 例子需要重写, 不能写超deadline的工作失误, 很严重)

I learned that priority is a big issue from that mistake.

Give me an example of a goal you reached, and tell me how did you go about reaching it?

To Use DMAIC.7

If I want to increase the business profit, I’d like to review how it went last quarter.

Secondly, I’d like to separate the task into tiny tasks so that I can get quick feedback, and it is also straightforward to judge whether we achieved it or not.

Thirdly, I’d like to make the goal achievable so that the goal can inspire us.

Describe a decision you made that wasn’t popular? How did you implement it?

Last year, we were going to change some old frameworks to a new one.

We wanted to finish it in one year.

We desired that we could change the framework 100 percent.

But I advise that we set a little goal every quarter, like we get 30 percent in one quarter. So that at the end of the year, we could achieve 100 percent eventually.

We have given the service to one to a part of the customer every quarter. In this way, we achieved that goal and provided good customer service. As a result, we managed it and got a lot of great feedback from the customer.

What are the things that make you gain pride in your work?

//TODO: STAR

When I solve challenging problems not solved in my industry, I think it makes me proud. And sometimes, if I learn a new technical knowledge released a short time ago, this also makes me proud because of my curiosity and the depiction of the keen technical understanding.

What are your most important career accomplishments?

//TODO:STAR

What have you already achieved in your job?

For instance, you promote to a manager or a team leader. So how does your career build accomplishments? So if I ask you your significant accomplishments, what did you already achieve up to date? So what would you say?

I think I want to talk about my soft skills. I think my most career significant accomplishment is how to solve problems individually and also work as a team member.

Most of the time, software engineers have to deal with a challenging problem individually. So I had to have strong skills.

So I learned how to collect knowledge and share ideas with the team members.

Why do you want to join this company? Why do you apply for this specific job?

I want to join our company, which is doing some instant message service, just like the Facebook and WeChat.

I'm a crazy user of your products. And I'm very into the service this company provides.

Social networking is the future. Everyone in the world needs to have a connection with others. If I join this company, I can provide the knowledge I have acquired to help the company build more stable, challenging features and reliable customer service.

I'm professional about this kind of technology because I have worked at a company with the same service and features.

I paid a lot of attention to this industry. So I'm also very into this industry.

So I think I will also enhance my skills if I join this company.

What are your Biggest Strength/Advantage?

My biggest strength is my passion/enthusiasm for new knowledge so I can enhance myself quickly and complete the frustrating and challenging tasks by myself.

My biggest strength is my passion/curiosity for learning new knowledge so that I can grow as a worker and complete more challenging tasks without supervision.

I am passionate about getting more knowledge.

I am very customer service-centric.

I am eager to learn, willing to learn.

I can structure knowledge very well.

//TODO: STAR

What are your Biggest Weakness/Disadvantage?

My biggest weakness is my desire to complete things perfectly. I am a perfectionist. In other words, sometimes I want to complete tasks perfectly; as a result, I waste a lot of time improving things and miss the deadline. I have a plan to fix this weakness. First, I would like to have more communication with my manager to confirm if the task's status is good enough or not so that I can complete the job before the deadline.

//TODO: 重新准备 STAR

What do you think will make you feel stressed? What sort of thing stresses you out at work?

When I am dealing with tasks, I haven't dealt with before. So I must pay attention to the new skills and learn the latest technical knowledge. I have to step out of my comfort zone, which makes me feel stressed, but because of my passion and enthusiasm for new technical knowledge, I think it would not be a big problem.

I think it's an excellent way to help me enhance my skills and make me more professional, so I'd like to cope with this stressful emotion.

When my work is not perfect, it does make me feel stressed because I'm a perfectionist, so I will always try to compete for things in an ideal status,

but if there is a conflict between the deadline and the perfect level, this situation will make me feel stressed. So I think I will ask my manager or co-workers for help to help me to prioritize.

The priority is that it's also good knowledge for me to learn more.

Part, what part of your job do you think will make you feel stressed that's you can link that to your weaknesses. But, again, those questions are very similar.

How would you handle conflict with a co-worker/ product owner / user experience?

4 5 6 7

First, I would like to have a principle that says User Experience Always Has to Come First.

Based on this principle, I want to try to cope with the conflict. If my coworker or customer makes a challenging demand, I would like to do my best to help them, but if it is beyond my responsibility. I would like to ask my manager for help. If the manager confirms, I can spend additional time helping coworkers or customers. I think I will be happy to help them during my work time.

Simple Steps to Deal with Conflict:

  1. Let Them Have Their Say:

    • Don't interrupt.
    • Allow them time to express themselves.
  2. Don't Get Angry:

    • Stay calm and composed.
    • Allow them time to let off steam.
  3. Apologize:

    • Say "I’m sorry that has happened."
    • You may need to apologize several times.
  4. Look for a Solution:

    • When they are ready, discuss possible resolutions.
    • Make agreements on the next steps.
  5. Involve the Manager:

    • Where necessary, involve the Management Supervisor.

An Easy Way to Remember How to Handle Conflict:

  • H - Hold Back: Practice restraint in your response.
  • E - Empathise: Show understanding and compassion.
  • L - Listen: Actively listen to the other person's concerns.
  • P - Provide a Solution: Work towards finding a resolution.

//TODO: STAR

团队内部出现相悖的观点,可能要体现你的open观点,和其他developer,测试,PO 协商,seek better solution.同时也要相信体现自己的technical confidence,可以make a suitable decision.

冲突这个问题,你拿到了后。先要general的说一下,我做it这么多年了,这种问题其实常有发生,或者不可避免。当遇到冲突的时候,首先我会想想是不是我的解决方案有漏洞,是否还可以继续优化。如果是的,那我肯定会先改进,然后和对方去discuss the final solution。 如果我觉得我的方案没有错,那我回去听一下对方的建议,可能是我们都有疏忽。然后一起敲定解决方案。如果真的是由于一些原因导致无法采用最优解,那我们也会创建ticket去记录这个东西持续改进。我相信大家都是professional的,没有问题解决不了.

你就说我们都是experienced的,和professional的it人士,我相信,任何时候,我们都会be open-minded,去discuss to seek a higher quality solution, then we execute it. 如果反对,那一定是一个open discussion,我只是表述自己的意见,帮助大家更好的去理解那个问题。 of couse,如果我们敲定了最终方案,当然就要严格执行下去.

这个题,其实更像是你在敏捷里的角色,planning和refinement都是讨价还价,各抒己见的菜市场,但是一定敲定了,那么sprint的execute就是要尽可能的achieve goal

How do you handle conflict between team members? What do you do?

As we worked together daily, a conflict was quite brutal to avoid. We have to face it directly. I want to share my experience. During my last job, we worked very hard and had a very tight deadline. We had to deal with multiple projects. Sometimes, we had to ask our colleagues for help because we all had very tight deadlines. In this situation, we had some conflicts because of disturbance.

I want to talk about how I try to solve this problem.

First, the principle is that conversation and discussion is the most important thing to solve the problem.

We had a conversation objectively and tried to take priority. This way, we could tell which is the most important thing. And had a deal with what we should do next.

Finally, we got a good result because we took priority.

Furthermore, I'd like to share my viewpoint with my colleagues to tell them that we want to provide good customer service. So the conflict is not because of any individual in the team.

I want to ask my manager for help if I can't solve this conflict. I think maybe my manager can have a clear view of the conflict.

The spectators see the chess game better than the players.

Using the ‘questioning approach’ when seeing others working wrong to get buy-in encourages engagement and builds relationships.

The best way to acknowledge a workmate’s actions is to say, “Well done, keep it up, thank you” when you see someone working right.

Positive conversations promote a kind culture at work. It allows us to acknowledge the right behaviors, not just the wrong ones.

What's the biggest challenge you've already faced as an engineer?

Can you give me at least a scenario where you have to be challenged and tell me about the details?

Will you be dealing with many challenges here in New Zealand?

I want to share my experience. It was in one of my companies.

I posted a proposal and thought a lot of detail, but my proposal disagreed. It was quite a challenging situation. I want to share how did I solve this problem. I think discussion and conversation is the best way to deal with the disagreement and challenging situation, so I talked with my colleagues and spent a lot of time giving our reports and describing why I posted this proposal. In the end, they accepted my problem proposal. At the end of the year, I top ten percent in KPI, or I was able to achieve correctly. I learned a lot from the challenge.

//TODO: 答案和题目对不上, 不是特别好那种. 应该可以有写代码遇到难题时候, 更好的例子.

How to play a role even if you don't like it?

Have you worked on multiple projects? How did you prioritize?

Yes, I have worked on multiple projects. They were given and discussed with me by my manager. I prioritized them by their deadline and according to their urgency or importance.

How do you handle meeting tight deadlines?

I would propose a meeting reschedule and provide a valid reason if that isn't possible. Then, I would join the meeting, continue participating and ask for a report after the meeting. I always ensure that I schedule my meetings on days or times when I won't be inconvenienced.

//TODO:STAR

How do you handle it when your schedule is interrupted?

I always make sure that my schedule is open to my colleagues and emergencies that may come up. I make sure that all my tasks are completed on time. If the interruption persists longer than I accounted for, I'd have to give a valid reason to my colleagues. If the emergency can wait, my work will take priority, but if it cannot wait, I'd have to reschedule my work. Not every intervention is an emergency, so I would then have to evaluate it and decide. //TODO:STAR

What do you do if you disagree with a co-worker?

//TODO:STAR I would suggest that we be open-minded about the reason for the disagreement and then talk about it in a civilized manner, hoping to find a positive solution. Communication is the best way to solve a disagreement.

What do you do if you disagree with your boss?

Is it appropriate to go directly to him? How should you approach your boss?

When I disagree with my boss, I will always look at our organization's policies, and looking for open communication between my boss and me, and say my viewpoint.

First, conversation and discussion is the best way to deal with disagreement. For example, if I had a chance to disagree with my boss, I'd like to have a private conversation with him and give him my suggestion.

I want to share my principle with him. For example, User Experience Always Has to Come First. We should discuss things objectively so that we can achieve the same goal.

Let me give you an example. Last year, my boss gave a proposal, and most of the proposal was correct. But I disagreed with a part of the proposal. So I just spoke directly and tried to give my suggestion and reason. Then we had a very detailed conversation, and I gave the boss my suggestion. As a result, we had a good result and profit because we had a very thoughtful discussion.

We thought about every detail. So we got an excellent profit at the end of the year.

Give me an example of when you did or didn't listen.

There is a principle that says time is money; in most cases, I don't listen to it. Because it can put pressure on you. For example, in my previous work, I worked with a client that had a big problem, and it took me a long time to solve his problem, but my main aim was customer satisfaction, so l ignored the principle.

Give me an example of when you did and didn't listen.

Can you tell me when you listened, and did you not listen to advice?

As we know, everyone can make mistakes. The most important thing is to handle principles instead of listening to someone.

For example, The majority of the time, my boss is right. But sometimes, he makes mistakes. In this case, I think I didn't listen because he was wrong, and I had to correct him directly. So it's pretty essential to give some suggestions.

I want to share my experience. It was a long time ago. We had a massive change with our system. my manager tried to give break change to the customers. Every customer could no longer use the older system and had to use the new one. In this case, I didn't listen.

I hold the principle that User Experience Always Has to Come First. I suggested that we had to collect feedback from customers.

Suppose they wanted to change to the new system. We would do that.

In the end, the majority of the customers disagreed with to change. However, my manager accepted the suggestion.

Then we had a very soft change, gave a choice to the customers. If they want to use the new one, it's okay. But if they stick to the old one, it's all right. So that's my example.

Can you tell me about your past boss?

How was your relationship with your past boss?

How do you want to be managed?

How your boss or colleagues evaluate you?

What is the last boss, your supervisor? Do you report to someone reporting? What's your boss's name? are they supervisors or bosses? Is he or is she the president of the company?

What's your relationship with your boss or your superior

Can you describe me as my team leader or my manager?

Can you tell me more about the relationship between you and your team manager because that will be a significant purpose? We want to see what's your attitude towards your boss. Indeed, you will be reporting to someone here in New Zealand.

He was my team leader, and we worked together and had the same aim we needed to accomplish per project.

I was an independent employee, and my boss could rely on you. I'm independent and flexible.

I can do my job independently and flexibly.

The team leader dispatched the job to me, and he needed a result at the end and gave me a lot of choices and space. So I did things in my decision.

I would post the feedback to my boss when I was doing work. Then, at the deadline, I will give a result to him. That was the relationship between us.

Less supervision means better, and I was relying on less super-efficient.

The less supervision we have, the more reliable we are.

I have flexibility, independence, less supervision, and reliability.

Can you describe your team?

//TODO: 待完善

What problems can you foresee in the future that may happen as a software engineer?

Can you cite me a situation, for example, in our company as a software engineer, any problems that you can foresee in the future that may happen?

How are you going to deal with that?

Generally speaking, it is similar to my previous work in China. Both have the same responsibilities, and we do the same work, but there is only a little difference.

We faced the customers only from the nation. Maybe in New Zealand, our customer is from all over the world. We must deal with foreign customers and learn much about the world's cultures.

New Zealand's work-life balance value immensely impressed me. But, unfortunately, in China, we work overtime too heavily. So sometimes, we lose the balance between life and work.

In New Zealand, I must learn how to balance those things.

In the future, I'd like to share my hobbies with my colleagues and try to socialize with colleagues so we can get familiar with each other.

Tell me more about yourself when it comes to doing this job. For example,

Do you prefer doing something on your own as an individual?

Would you describe yourself as a team leader or a team player?

I can do both. I can work individually, but I am also a team player.

First of all, I'd like to do things individually. I believe in my ability. I can solve the conflict individually. So I'd like to do this, but I can't deal with some very challenging situations. So I have to ask my team leader or manager for advice.

//TODO:同事互相帮助而不是只有你有问题了去找上级帮忙

  • always help.
  • individual—> team work / team player

What is your feeling about social gatherings or socializing with colleagues?

Do you approve of socializing with colleagues or working?

What is your opinion about socializing with team members off to work?

How do you see socializing with colleagues during work? Do you think it should happen? Or do you think?

So socialization lies in with team members of the work. What should I do? And can you? You can say yes,

yes, I can.

But not as a habit. Socializing should follow some limits.

General speaking, companies or organizations don't mind socializing off to work, as long as I keep it professional and not always, not constantly, if I've got a reason why it's okay.

on the one hand,

socializing with team members to work is a good thing because I start knowing each other on a social socializing together.

I learn my interact with team members. However, it must be professional, not always. There must always be a purpose. Because socializing with team members work can lead to conflict.

on the other hand,

however, if team members go to restaurants or for a drink after work every day, it can lead to conflict.

Are you reliable enough to contain this job as a software engineer here in New Zealand? And are you confident?

In terms of software development, I'm confident. I am very professional and have a lot of experience and qualifications. So there is no problem with software development, but in terms of the language, it's the first time I have had to deal with the work in English.

It's challenging for me, but I have a passion for learning English, and also I'm very open-minded to learning everything about this country, culture, and language, so I think it won't be a problem.

Are you adaptable to changes? Are you flexible?

Yes, I am flexible as my situation changes all the time. I am very flexible, can handle any changes that might happen, and am adaptable to changes. When anything happened in my work environment, for instance, a pandemic, I worked online or from home, completed work independently, and performed well.

Everything these days are more flexible. I worked from home stressful can handle it.

One of my companies has values saying that have a hug with the change, which means the world is constantly changing every time, and we have to accept it. So to be a flexible man is very important and necessary because you have to deal with the new technologies and some new systems, new team members, plans, and different clients.

What can you give us?

if we're going to hire you, what can you give us?

What can you share with us?

//TODO:STAR

I'm a professional developer, and I have a lot of experience in the software engineering industry, so I think I can use my experience to solve challenging problems in the company. In addition, I'm a person who would love to provide outstanding, excellent service to the customer, and I think I can enhance customer performance and satisfaction. Those are my abilities.

Relationship

1. How's your relationship with your colleagues?

I had a good relationship with my former colleagues, we always had lunch together, and talked about some common topics about hobbies and life after work. Sometimes I invited my colleagues to my home and played PS4 and Nintendo Switch together.

2. How do you coordinate with the project manager?

Although a member of the architecture team our demand came from other developers instead of the project manager, I still keep a good relationship with them. In a refactoring task, we ordered all features in our project with project managers together. We had a daily 10 min standing-up meeting to check the progress and quality of every feature with project managers. Besides, we used JIRA, to assign every subtask to the sprint board to manage.

3. If you have a conflict with your colleagues/boss/co-workers, how do you deal with it?

Generally speaking, conflict with colleagues is hard to avoid, because people always stand on their own to think about work. I believe exchanging views can enhance mutual understanding and recognition, and more communication instead of silence can solve a conflict. For example, once my boss gave me a task and ask me to finish it in one month. But I thought the time limit for the task is too short, and the time to accomplish it is impossible. My boss thought I have a negative attitude toward the project. So I decided to talk to him about it. I showed all timetables of every developer and the blueprint of this task. I expressed we can't finish it in one month though we work overtime every day. You need to give us one more month. He also explained the project is an emergency. Eventually, we mutually compromised, he gave me one more month to do that, and I worked overtime for this task.

4. How do you collaborate with teammates tough to deal with?

https://hbr.org/2017/04/how-to-work-with-someone-who-isnt-a-team-player

Principles to Remember: Do: Inquire about your colleague’s interests, priorities, and motivations to better understand their perspective and the causes of their behavior. Use this opportunity to revisit the team’s purpose and goals. Look for opportunities to better utilize the uncooperative team member’s specific skill set. Don’t: Develop an explanation for the colleague’s behavior without talking to them first. Ostracize the team member in question. Promote more interactions to create better group cohesion. Assume everyone knows what they’re supposed to be working on. Clarify team members’ roles so that people know what is expected of them.

5. As a senior Developer, How would you track the progress of a junior developer who is new to your project, especially in a learning situation?

behavioral-question

Certainly! Tracking the progress of a junior developer, especially when they're new to a project and in a learning situation, requires a thoughtful and well-structured approach.

The best way to help others act right is to Always role model the right actions on site. Junior developers find it easier to act right when the boss, senior ones, and role models demonstrate the right actions for others to follow.

What can you do to further engage positively with your mates on site? Talk to them about the right behavior you have seen others do.

The main benefit of speaking up when you don’t feel on track is that it can save you or others from getting out of track.

Here's how I might go about it as a senior developer:

  1. Set Clear Expectations, Role models and Goals: It's essential to begin by setting clear expectations and specific, measurable, achievable, relevant, and time-bound (SMART) goals for the junior developer. Understanding what's expected of them can ease their transition into the project.

  2. Provide Adequate Resources: Ensure that they have all the resources, tools, and documentation they need to understand the project and their role within it.

  3. Regular Check-ins: Schedule regular one-on-one meetings to discuss progress, challenges, and offer support. This fosters open communication and enables timely assistance.

  4. Encourage Self-Assessment: Motivate the junior developer to keep track of their progress and have them self-assess. This encourages personal growth and accountability.

  5. Pair Programming and Code Reviews: Engaging in pair programming sessions or conducting regular code reviews can help in understanding their thought process, coding style, and areas that might need improvement.

  6. Monitor Progress Through Tools: Using project management and tracking tools can help in keeping an eye on tasks completed, the time taken, and the quality of work.

  7. Offer Constructive Feedback: Provide constructive, actionable feedback that can help them grow. Be honest but empathetic in your approach.

  8. Create a Supportive Environment: Cultivate a supportive and encouraging environment where they can feel free to ask questions and seek guidance.

  9. Consider Educational Opportunities: If necessary, recommend or provide access to tutorials, courses, or workshops that might help them in acquiring the skills needed for the project.

  10. Evaluate Progress at Milestones: At various project milestones, formally evaluate their progress. This is an opportunity to reassess goals and make any necessary adjustments.

  11. Encourage Collaboration: Promote collaboration with other team members, as learning from peers can be incredibly valuable.

  12. Flexibility: Understand that everyone learns at a different pace, and be prepared to adapt your tracking and support methodologies as needed.

  13. Documentation: Keep a record of progress, meetings, and feedback. This can help in tracking growth over time and in future performance evaluations.

pair_programming_process_softwarequal-pair_programming_styles-f

By incorporating these strategies, you can create a nurturing learning environment that not only tracks the junior developer's progress but also fosters growth and development. It's a balance between guiding, monitoring, and allowing independence that will enable the junior developer to thrive in the project.

Career experience & expectation

1. What are your most important career accomplishments?

In Weibo, I was involved in the peak-cutter plan. Our third-party Cloud for live streaming calculates prices by peak data. It would cost us billions of Chinese yuan (equivalent to hundreds of million of Euros) in just one year. Obviously, we can't afford that. My team members and discussed if we could reduce the data during rush hour, we would save a large amount of money. Of course, the process was not easy. We investigated kinds of other apps' solutions for video baseline profiles and did group-controlled trials. Eventually, we made a balance solution, keeping good picture quality and lower data. As a bonus from our company, every team member got 1k euros.

2. What's your favorite work environment/ideal company culture?

  1. I wish I could work in a company with a relaxed vibe. Every staff could freely share their ideas and manage up, which would keep everyone’s growing space.
  2. The flat hierarchy is better since communication efficiency would be higher.
  3. I hope all products and plans are driven by data. This is an age of big data, data can help us solve problems more accurately.
  4. I like to work in an enthusiastic team. The colleges don’t only work together, but also play together out of work.

3. What's your career plan for the future?

I'd like to play the role of mentor in an open team. From my perspective, I like to share my experience and technical skills with other people. I organized sharing workshops in my previous company, that helped many colleagues improve themselves. Though I believe I have good management skills and leadership, frankly, I don't want to play a manager role. Because I think keeping enough time to write code makes me happier. I can find joy in creation and innovation. Through this, I can have enough content to share with people.

4. How do you handle a challenge? / Please describe the biggest challenge in your career.

To see the question about stress.

5. What does make you feel achievement at work?

In my previous jobs, we have a task that is to revisit our users. I felt achieved when I heard my users' positive feedback or thanks since I help them solve problems. I could feel my work's value, which makes people have a better life.

6. Where do you see yourself in 3-5 years?

  1. I hope I could follow the updating of technology. You know, it's a field that develops very fast. I would feel satisfied if I could learn about the more new architecture and deeper cool technologies. I also hope to share things I learn with other developers. It's a good thing I can grow up with others together.
  2. I hope to help more users with the apps I developed. This is the original intention of why I become a developer.

Workplace ability

1. What's your biggest strength/advantage?

I'd always like to try different new technologies. When SwiftUI was just published, I create some interesting projects with it. Besides, I like to share my fresh ideas with other people. My previous company makes a live streaming video app, I thought maybe we can add real-time voice recognition when the influencer is speaking some keywords, the app can recognize it and display a relative advertisement. I shared the idea with other colleagues and attempted it. Although it's a failure, it's still interesting to explore.

2. What's your biggest weakness/disadvantage?

I have to admit I'm a lazy guy. The simple repetitive work always makes me bored. Yes, laziness is my weakness. But I believe laziness usually lets people come up with better ways to optimize life and work. My laziness pushes me to create excellent and elegant architecture to enhance code reuse and reduce code lines. I like to use innovations including new technologies, and new devices to make my work brief and efficient instead of repeating and repeating the same thing.

3. How do you describe what the API is to a six-year-old child?

I believe most children have used smartphones to play games nowadays. I can tell the kid the API is like iPhone's lightning port that is standard and universal, it can be connected by all lightning cables.

4. How did you handle the mistake?

I think I should report it to your team in time and figure it out in the shortest time if I find my mistake in the project. I have had this experience in my career. Once I made a mistake in our project in that I wrote the wrong Boolean logic values, so the business logic completes the opposite. Meanwhile, our QAs and I didn't find these mistakes before the release. The first day after release, I reviewed my code for preparing a new feature and found this mistake. Then I reported it immediately and made the emergency solution. On that day, we fixed it together and republished our app. Fortunately, my fault didn't cause a big loss. So the best way to handle the mistake is emergency response instead of concealing it or passing the buck. After remedying it, also need to make a summary of it.

5. What do you think will make you feel stressed? What sort of thing stresses you out at work?

Answer 1: If I don't have enough time and sufficient resources to finish my task, I will feel stressed. For example, I had a refactoring task at my previous company. I designed a new architecture for the iOS client and other businesses need to be integrated into the new one. Our new features also must release, so we demand lots of time and resources. However, from our company aspect, if the duration of refactoring is too long, it will affect the process of new features. So, I was only allowed to finish this work within one month. It's a really hard time for me, I must consider how to organize people to involve in this task in a short time. I tried to get more time and manpower from my boss, we borrowed staff from the other company and worked overtime every day. Finally, we did it together. When we released our App, I felt more relaxed than ever. Answer 2: If I became an outcast among my teammates, I would feel stressed. To see the question work with a teammate who is tough to deal with.

6. Do you prefer to work independently or on a team?

I think working on a team is better for me. I feel that working with a technical vibe increases efficiency. I can find people to discuss together in the group if I have some questions or encounter issues. The fresh ideas from team members can always inspire me when I get into difficult problems or decisions. Though sometimes I also need an independent and silent space to think about something or make designs, I can't work leaving with my team members.

7. Tell us about a time when you had to solve a problem on your own.

My team members and I usually solved many problems together, and we talked about them and shared different ideas, but once I had a problem that only can be solved by myself. It's in Weibo, I was developing a new feature and needed to invoke some very old foundation APIs of our App. However, I found some functions didn't work as the document said. I asked my colleagues, they said the API's author has left our company. But he left the wrong documents and no comment in the code. Meanwhile, I couldn't find one who was familiar with these codes, since it's too old, written many years ago. So I just fix it by myself. I commented on and debug the foundation API's source code, and tried to find what is wrong. Fortunately, I found the mistake: the code reversed the if condition compared with the document and comment. Eventually, I verified the description of the document, and the comment are written in the opposite. It spent a lot of time and let me work overtime for two days. So, good documents and good comments are vital for a project.

8. How do you describe technical issues to people who don't know about technology?

To see the question about describing API to a six-year-old child.

9. What does make you depressed at work?

To see the question about stress.

10. If you would have started working in our company, after several months, you felt the company is not as same as your exception, what would you do?

Talk about my feeling with colleagues.

Questions for the interviewer

1. How many staffs in the team to which I apply?

2. Could you introduce the hierarchy of the development department?

3. Do you have some events and activities for developers, such as sharing workshops, and hackathons?

4. Do you provide sponsorship for a working visa?

5. Is it a job on-site, remote, or hybrid?

Amazon Leadership Principles

  1. Customer obsession
  2. Ownership
  3. Invent and Simplify
  4. Are Right, A Lot
  5. Learn and Be Curious
  6. Hire and Develop the Best
  7. Insist on the Highest Standards
  8. Think Big
  9. Bias for Action
  10. Frugality
  11. Earn Trust
  12. Dive Deep
  13. Have Backbone; Disagree and Commit
  14. Deliver Results