abramenal / software-engineer-checklist

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

software-engineer-checklist

Hard skills

Software design knowledge

  • Programming paradigms. Object-oriented. Functional. Reactive. Which from (OOP, FP) to pick for solving predefined type of business need
  • SOLID
  • GRASP
  • DRY, KISS, YAGNI, etc.
  • Design patterns: classification, definitions and examples
  • Imagine situation you need to perform as an architect on a brand new project. What are your steps to create a good architecture
  • Monolithic architecture
  • SOA
  • Microservice architecture
  • Serverless
  • MVC vs CBA (component-based architecture), pros & cons

Software development process

  • VCS. Git. SVN
  • Writing documentation: why, when, how to ensure quality, balance between implementing features and making docs
  • Code review process. Code smells. Inappropriate intimacy, cyclomatic complexity, etc. Code refactoring: why, when, how. Technical debt
  • What is good code. How to ensure code quality
  • Continuous integration. Continuous delivery and continuous deployment. Tools

Software testing knowledge

  • Testing pyramid: Unit tests, Integration tests, End-to-end tests.
  • TDD, BDD. General-purpose language. DSL. Ubuquitous language
  • A/B testing

Common web development knowledge

  • REST vs SOAP
  • Cross-domain communications. CORS, iframe, origin, headers. JSONP
  • Web security: XSS, XSRF. CSP
  • Authentication strategies: basic, session-based, token-based, mixed, etc. Token structure
  • Web sockets
  • Server-side rendering. Pros&cons, e.g. influence on SEO results
  • DB: SQL vs NoSQL. Comparison, pros&cons, when to choose the particular one
  • Web storage: cookies, sessionStorage, localStorage
  • HTTP vs HTTPS. HTTP/2

Front-end web development knowledge

  • How browser works. Render-blocking operations. Critical rendering path
  • Page loading speed optimizations. First meaningful paint. Time to interaction. Latency decresion
  • JS optimization. JS Profiling. JS memory leaks, detection and elimination
  • Mobile-first vs desktop-first. Offline-first
  • Web components. Shadow DOM
  • AngularJS vs Angular vs React comparison
  • HTML5. Semantic code
  • CSS preprocessors, comparison
  • JS Core. ES2015. JS Module types
  • Build tools (gulp, grunt). Module bundlers (webpack)
  • JS source code linting tools
  • Imagine you need to setup project from scratch. How will you choose the tools and frameworks to build the product

Soft skills

Software development process

  • Agile, XP, Lean, Waterfall
  • Agile manifest, values and principles
  • Scrum. The Scrum guide. Scrum events, roles, artifacts
  • Scrum vs Kanban. When to pick the particular one
  • Estimation techniques
  • Imagine situation you’re in the middle of Scrum sprint and customers comes with super-highly-valuable feature to implement immediately. Your steps?
  • SDLC

Common soft skills knowledge

  • What is Senior SE in your understanding
  • How to delegate task. IDEALS principle
  • How to motivate inert person
  • Mentoring, coaching
  • How to control team work
  • How to deal with conflict situations (5 types)
  • Time management techniques
  • Task prioritization techniques
  • SMART goal setting
  • Problem solving skills: 7 steps to eliminate any problem
  • Interviewing candidates. How do you rate candidates. What skills do you rate as the most important for the compabny. Giving valuable and actionable feedback. Sandwich rule

About