Skip to main content

Khung năng lực của FE Dev (Chuyên sâu)

Assign to: Thomas Nguyen Status: In progress

Miêu tả vị trí

Chịu trách nhiệm chủ yếu về phát triển frontend cho sản phẩm, hoặc tập trung những sản phẩm có thiên hướng frontend, đồng thời có khả năng làm việc với NodeJS backend để đảm bảo tính hoàn chỉnh của tính năng từ frontend đến backend. Ở Avada không có khái niệm developer chỉ biết backend hoặc frontend. Chuyên sâu ở Avada được coi là biết nhiều, rộng, và có độ sâu ở mội mảng nhất định, chứ không phải không biết gì về các mảng khác và chỉ biết một mảng được gọi là chuyên sâu. Do đó, vị trí developer ở Avada đòi hỏi developer có kiến thức về backend, GCP và cả frontend để có thể phát triển sản phẩm ở chất lượng tốt nhất có thể.

Các đầu công việc chính

Khác với các bạn làm backend + ReactJS cơ bản. Các bạn dev frontend sẽ tập trung và các task có thiên hướng nhiều về giao diện, trải nghiệm người dùng, tối ưu hóa React performance, tối ưu hóa chunking liên quan tới React, thiết kế CSS, component React theo chuẩn design system.

Yêu cầu công việc và trách nghiệm chi tiết

Nắm được techstack của team

Cơ bản nhất bạn phải nắm được cơ bản techstack của team sử dụng. Việc này được đảm bảo trong khoảng 1 tháng đầu tiên bạn tham gia công việc. Tài liệu liên quan có thể tìm kiếm ở đây.

Kiến thức đòi hỏi

Phát Triển Frontend

  • Phải nắm cơ bản về React và các component của Shopify Polaris như trong quá trình training.
  • Hiểu về Shopify Design Guideline cơ bản để không thiết kế ra các giao diện không theo chuẩn của Shopify UI.
  • Viết các component React theo chuẩn coding standing của team. Viết component, hooks có tính tái sử dụng ở mức cao và có thể module hóa được.
  • Hiểu được về tối ưu hiệu năng của React về state lifecycle ở mức chuyên sâu.
  • CSS thành thạo ở mức cao, có khả năng vận dụng và hiểu sâu các framework phổ biến như Tailwind, AntDesign, Polaris. Thiết kế CSS theo chuẩn BEM. Các component, spacing, màu role đều phải được chuẩn hóa theo chuẩn CSS variable để tăng tính đồng bộ trong sản phẩm.
  • Hiểu về tối ưu một trang web, các chỉ số WebVitals, các cách tối ưu để phát triển các đoạn code có tính tối ưu về performance ngoài frontend cao và không ảnh hưởng tới tốc độ load của website: https://web.dev/articles/vitals
  • Hiểu rõ về web perfomance của Shopify: https://performance.shopify.com/ và ứng dụng và trong việc phát triển ứng dụng.
  • Hiểu rõ về Shopify themes, Shopify liquid và Shopify OS 2.0 app embed và app blocks sử dụng như thế nào. Hiểu về Shopify Meta field.
  • Tương tác được cơ bản với Shopify API như Rest API, GraphQL API và Storefront API của Shopify.

Phát Triển Backend

  • Hiểu được cơ bản cách tạo một endpoint CRUD với KoaJS, Firebase Functions, và Firestore.
  • Hiểu cách kiến trúc GCP của backend hoạt động cơ bản như thế nào.

Quản Lý Dự Án và Mã Nguồn

  • Hiểu về Agile Scrum để tham gia vào luồng vận hành của team.
  • Hiểu và nắm rõ các quy trình sử dụng git theo tiêu chuẩn của team về: commit, tạo nhánh, merge code, tạo merge request: https://avada-development.web.app/trunkbase-develoment-flow
  • Khi tạo merge request, phải xem lại các thay đổi của code trên merge request, clean code lại trước khi submit cho reviewer.

Hỗ Trợ Khách Hàng và Sửa Lỗi

  • Hỗ trợ đội hỗ trợ khách hàng trong việc giải quyết vấn đề kỹ thuật từ phía backend, frontend. Đòi hỏi các kĩ năng về debugging, giải quyết vấn đề, xem ở đây: https://avada-development.web.app/error_handling/
  • Tham gia vào quá trình sửa lỗi và bảo trì các tính năng sản phẩm. Nếu nhận ra phạm vi rộng hơn của lỗi, hoặc nhận ra từ insight của khách hàng các cải tiến của sản phẩm sẽ cần đưa lên các vị trí BA, PM để đưa vào backlog để đưa vào quá trình phát triển.

Đào Tạo và Chia Sẻ Kiến Thức

  • Đào tạo và chia sẻ kiến thức với các thành viên mới và đồng đội.
  • Tham gia vào các buổi workshop và đào tạo nâng cao kỹ năng của đội.