For example, here is what a Front End Engineer might have knowledge in:
- HTML (semantic markup)
- CSS (layout, animations, responsive, mobile-first, media queries, SASS, etc.)
- JavaScript (the language itself)
- HTTP, AJAX, Promise API, RESTful APIs, async VS parallel
- DOM APIs, DOM Performance
- UX/UI methodologies
- Accessibility, ARIA
- Module bundlers, transpilers, build tools (webpack.js, rollup.js, etc.)
- Various frameworks and libraries and knowing why and when to use them (e.g. Lodash, React, Ember, jQuery, etc.)
- Programming design patterns, methodologies, and best practices
- Object oriented programming
- Functional programming (.map(), .reduce() and knowing about immutability)
- Test driven development and various testing frameworks/libraries
- Command Line (Bash, and/or other Unix/Linux shells)
- Version control (GIT)
- Data Structures and Algorithms (arrays, trees, DFS, BFS, and more)
- High or deep level knowledge of how Browsers work (the event loop, reflow/relayout, etc.)
- A server side language (NodeJS, Ruby, Python, PHP)
- Databases (MySQL, NoSQL)
- A server side web framework (ExpressJS, Ruby on Rails, Django, Laravel, etc.)
- Security (authentication, authorization, XSS, SQL injections, cookies, and more)
- Ability to deploy a product in a production environment (e.g. AWS)
- Development workflows (GIT, code reviews, continuous integration, and more)