Technical requirements
required technical skills for L3 level
Language (Javascript, Typescript, Flow, ...)
JS Core at Advanced level (Intermediate for Front-End discipline)
Knowing the pros and cons of using TypeScript/Flow on the project
Advanced level of HTML, CSS
Has at least one skill at Advanced or Expert level in UPSA profile related to a candidate's primary technology stack
At least Intermediate level:
Basic operations: sort, map, filter, reduce
Algorithms complexity basics (O(1), O(N), ...)
Data structures: array, stack, queue, linked-list, tree, hash table (map), set
Programming Paradigms (OOP, FP, FRP)
Has Intermediate knowledge of OOP
Understands main concepts of FP/FRP
Able to compare OOP/FP/FRP, mention pros/cons
OOP
Encapsulation
Abstraction
Inheritance
Polymorphism
Dependency injection
SOLID
FP
Pure functions
Immutability
Functions as first-class entities
Functions composition
High order functions
Recursion
Currying/Memoization
Intermediate knowledge of:
HTTP vs HTTPS vs HTTP/2
WS vs Poling
RESTful API
Nice to have:
RPC (JSON RPC)
GraphQL
Security (XSS, CSP, SQL injections, OWASP Top 10, CORS, CSRF, Auth)
At least basic knowledge of different security issues and possible protections
XSS
CORS
SQL injections
Auth (JWT, OAuth, Basic, etc.) [at least on current/previous project]
Nice to have:
CSP
CSRF
Intermediate knowledge and experience of performance optimizations.
JavaScript Profiling and Debugging
Network Optimizations
JavaScript Performance Optimization Techniques
Memory Leaks (detection tools and prevention)
JavaScript Obfuscation and Minification
Framework optimization techniques (Angular, React, or others)
Critical Rendering Path
Repaint Reflow Understanding
RAIL
SVG vs canvas (with prior experience)
Intermediate understanding of:
Browser API (Console, Fetch, Storage, History)
BOM, DOM, CSSOM
Tools (NPM, Webpack, Chrome DevTools, ...)
Intermediate knowledge of build tools (webpack / rollup / gulp) and ability to setup it on new project
Advanced knowledge of package managers (npm / yarn)
Advanced knowledge of browser tools for project needs (Chrome DevTools).
Advanced knowledge of:
CSS fundamentals (colors, fonts, box-model, ...)
CSS positioning and layout (Flex/Grid/Table/...)
Intermediate level of knowledge at analyzing and solving browser compatibility challenges
Advanced knowledge of at least one CSS pre-/post-processor (LESS, SASS/SCSS, Stylus, PostCSS)
Advanced knowledge of at least one methodology: BEM, OOCSS, SMACSS, ITCSS, Atomic CSS
Able to compare methodologies mentioned above
Understanding of CSS-in-JS, CSS Modules
Advanced knowledge of at least one CSS framework (Bootstrap, Foundation, Semantic UI, Bulma, etc.)
Able to compare some of them (pros/cons)
Intermediate understanding of:
Responsive web application development using CSS media queries
Responsive vs Adaptive design, Mobile First approach
Progressive Enhancement & Graceful Degradation approaches
User Interface/User Experience
Able to implement animations via CSS and JS
Intermediate understanding pros/cons of animation via CSS or JS
Intermediate understanding of:
a11y specifications
Semantic markup
services to check color-contrast
WAI-ARIA Authoring Practices
Section 508
Accessibility in JavaScript
Intermediate understanding of:
Progressive Web Application
Accelerated Mobile Pages
Web manifest
Intermediate understanding what are SPA and MPA applications, their pros/cons
At least basic understanding of SSR
Frameworks and Tools
Advanced level of at least one:
for JS: (React, Angular, Vue, React Native, ...)
for FE: (CSS Frameworks)
At least basic understanding of:
pros and cons of one more CMS / JS framework / CSS framework from the primary stack
different approaches how to organize modularity, state management and code reuse on the project
T-Shape Skills
Will be a plus (for JS and FE disciplines):
Back-End development (NodeJS, C#, Java, ...)
Clouds (AWS, GCP, Azure, ...)
Automated testing (E2E)
DevOps
Mobile
Databases and Message queues
Last updated
Was this helpful?