├── .vscode └── settings.json └── README.md /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "spellright.language": [ 3 | "en" 4 | ], 5 | "spellright.documentTypes": [ 6 | "markdown", 7 | "latex", 8 | "plaintext" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Senior React interview questions 2 | 3 | ## What we will cover 4 | 5 | * Interview questions that I would ask a mid to senior level React developer 6 | 7 | ## Notes 8 | 9 | Before we start it is important to note that interview questions for juniors and seniors have a different goal. 10 | 11 | In the junior case we are interested in figuring out if there is a potential in the candidate to become productive and in the senior case we are looking for experience. 12 | 13 | The following questions are aimed to figure out how much experience a candidate has and if they know what it means to work on big projects. 14 | 15 | ## Questions 16 | 17 | * What tools suite do you use for your project and why? 18 | * Bad: "Parcel, NextJS and JS++" 19 | * Good: "Webpack, React router and TypeScript" 20 | 21 | * What testing strategy do you use? 22 | * Bad: "I mostly do manual testing/TDD" 23 | * Good: "I use TDD for logic and automated UI tests for the rest" 24 | 25 | * How do you handle component reuse? 26 | * Bad: "I always try to write generic components" 27 | * Good: "I refactor when I see duplication but some components are generic" 28 | 29 | * When do you use server side rendering and why? 30 | * Bad: "I always use it because it speeds up the loading time" 31 | * Good: "I haven't used it because I don't work in Node" 32 | 33 | * What tasks do you run and how? 34 | * Bad: "I mostly use Webpack loaders" 35 | * Good: "I try to use a task runner and Webpack for bundling" 36 | 37 | * When do you use component based testing and why? 38 | * Bad: "I use Enzyme and I try to test all my components" 39 | * Good: "I use Enzyme but only for generic components since I use UI testing mostly" 40 | 41 | * Do you use TDD and how? 42 | * Bad: "I use TDD as much as I can" 43 | * Good: "I find it hard to use TDD for components so I use it for logic" 44 | 45 | * What state do you put where and why? 46 | * Bad: "I always put my state on the store" 47 | * Good: "I only put shared data on the store and private data on the state" 48 | 49 | * Whats more important, clean code or good enough? 50 | * Bad: "Clean code" 51 | * Good: "I try to write clean code but sometimes I need to hack things together" 52 | 53 | ### The following questions will indicate how big the projects the candidate has been involved in are 54 | 55 | * How do you handle bundling performance? 56 | * Bad: "What do you mean?" 57 | * Good: "There are loaders for it but mostly I try to reduce the bundling process" 58 | 59 | * How do you handle multiple component variants in the same codebase? 60 | * Bad: "I try to refactor them in to generic components" 61 | * Good: "I raise awareness in the company and take action after that" 62 | 63 | * How do you handle feature toggling? 64 | * Bad: "What do you mean?" 65 | * Good: "I use a config file or similar" 66 | 67 | * How do you avoid component duplication? 68 | * Bad: "I write generic components and put them in Storybook" 69 | * Good: "It is hard to solve this so I talk to the teams and use good names" 70 | 71 | * How do you handle A/B testing? 72 | * Bad: "What do you mean?" 73 | * Good: "I create a temporary component in isolation" 74 | 75 | * How do you handle branding/themes? 76 | * Bad: "I use Material ui themes" 77 | * Good: "I try to avoid them / I use a variant prop in the components" 78 | 79 | * How do you handle translations? 80 | * Bad: "I have never worked with them / we use translation files" 81 | * Good: "We get them from a external tool" 82 | --------------------------------------------------------------------------------