During a technical interview, you may be asked a variety of questions and asked to perform exercises that test your technical skills and knowledge. These may include:

  1. Coding challenges: You may be asked to write code to solve a specific problem or implement a certain feature. This can be done on a whiteboard, on paper, or using a collaborative online coding platform.

    Example questions may include:

  2. System design questions: You may be asked to design a system or component of a system, such as a database or network. These questions may involve discussing trade-offs and limitations of different design choices.

    Example questions may include:

  3. Technical questions: You may be asked questions about specific technologies, tools, or concepts that are relevant to the role you are applying for. This may include questions about data structures, algorithms, networking, or software design principles.

    Example questions may include:

  4. Problem-solving exercises: You may be asked to solve a technical problem or debug code. This can involve working through the problem step by step and explaining your thought process.

    Example questions may include:

  5. Object-oriented design: This is often confused with system design, which is more geared towards candidates with 3-5 years of experience or are applying for a mid to senior level role. However, if you’re applying for an internship or new grad position, you’re more likely to encounter object-oriented design questions.

    Unlike Leetcode-style questions, object-oriented design questions may focus on applying coding to real-life situations. Here are some examples.

    1. Write a class that implements a bookstore. A user should be able to add and remove books.
    2. Design an API that tracks financial data, such as the stock price of various companies. The trader should be able to add or remove a stock as well as send information over for trading.

    Unfortunately, compared to Leetcode-style or system design questions, there aren’t too many resources out there for object-oriented design. The experience comes largely from working on projects, or if you’ve taken an object-oriented programming class, review projects from there.