/software-engineering-interview-prep

A repository for software engineering preparation. Contains interview questions, solutions, hints and code.

MIT LicenseMIT

software-engineering-interview-prep

A repository for software engineering preparation. Contains interview questions, solutions, hints and code.

Coding questions:

1. Question Definition
    -- Description
    -- Input Format
    -- Expected Output Format
2. Test cases
    -- Edge cases
    -- Large input cases
3. Hints that an interviewer can share at different points of the interview
4. Solution
    -- Prerequisites, if any
    -- Describe the solution in less than 500 words
    -- Alternative approaches, if any
    -- Time complexity of each approach
    -- Caveats, if any
    -- Resource links
    -- Similar problems, if any
5. Working code

###System Design questions:

1. Question Definition
    -- Description
    -- Requirements Definition
    -- Core requirements list
2. Design Evolution
    -- Atleast 3 diagrams which show the evolution of the design from a basic/core system to the end system 
    -- Each diagram has a description of which requirements are currently fulfilled by the architecture
    -- Every component in the design is described in the components section.
3. Tradeoffs
    -- Different approaches/solutions used in the design with their pros and cons
    -- Tradeoffs must be described in terms of system parameters like cost, ease-of-adoption, extensibility, etc...
    -- If a tradeoff is not an obvious choice, there must be capacity estimations to justify one approach over another
4. Database Design (Optional)
5. API Design (Optional)
6. Hints and pointers for the interviewer to guide the discussion

###Front end questions

###Behavioural interview questions: