# 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