· Excellent hands-on knowledge of HTML5, CSS3, JavaScript, CSS Modules / CSS in JS
· Hands-on experience working with Object Oriented JavaScript (OOJS), JavaScript - and practical uses in building complex interactive experiences, primarily with ECMAScript 2015+. You should be up-to-date with new specifications (different stages), and also, using transpilers like Babel to use features from all stages
· Good understanding of creational and structural design patterns in JavaScript
· Knowledge of Functional Programming (FP)
· Experience working with Single Page Applications (SPA) with universal rendering capabilities.
· Solid understanding of React.js, its core principles - lifecycle methods, virtual DOM etc. and at least 6 – 12 months hands-on experience with the same
· Understanding of one-way data flow and the Flux architecture.
· Understanding of stateful (container) vs stateless (presentational) components and how to break down the application page into components,
· React Hooks, Suspense, Memo etc.
· Core understanding of how React’s state management works out of the box. Understanding of different libraries available to better manage application state like Redux/MobX. Difference in the way each library works (pure functions vs observables etc.) and the workflows as well as best practices
· Different middleware implementations available for async actions in Redux like redux-thunk, redux-saga, redux-observable etc. Hands-on experience with at least one.
· Understanding of different CSS architectures that go hand-in-hand with React.js application development. Pros and cons of component-level CSS vs global and where to apply each
· Experience using Webpack bundler. Experience with configuring Webpack from scratch is a plus.
· Hands-on experience with test-driven development using Jest or equivalent. Familiar with snapshot testing, code coverage. Experience working with utilities like Enzyme
· Experience using fluid grids, and building responsive/adaptive websites using Bootstrap etc.
· Experience working with any one server-side JavaScript frameworks like Express, Koa, Hapi etc. (based on Node.js) for server-side rendering. Knowledge of building APIs is a plus.
· Hands-on experience with GraphQL is a big plus.
· Understanding of hybrid vs native mobile apps. Experience with implementation of mobile/hybrid frameworks/libraries like React Native, Ionic, Flutter is a plus.
· Understanding of SEO and accessibility and making it part of the development workflow.