Số năm kinh nghiệm: từ 3 năm trở lên
Kiến thức bắt buộc:
● Nắm được syntax, cách hoạt động của 1 ngôn ngữ bất kỳ
● Nắm được các giải thuật và cấu trúc dữ liệu cơ bản
● Nắm bắt, thực hành nhuần nhuyễn trên 1 codebase / framework
● Có kiến thức về quy trình phát triển dự án
● Trên 1 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.
● 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
● Có kiến thức lập trình cơ bản (OOP, Creational, Structural, Behavioral)
Kiến thức chuyên môn:
● 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ể 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ể code các module từ cơ bản đến phức tạp
○ 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
○ 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
● Kiến thức/ kinh nghiệm về Java:
○ Sử dụng thành thạo Collection trong Java
○ Nắm vững các khái niệm về Java Core: String, StringBuilder, String Buffer, Box- Unbox
○ 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
● Về Spring:
○ Hiểu được khái niệm về IoC, DI
○ Hiểu về Spring Data JPA
○ Hiểu được các design pattern Spring Framework đang dùng
● Về 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
○ 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
○ Trình bày rõ ràng, khả năng tạo file phục vụ trình bày cơ bản
○ Tích cực trong mọi tình huống
● 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