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:
- Closures
- Functional programming
- ES6 (spreading, destructuring, fat arrow, let, const, var, async/await/promises)
- appreciation of FE design patterns:
- MVC (Model View Controller)
- MVVM (Model View View Model)
- 2 way data binding and 1 way data binding
- dom / virtual dom / shadow dom
- 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
- Knowledge of document structure (mainly json)
- 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)
- 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
- JSON structure validation (i.e. Joi, Zod)
- basic knowledge of authentication vs authorisation
- basic knowledge of micro-services vs monolitic infrastructure
- basic knowledge of NoSQL:
- MongoDB
- Redis
- Knowledge of RestAPI (GET/POST/PUT/DELETE/UPDATE)
- Know how to use Postman to test API calls
- basic knowledge of GraphQL
- Writing tests and code coverage
- TDD
- Jest
- Code coverage and unit tests coverages (i.e. Instanbul)
- 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
- 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
- Identifies and 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
- 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 contribute to technical documentation
- Understands how value is delivered on a project
- Has thorough Agile knowledge