第一轮: interviewer: 前端美国小哥

  • last project(very detailed)

  • how do you decide to use redux

  • coding: write a function to change [a, [b, [c, d], y, k], ] into [a, b, c, d, y, k, i]

  • coding follow up 1: use another way instead of recursion

  • coding follow up 2: if this array is infinite nested, such as [1, [2, [3, [4, [5, […]]]]]]]]].

  • coding follow up 3: still an infinite nested array, how do you track the depth of nested array

  • how do you use closure in production

第二轮: interviewer: 两后端大哥,美国人+国人大哥

  • a challenge part of previous project, not just last project

  • if front-end part doesn’t match back end API, how to solve

  • backend feed data issues

  • how do you implement user login authentication

  • write the work flow how JSON web token works

  • how do you implement protected routing

    1. if logged in, there is default 3 tabs inside protected page, and there are two kind of user, one is manager, another is employees, how do you implement that to make those 3 tabs visible to manager, but only 2 tabs visible to employees when they are logged in.

    2. coding 1: implement a function to get the data from backend, and date should be from last 6 months to current time.

    3. coding 2: write the code to implement a searching bar(each character we typed will make http request without delay) , also write the part for state change logic

    4. which component life cycle deal with http request

    5. difference between setState() and this.forceUpdate()

    6. CSS: how to use Flex box to do responsive design

    7. how do you do automation test in last project

第三轮: interviewer(manager美国大叔):

  • introduce last project daily work flow

  • coding: there is a clock with hour hand and minute hand, it is dynamic,write a function to show the angle between minute hand and hour hand in sync.

  • how do you do code review