# Finhay Tech competency ## Tech skill - Software design & architecture - Software Architecture: Các dịch vụ và hệ thống của kiến trúc sư sử dụng các mẫu thiết kế được chấp nhận rộng rãi để cho phép phát triển lặp lại, tự chủ và mở rộng quy mô trong tương lai. Dự đoán các trường hợp sử dụng trong tương lai và đưa ra quyết định thiết kế nhằm giảm thiểu chi phí cho những thay đổi trong tương lai. Trực quan hóa luồng dữ liệu phức tạp của User, thường yêu cầu tương tác với các dịch vụ hoặc hệ thống khác. - Code understanding: Có kiến thức chuyên môn về lĩnh vực của nhóm, bao gồm phạm vi dịch vụ, cách tương tác và luồng dữ liệu giữa các hệ thống. Hiểu các domains lân cận và cách chúng ảnh hưởng đến hệ thống của bản thân. - Programming - Writing code: Viết code đảm bảo production-ready và dễ dàng kiểm tra, dễ hiểu và dễ giải quyết các trường hợp lỗi. Hiểu khi nào cần comment nhưng cố gắng hãy viết code để self-documentation. - Testing: Viết các test case ở các cấp độ khác nhau theo hình kim tự tháp kiểm thử. Luôn viết test để xử lý các trường hợp bất thường và lỗi một cách êm thấm, cũng như xử lý các trường hợp bình thường. - **Kim tự tháp kiểm thử**: tập trung vào cover unit test là chính, sau đó đến Integration Test và cuối cùng là E2E test -> tóm lại tập trung viết unit test để cover ![Screen Shot 2023-11-05 at 11.34.03.png](https://hackmd.io/_uploads/BJtHsc4Xa.png) - Debugging - Debugging: Có thể xác định các vấn đề hệ thống dựa trên các thông tin mơ hồ hoặc thiếu sót. Có thể phát hiện các vấn đề hệ thống mới mà không cần đến phàn nàn của khách hàng. ## Delivery - Requirement clarification - Requirement clarification: Hiểu nhu cầu của khách hàng và đề xuất các giải pháp mới rẻ hơn và dễ triển khai hơn. - Estimation & planning - Estimation & planning: Có thể phân tích các user story phức tạp thành các user story nhỏ hơn, ước tính chính xác và lập kế hoạch chi tiết các task. Giới hạn thời gian nghiên cứu cho các vấn đề chưa được giải quyết hoặc công nghệ mới. - Reliability, delivery accountability - Reliability, delivery accountability: Dự đoán và thông báo các rào cản, trễ hẹn, vượt chi phí trong dự án của team trước khi cần phải leo thang. Đảm bảo kỳ vọng với team và các bên liên quan bên ngoài được làm rõ giữa tất cả các bên. ## Leadership - Dealing with ambiguity - Dealing with ambiguity: Xử lý hiệu quả rủi ro, thay đổi và sự mơ hồ trong team và liên team. Quyết định và hành động một cách có trách nhiệm trong công việc mà không cần có toàn bộ bức tranh, cả trong kinh doanh thường ngày lẫn trong các tình huống áp lực cao. - Mentoring - Mentoring: Hướng dẫn mentoring liên team một cách cởi mở, tôn trọng, linh hoạt và đồng cảm. Thúc đẩy văn hóa mentoring trên toàn công ty. ## Feedback, Communication, Collaboration - Feedback - Feedback: Đưa ra phản hồi xây dựng cho team, đồng nghiệp và quản lý một cách hữu ích. **Đưa ra phản hồi cho các bên liên quan kinh doanh của team khi có cơ hội** - Communication - Communication: Giao tiếp hiệu quả với các đội nhóm đa dạng. Thúc đẩy văn hóa giao tiếp rõ ràng, ngắn gọn, hiệu quả, hướng đến người nghe trong team. - Collaboration - Collaboration: Luôn giúp đỡ các thành viên trong team vượt qua trở ngại, giải quyết vấn đề và hoàn thành công việc. Đưa ra hoặc chia sẻ công lao đúng chỗ. - Relationship building: Chủ động xây dựng mối quan hệ chặt chẽ với các bên liên quan của team. Sử dụng các mối quan hệ để lập kế hoạch và định vị tốt hơn cho team. - Handle disagreement: Khuyến khích các thành viên cởi mở chia sẻ ý kiến và đóng góp vào thảo luận một cách tôn trọng. **Tiếp cận bất đồng một cách tò mò chứ không phản ứng tiêu cực**. Sử dụng các ý kiến trái chiều để xây dựng cuộc đối thoại sản xuất và mang tính xây dựng.