This section specifies the list of technical skills expected from an A5 grade. To cover this knowledge please refer to this avaialble resources
- Extensive knowledge of HTML5 attributes/tags to structure a page appropriately (including semantic html)
- Accessibility (i.e. aria attributes, html forms like 'for' attribute etc)
- Have a good understanding of vanilla Javascript:
- functional programming
- ES6 (spreading, destructuring, fat arrow, let, const, var, async/await/promises)
- appreciation of the js design patterns:
- MVC (Model View Controller)
- MVVM (Model View View Model)
- pub-sub
- singleton
- closures
- factory
- decorator
- 2 way data binding and 1 way data binding
- dom / virtual dom / shadow dom
- microfrontends
- ** Knowledge of Storybook **
- Adding to a Storybook
- Maintaining a Storybook
- Contributing to an .mdx within a Storybook
- Configuring a Storybook
- Have a good understanding of testing:
- TDD
- Jest
- Code coverage and unit tests coverages (i.e. Instanbul)
- UI component testing (i.e. react-testing-library)
- End-to-End testing (i.e. Cypress)
- accessibility tools (i.e. lighthouse, axe, sortsite)
- Have an extensive understanding of React + hooks + react-testing-library, and basic understanding or awareness of additional frameworks like Angular or VueJS.
- Knowledge of Typescript
- Types
- Interfaces
- Enums
- Unions
- Intersections
- Generics
- Knowledge of document structure (mainly json)
- Progressive Enhancment
- SSR
- working with css-in-js (i.e. styled-components)
- understanding and managing bundler and transpiler to generate/manage a js project without a pre-existing scaffolder (i.e. CRA)
- webpack
- babel
- typescript configuration
- git hooks (i.e. husky)
- enforcing code quality and best practices(i.e. linting and formatting like eslint, prettier)
- css preprocessor (i.e. sass/scss, less)
- rollup
- vitejs
-
Knowledge of NodeJS
- Have a good understanding of and working with NodeJS
- Building a app with a node framework (Express, Hapi, etc)
- Building a REST API with node framework (Express, Hapi, etc)
- Persist data with DB (e.g. MongoDB, Firestore)
- Error handling
- HTTP
- File System
- URL Module
- Events
- Appreciation of the NodeJS design patterns
- pub-sub
- singleton
- closures
- factory
- decorator
-
JSON structure validation (i.e. Joi, Zod)
-
JSON creation (i.e. Using JSON schema)
-
Knowledge of authentication vs authorisation
- JWT Tokens
- Auth0
-
Knowledge of micro-services vs monolitic infrastructure
-
Knowledge of NoSQL:
- MongoDB
- Redis
-
Knowledge of RestAPI (GET/POST/PUT/DELETE/UPDATE)
-
Know how to use Postman to test API calls
-
Knowledge of GraphQL
-
Writing tests and code coverage
- TDD
- Jest
- Code coverage and unit tests coverages (i.e. Instanbul)
-
appreciation of data-structure and alghoritms
-
familiarity of CI/CD processes and patterns
- Knowledge of Docker
- Knowledge of Kubernetes
- AWS Certified Cloud Practitioner Certification
- Attends monthly Experience Engineering meetups
- Contributes to monthly team meetups (as a speaker, host or organiser)
- Supports junior colleagues with their careers, as a reviewer
- Shares specialist knowledge with product team and wider Experience Engineering team
- Engages with reviewer at least once a month and sets up a career development plan
- Identifies relevant skills that can be improved with additional training
- Seeks out opportunities to enhance talents and skills
- Develops in-depth knowledge about chosen specialism(s)
- Able to identify and communicate problems with the product team and process, e.g. raise a concern about inefficient standups at the retro
- Leads by example
- Initiates change
- Grows teams
- Understands what drives people
- Develops processes
- Steps in for scrum master or team lead to run ceremonies
- Has demonstrated ability as scrum team lead
- Mentors and coaches junior colleagues
- Effective pair programming with other developers, both more junior and more senior
- Supports onboarding of new team members to Experience Engineering team and project team
- Engages in productive code reviews
- Has good written and spoken communication
- Proactive communicator
- Able to ask for help when needed
- Communicates with peers effectively and in a timely manner
- Can explain work to peers and non-technical stakeholders
- Able to present ideas and concepts to technical and non-technical audience
- Develops and improves communication channels
- Displays empathy towards colleagues, e.g. checks in with a colleague who may be struggling, or, give unprompted positive feedback to a colleague
- Avoids blame and fosters an environment of teamwork and cooperation instead
- Has awareness of team morale and can take steps to improve morale
- Has positive impact on team productivity
- Understands when to get support
- Takes initiative to find and fix defects
- Able to delegate
- Estimates size and scope of deliverables effectively
- Leads code reviews
- Able to write technical documentation
- Understands how value is delivered on a project
- Has thorough Agile knowledge