Skip to content

Latest commit

 

History

History
151 lines (137 loc) · 5.46 KB

A7.md

File metadata and controls

151 lines (137 loc) · 5.46 KB

This section specifies the list of technical skills expected from an A5 grade. To cover this knowledge please refer to this avaialble resources

Frontend

  • 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

Backend

  • 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

Cloud

  • AWS Certified Cloud Practitioner Certification

Practice

  • 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

Self development

  • 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)

Leadership skills

  • 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

Mentorship skills

  • 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

Communication skills

  • 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

Team skills

  • 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

Delivery skills

  • 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

Business knowledge

  • Understands how value is delivered on a project
  • Has thorough Agile knowledge