Skip to main content

Khung năng lực NodeJs Dev: NodeJS + FE

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 backend cho sản phẩm, đồng thời có khả năng làm việc với React để đả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

  • Tham gia vào quá trình viết sản phẩm, tính năng cho sản phẩm trong team ở cả backend và frontend. Tuy nhiên, thiên nhiều về backend hơn, nhưng không hẳn là không có gì ở frontend. Vẫn cần làm các input, giao diện với Polaris, React.
  • Tham gia vào quá trình sửa lỗi, support các issues liên quan tới sản phẩm.
  • Đảm bảo code viết ra tuân thủ các chuẩn của coding standard của team. Hạn chế tối đa việc sửa lại các lỗi đã nhắc nhở.
  • Làm việc với tech leader, BA, PM để đảm bảo tính năng được phát triển đúng yêu cầu.
  • Đảm bảo hướng xử lí được tối ưu về mặt hiệu suất, và chi phí. Phối kết hợp với vị trí techlead để được hỗ trợ.

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.

Phát Triển Backend

  • Phát triển phần backend của app sử dụng KoaJS làm framework chính. Bên cạnh đó sử dụng đúng mục đích các thành phần của GCP như Pubsub, Crontab, Functions để thiết kế hệ thống cho đủ tối ưu.
  • Sử dụng Firestore làm app database chính cho ứng dụng. Tìm hiểu và hiểu rõ kiến trúc NoSQL của Firebase để thiết kế app chuẩn theo Best practice của Firestore. Luôn để ý vấn đề về tối ưu hóa, pitfalls của Firestore để phát triển tính năng không để xảy ra những lỗ hổng về chi phí của doanh nghiệp.
  • Nắm rõ các API của Shopify cả Rest, và GraphQL, ưu tiên sử dụng GraphQL API. Nắm vững được các các update mới của Shopify API như Bulk Operation API, Protected Customer Data, Remove theme access.
  • Đảm bảo code backend có tính DRY, reuseable và single responsibility ở phía backend. Code phải hoạt độc lập được dưới dạng unit, API có thể hoạt động, test độc lập mà không cần gắn vào frontend.
  • Hiểu cơ bản về các khái niệm bảo mật dữ liệu của team.

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.

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.