Yêu cầu: Số năm kinh nghiệm từ 4 năm trở lên, trong đó ưu tiên có tối thiểu 1-2 năm ở vị trí leader
Kiến thức bắt buộc:
Có kiến thức lập trình cơ bản (OOP, Creational, Structural, Behavioral)
Nắm được các giải thuật và cấu trúc dữ liệu cơ bản
Nắm được syntax, cách hoạt động của 1 ngôn ngữ bất kỳ
Trên 3 năm làm dự án, có khả năng tự tìm kiếm tài liệu tham khảo/ nâng cao.
Có kiến thức về quy trình phát triển dự án
Nắm bắt, thực hành nhuần nhuyễn trên 1 codebase / framework
Git nâng cao và có thể đưa ra các flow sử dụng git phù hợp từng giai đoạn dự án cũng như hỗ trợ các member khác khi có sự cố về GIT
Kiến thức chuyên môn: Là lợi thế khi hiểu sâu kiến thức về Software Architecture, Design Pattern, SOLID , Clean Code.
Phân tích yêu cầu:
Hiểu rõ về yêu cầu của công việc của bản thân phụ trách, có thể tự mình phân tích và đưa ra Q&A trước khi phát triển chức năng.
Thiết kế hệ thống:
Tự tạo được detail design, API document, thiết kế DB ... cho chức năng mình phụ trách
Thiết kế được các chức năng lớn, quan trọng của dự án. Tham gia review thiết kế chức năng của members khác làm, đưa ra các đánh giá mang tính định hướng kỹ thuật, giúp đỡ members khác hoàn thành thiết kế chức năng / module họ phụ trách
Khả năng Code:
Có thể code các module từ cơ bản đến phức tạp
Có thể phân tích bug và đề xuất giải pháp cho các module phần mềm từ cơ bản đến phức tạp
Có thể xây dựng codebase, xây dựng convention về luồng làm việc và giao tiếp trong hệ thống
Có kinh nghiệm làm việc với các bên thứ 3 là một lợi thế như Payment Gateway, Apple store, Google play, hệ thống KYC, Banking
Java:
Nắm vững các khái niệm về Java Core
Sử dụng thành thạo Collection trong Java
Nắm vững được lý thuyết và cách xử lý của Exception
Có thể áp dụng các design pattern thông dụng
Spring:
Hiểu được các design pattern Spring Framework đang dùng
Hiểu được khái niệm về IoC, DI
Hiểu về Spring Data JPA
Testing/ Debug:
Self-test tốt, hạn chế số lượng bug QC phát hiện ra.
Xử lý nhanh các bugs phát sinh
Kỹ năng cá nhân:
Giao tiếp: Tích cực trong mọi tình huống, Trình bày rõ ràng, khả năng tạo file phục vụ trình bày cơ bản
Teamwork:
Tham gia như 1 thành viên nhóm, chịu trách nhiệm về công việc của bản thân
Hợp tác làm việc: Sẵn sàng hợp tác & không ngại học hỏi từ người khác. Sẵn sàng giúp đỡ người khác khi được yêu cầu
Quan hệ với thành viên nhóm: Chủ động phối hợp với các thành viên khác. Dành thời gian giúp người khác suy nghĩ về các vấn đề. Quan hệ tích cực với các thành viên nhóm
Có tính xây dựng nhóm: Chủ động chia sẻ thông tin & học hỏi cùng đồng nghiệp. Xử lý xung đột/ vấn đề trong nhóm 1 cách tích cực.
Quản lý công việc và Giải quyết vấn đề tốt, chủ động.