# EPAM Senior Requirements Checklist: - [ ] Identify skill gaps of mentee and cover these gaps in mentee - [ ] server side rendering vs client side rendering, and its pros and cons. - [ ] refactoring a codebase? Pros and cons of refactoring? - [ ] handling security threats in your application? ex XSS, CORS, SSL, NPM audit, injection flaws, authentication, OWASP Top 10, etc - [ ] Declarative and imperative programming knowledge, OOP vs FP - [ ] handling app’s performance improvement? like profiling and optimizing, avoiding re-renders, code splitting, bundling and minification, immutable data structures. - [ ] Measuring performance techniques on the project - [ ] Branching and releasing strategy - [ ] Definition of Ready / Definition of Done - [ ] Handling and motivating teammate who has poor performance - [ ] Design Patterns in JS or used in your projects - [ ] Design principles (SOLID, FIRST, DRY, KISS, YAGNI) - [ ] Microservices - [ ] Agile methodologies (Scrum/Kanban), estimation techniques, its pros and cons - [ ] Critical rendering path and its optimization techniques - [ ] Webpack/building tools and its optimizing techniques - [ ] CI/CD pipelines - [ ] About choosing tech stacks for your next project - [ ] Functional requirements vs non functional requirements - [ ] Time management - [ ] Delegating vs assigning tasks - [ ] Resolving conflicts with team members, managers, clients - [ ] Selling/convincing your solution/tech stacks to clients - [ ] L2 vs L3 – differences - [ ] About technical interviews - [ ] Mentoring juniors - [ ] TypeScript, its pros and cons - [ ] State management in your app - [ ] Metrics for code review - [ ] Technical debt and it’s measuring - [ ] Setting up quality gates/control in your project - [ ] Accessibility - [ ] Most challenging task for you in your career or projects? - [ ] All React advanced topics - [ ] Team handling - [ ] Project onboarding documents, quality, code, style guides in your project, etc