Chuyên viên cao cấp phát triển phần mềm - Dự án Travel App - Ngân hàng số
Mô tả công việc
• Chịu tránh nhiệm vụ thực hiện các công việc theo phạm vi được phân tích trong dự án: Phát triển/triển khai các ứng dụng/dịch vụ (Onboarding, Payment & Transfer, Lending…); Quản trị, vận hành các hệ thống/nền tảng (Core Bank/Core Tag, Open Banking…); Phân tích, giải pháp/ứng dụng thiết kế cho các sản phẩm dịch vụ số; Hỗ trợ dịch vụ tích hợp…
• Phối hợp làm việc với các đơn vị trong và ngoài NHS để xử lý các vấn đề kỹ thuật trong phạm vi mảng công việc/hệ thống/nền tảng mà mình phụ trách.
• Tham gia trực tiếp cùng các bên liên quan (Dev Team) để phát triển các dự án, công việc được giao.
• Đào tạo, chuyển giao kiến thức, kỹ năng cho các bộ khác trong phạm vi chuyên môn, mảng công việc liên quan.
Thực hiện các nhiệm vụ khác do trưởng nhóm phát triển ứng dụng phân tích.
Yêu cầu ứng viên
Bằng cấp: Tốt nghiệp đại học Trở lên chuyên ngành CNTT hoặc có các chứng chỉ trong lĩnh vực CNTT (VD: MCP, MCSD, AWS CCP, AWS SSA, ECBA, CCBA…).
Kiến thức:
Biết về xu hướng, công nghệ mới ứng dụng cho chuyển đối số/phát triển số SPDV.
Tôi hiểu và có kinh nghiệm làm việc trong các lĩnh vực như:
Lập trình/Phát triển ứng dụng: Microservice, Container (Docker/K8s), API (Restful, SOAP…), Database (Oracle, SQL Server, PostgreSQL…).
Quản trị, vận hành, hệ thống bảo mật (DevSecOps): CI/CD, Docker/K8s/OpenShift, Gitlab/ArgoCD/Jenkins…, Hạ tầng AWS Cloud…
Các hệ thống đặc thù trong lĩnh vực Ngân hàng: Core Bank (T24), Core Tag (SmartVista/Way4…), ESB …
Phân tích, thiết kế sản phẩm/hệ thống/giải pháp trong lĩnh vực Tài chính, Ngân hàng…
Kinh nghiệm:
Tối thiểu 03 năm kinh nghiệm làm việc, phát triển các dự án liên quan đến chuyển đổi số, phát triển sản phẩm số của Ngân hàng hoặc Tổ chức tài chính tối ưu.
Ưu tiên đã làm việc với vị trí tương thích tại các hàng Ngân hàng.
Kỹ năng, chất:
Có khả năng tư vấn, đánh giá và xây dựng các giải pháp, định hướng phát triển ứng dụng/dịch vụ trong tương lai.
Có khả năng tự nghiên cứu, làm việc độc lập, xây dựng các giải pháp, hệ thống tổng thể.
Giao tiếp và diễn ra.
Có khả năng làm việc bằng tiếng Anh.
Phân tích kỹ năng cần có
1. Bản chất công việc
Đây là vị trí Senior Software Development chuyên về hệ sinh thái ngân hàng số, yêu cầu ứng viên không chỉ viết code mà còn có khả năng phân tích, thiết kế, triển khai, vận hành và phối hợp xử lý sự cố. Phạm vi công việc rất rộng: Onboarding, thanh toán/chuyển tiền, cho vay số, Core Banking, thẻ, Open Banking, ESB, Cloud và DevSecOps.
Dù tên dự án là Travel App, tin tuyển dụng không mô tả rõ Travel App là sản phẩm du lịch, ứng dụng ngân hàng số phục vụ du lịch hay tên nội bộ của một dự án ngân hàng số. Ứng viên cần hỏi lại nhà tuyển dụng trước khi chuẩn bị phỏng vấn.
2. Mức độ ưu tiên kỹ năng
| Nhóm kỹ năng | Mức cần có | Gợi ý chứng minh |
|---|---|---|
| Kinh nghiệm ngân hàng số/tài chính số | Bắt buộc, tối thiểu 03 năm | Các dự án onboarding, KYC, thanh toán, chuyển tiền, lending, ví điện tử, Open API |
| Thiết kế và phát triển ứng dụng | Mạnh | Sơ đồ kiến trúc, API, database, coding test, mô tả trách nhiệm cá nhân |
| Microservices và container | Mạnh | Docker, Kubernetes, service discovery, config, resilience, deployment |
| API và tích hợp | Mạnh | RESTful, SOAP, OpenAPI, authentication, idempotency, timeout/retry |
| Database | Mạnh | Thiết kế schema, index, transaction, locking, Oracle/SQL Server/PostgreSQL |
| DevSecOps và CI/CD | Khá mạnh | GitLab, Jenkins, ArgoCD, pipeline, quản lý secret, image scanning |
| Cloud AWS | Ưu thế lớn | VPC, IAM, ECS/EKS, S3, RDS, CloudWatch, bảo mật và chi phí |
| Hệ thống ngân hàng | Ưu tiên hoặc rất hữu ích | T24, SmartVista, Way4, card switch, ESB, ISO 8583 nếu có |
| Phân tích và tư vấn giải pháp | Bắt buộc ở cấp Senior | Requirement analysis, NFR, trade-off, roadmap, đánh giá rủi ro |
| Tiếng Anh | Có thể làm việc | Đọc tài liệu, viết email, trình bày và trao đổi với đối tác |
| Đào tạo và chuyển giao | Cần có | Workshop, documentation, mentoring, code review, runbook |
3. Kỹ năng kỹ thuật trọng tâm
3.1. Kiến trúc microservices
Ứng viên cần hiểu và có thể giải thích rõ:
- Phân chia bounded context, tránh chia service quá nhỏ.
- API Gateway, service registry, configuration management và circuit breaker.
- Đồng bộ qua REST/gRPC và bất đồng bộ qua message broker.
- Timeout, retry có kiểm soát, exponential backoff, bulkhead và circuit breaker.
- Distributed tracing, centralized logging, metrics, alerting.
- Database per service, eventual consistency và saga pattern.
- Backward compatibility, versioning và quản lý dependency giữa các service.
Với cấp Senior, câu trả lời tốt không chỉ liệt kê công nghệ mà phải nêu được bối cảnh sử dụng, ưu/nhược điểm và lựa chọn thay thế.
3.2. API, thanh toán và chuyển tiền
Các chủ đề nên ôn:
- RESTful API, OpenAPI, SOAP/WSDL.
- OAuth 2.0/OIDC, JWT, API key, mTLS và phân quyền theo vai trò.
- Idempotency key để tránh giao dịch bị trừ tiền hoặc ghi nhận nhiều lần.
- Transaction, rollback, reconciliation, audit log và xử lý giao dịch mơ hồ.
- Rate limit, timeout, retry, message queue, dead-letter queue.
- Masking dữ liệu nhạy cảm và không log mật khẩu, PIN, CVV hoặc thông tin định danh đầy đủ.
- Khả năng mở rộng theo chiều ngang và thiết kế giảm tải trong các khung giờ cao điểm.
3.3. Docker, Kubernetes và CI/CD
Ứng viên nên chuẩn bị các tình huống thực tế:
- Xây Docker image an toàn, multi-stage build, chạy container không phải root.
- Deployment trên Kubernetes: Deployment, Service, ConfigMap, Secret, Ingress, HPA, PDB.
- Rolling update, canary deployment, rollback khi lỗi.
- GitLab CI hoặc Jenkins build/test/scan/deploy.
- GitOps với ArgoCD và khác biệt giữa push-based và pull-based deployment.
- Quản lý secret bằng công cụ chuyên dụng thay vì đưa trực tiếp vào repository.
- Kiểm soát drift hạ tầng và versioning manifest.
3.4. Database
Cần có kiến thức thực hành về Oracle, SQL Server hoặc PostgreSQL:
- Thiết kế quan hệ, khóa chính, unique constraint, index và partition.
- Isolation level, deadlock, transaction và nguyên tắc ACID.
- Phân biệt eventual consistency với strong consistency.
- Query tuning, execution plan, locking và contention.
- Backup, restore, replication, failover và RPO/RTO.
- Data masking, encryption, auditing và phân quyền truy cập.
3.5. AWS Cloud
Không cần chứng minh mọi dịch vụ AWS, nhưng nên hiểu các nhóm dịch vụ chính:
- Compute: EC2, ECS hoặc EKS.
- Database: RDS, Aurora, DynamoDB tùy bài toán.
- Storage: S3, EFS.
- Network: VPC, subnet, route table, security group, load balancer.
- Security: IAM, KMS, Secrets Manager, WAF.
- Observability: CloudWatch và các công cụ tracing/logging tập trung.
- High availability, multi-AZ, disaster recovery và cost optimization.
3.6. DevSecOps và bảo mật ứng dụng
Các nội dung nên nắm:
- SAST, DAST, dependency scan, container scan, secret scan.
- Quyền tối thiểu, tách môi trường, quản lý artifact và image provenance.
- Threat modeling cơ bản.
- Các lỗi phổ biến: injection, broken access control, insecure deserialization, SSRF và lộ secret.
- Audit trail cho thay đổi cấu hình và giao dịch tài chính.
- Quy trình vá lỗi và đánh giá rủi ro khi phát hành gấp.
4. Chứng chỉ nên cân nhắc
Tin tuyển dụng liệt kê MCP, MCSD, AWS CCP, AWS SSA, ECBA và CCBA, nhưng không yêu cầu ứng viên phải có tất cả. Chứng chỉ chỉ nên là phần bổ sung cho kinh nghiệm.
- AWS Certified Cloud Practitioner: phù hợp nếu kiến thức Cloud mới.
- AWS Certified Solutions Architect – Associate: phù hợp với yêu cầu thiết kế Cloud trong JD.
- CKA hoặc CKAD: hữu ích nếu công việc thực tế tập trung Kubernetes.
- MCP/MCSD: có giá trị khi phù hợp hệ sinh thái Microsoft và vai trò phát triển trên nền tảng đó.
- ECBA/CCBA: phù hợp nếu ứng viên muốn nhấn mạnh phân tích nghiệp vụ, nhưng không thay thế được kinh nghiệm coding và system design.
5. Kỹ năng mềm và tư duy cấp Senior
| Kỹ năng | Hành vi cần thể hiện |
|---|---|
| Tư duy hệ thống | Nhìn được từ giao diện, API, service, database đến hạ tầng và vận hành |
| Tự chủ | Tự làm rõ vấn đề, chọn phương án và chủ động phụ thuộc |
| Giao tiếp kỹ thuật | Nói rõ trade-off, rủi ro và kế hoạch với cả kỹ thuật lẫn nghiệp vụ |
| Tư vấn | Đưa được nhiều phương án kèm khuyến nghị, không né trách nhiệm |
| Mentoring | Review code, hướng dẫn thành viên mới và viết tài liệu có thể tái sử dụng |
| Xử lý sự cố | Bình tĩnh, phân loại triệu chứng, thu hẹp phạm vi và truyền thông minh bạch |
| Quản lý ưu tiên | Đánh giá rủi ro, tuân thủ deadline và biết điều gì không nên đánh đổi |
6. Những điểm cần làm rõ trước khi ứng tuyển
- Ngôn ngữ và framework chính của dự án là Java/Spring, .NET, Node.js hay nền tảng khác?
- Travel App cụ thể là sản phẩm gì và vai trò của ứng viên trong hệ sinh thái ngân hàng số?
- Đây là nhân sự chính thức, hợp đồng dài hạn hay nhân sự theo dự án?
- Có trực sự cố, làm ngoài giờ hoặc làm việc cuối tuần không?
- Môi trường production dùng on-premise, OpenShift hay AWS?
- Tỷ lệ giữa phát triển mới, maintenance, tích hợp và vận hành?
- Cấp trên trực tiếp, quy mô team và quy trình release ra sao?
- Vị trí làm việc hybrid hay hoàn toàn tại văn phòng Hà Nội?
Chuẩn bị phỏng vấn
1. Quy trình phỏng vấn dự kiến
Tin tuyển dụng không công bố quy trình chính thức. Với vị trí Senior trong ngân hàng số, quy trình có thể gồm 4–6 vòng:
1. HR screening: xác nhận kinh nghiệm, mức lương hiện tại, kỳ vọng, địa điểm, loại hợp đồng và khả năng on-call.
2. Bài test kỹ thuật: coding, trắc nghiệm Java/.NET/SQL, kiến trúc hoặc DevOps.
3. Phỏng vấn kỹ thuật: chuyên môn, database, API, microservice, Cloud và bảo mật.
4. System design/architecture: thiết kế một phần trong hệ thống ngân hàng số.
5. Phỏng vấn hành vi và leadership: STAR, tình huống xử lý sự cố, mâu thuẫn và mentoring.
6. Phỏng vấn tiếng Anh hoặc với quản lý/đối tác: trình bày giải pháp, trao đổi trade-off và động lực nghề nghiệp.
2. Câu hỏi kỹ thuật hay gặp
Lập trình và thiết kế
- Hãy trình bày kiến trúc một dịch vụ thanh toán hoặc chuyển tiền.
- Vì sao dùng microservices? Khi nào không nên dùng?
- Phân biệt REST và SOAP; khi nào SOAP vẫn phù hợp trong ngân hàng?
- Idempotency được triển khai như thế nào?
- Xử lý race condition, duplicate request và giao dịch qua nhiều service thế nào?
- Cách xử lý eventual consistency, saga, rollback và compensation.
- Thiết kế API versioning và backward compatibility.
- Phân biệt queue với event stream.
Database
- Index thường xuyên được sử dụng nhưng truy vấn vẫn chậm; anh/chị xử lý thế nào?
- Deadlock xảy ra ở đâu và cách phòng tránh?
- Thiết kế lưu trữ giao dịch tài chính và lịch sử đối soát.
- Backup, restore, replication và disaster recovery được triển khai ra sao?
Docker/Kubernetes và DevSecOps
- Docker image được tối ưu và bảo mật như thế nào?
- Khác biệt giữa Rolling Update, Canary và Blue-Green Deployment?
- ArgoCD phát hiện và xử lý configuration drift thế nào?
- Secret lưu ở đâu và rotation như thế nào?
- Pipeline từ commit đến production gồm những bước nào?
- Ứng dụng có lỗi sau deploy; quy trình rollback và debug ra sao?
AWS
- Thiết kế một ứng dụng web độ sẵn sàng cao trên AWS.
- Cách phân vùng VPC, security group, public subnet và private subnet.
- ECS và EKS khác nhau khi nào nên dùng công cụ nào?
- Bảo vệ dữ liệu nhạy cảm trong RDS/S3 thế nào?
- Cách theo dõi lỗi, latency, availability và chi phí Cloud.
Bảo mật
- Các rủi ro chính của API tài chính là gì?
- Cách ngăn lộ thông tin khách hàng qua log và tracing?
- Threat modeling cho một ứng dụng chuyển tiền gồm những bước nào?
- Làm thế nào để đảm bảo audit trail không bị sửa?
- Xử lý secret bị lộ trong Git thế nào?
3. System design nên luyện
Bài toán mẫu: Dịch vụ chuyển tiền
Cấu trúc trả lời nên có:
1. Functional requirements: chuyển tiền, xác thực OTP, kiểm tra hạn mức, ghi nhận giao dịch, thông báo và tra cứu lịch sử.
2. Non-functional requirements: availability, latency, consistency, security, audit, scalability và khả năng mở rộng.
3. Luồng tổng quát: Mobile/Web → API Gateway → Auth service → Payment/Transfer service → hệ thống hạ tầng/tích hợp → notification.
4. Bảo mật: OIDC/OAuth, mTLS, phân quyền, rate limit, mã hóa, masking, secret management.
5. Tính nhất quán: transaction nội bộ service, outbox/event, idempotency, reconciliation.
6. Khả năng chịu lỗi: timeout, retry, circuit breaker, dead-letter queue và graceful degradation.
7. Vận hành: metric, log, trace, alert, dashboard, SLO, runbook và rollback.
8. Trade-off: synchronous tại bước nào, asynchronous tại bước nào và vì sao.
Không nên mặc định kiến trúc mình đưa ra là duy nhất. Hãy thể hiện khả năng cân bằng giữa độ phức tạp, chi phí, rủi ro và năng lực đội ngũ.
4. Câu hỏi về ngân hàng số
- Core Bank, card switch, ESB và API layer phối hợp với nhau thế nào?
- Open Banking cần quản lý consent, scope, rate limit và audit ra sao?
- Khác biệt giữa authorization và authentication?
- KYC/AML ảnh hưởng thế nào đến thiết kế Onboarding?
- Làm sao chống duplicate posting khi mất response giữa các hệ thống?
- Tại sao cần reconciliation?
- Sự khác nhau giữa chargeback, refund và reversal?
- Những dữ liệu nào được xem là dữ liệu nhạy cảm trong hệ thống tài chính?
- Khi Core Banking bị lỗi, trải nghiệm phía người dùng nên được xử lý thế nào?
5. Câu hỏi hành vi nên chuẩn bị bằng STAR
- Một quyết định kỹ thuật của anh/chị ban đầu bị phản đối nhưng sau đó chứng minh đúng.
- Một lần dự án gần deadline nhưng thiếu nguồn lực.
- Xử lý sự cố nghiêm trọng ngoài giờ thế nào?
- Từng phát hiện hoặc ngăn chặn rủi ro bảo mật.
- Mentoring một thành viên yếu hơn.
- Bất đồng với product manager hoặc đối tác về yêu cầu.
- Một lần phải thay đổi kiến trúc vì chi phí, hiệu năng hoặc quy định.
Mỗi câu nên trả lời trong 2–3 phút, có tình huống – nhiệm vụ – hành động – kết quả định lượng – bài học.
6. Cách trình bày kinh nghiệm khi chưa có đủ 03 năm
Nếu gần đạt ngưỡng kinh nghiệm, hãy trung thực và chứng minh năng lực bằng:
- Dự án đã làm thực tế và mức độ trách nhiệm.
- Ảnh hưởng đo được: giảm latency, giảm lỗi, tăng tỷ lệ tự động hóa, giảm thời gian deploy.
- Kiến thức banking domain và khả năng làm việc độc lập.
- Kết quả mentoring hoặc chuyển giao.
Không nên cố tình kéo dài kinh nghiệm hoặc nhận là đã làm công nghệ/vendor chưa từng sử dụng.
7. Tài liệu mang theo
- CV bản tiếng Việt và tiếng Anh, nhất quán về thời gian và vai trò.
- Sơ đồ kiến trúc đã được loại bỏ thông tin mật: tên khách hàng, IP, tài khoản, endpoint production.
- Một case study dự án gồm bối cảnh, quy mô, kiến trúc, quyết định kỹ thuật, sự cố và kết quả.
- Danh sách dự án, stack, trách nhiệm cá nhân và thành tích định lượng.
- Chứng chỉ nếu có, nhưng không để chứng chỉ thay thế câu trả lời kỹ thuật.
8. Trang phục
Nên mặc business formal hoặc smart formal: áo sơ mi trắng/xanh nhạt, quần tây, giày công sở; có thể thêm blazer hoặc vest. Trang phục nên gọn gàng, lịch sự, không cần quá cầu kỳ. Nếu được xác nhận môi trường casual qua email, có thể giảm một mức nhưng vẫn nên chỉn chu.
9. Mẹo phỏng vấn
- Trước khi trả lời, dành 5–10 giây để cấu trúc ý tưởng.
- Nêu giả định rõ ràng, đặc biệt với Travel App và stack chưa được công bố.
- Khi không biết, hãy giải thích cách suy luận và phần nào cần xác minh.
- Không chỉ nói công nghệ; hãy nói lý do chọn, rủi ro và chi phí vận hành.
- Chuẩn bị 5 câu hỏi hỏi ngược về kiến trúc, stack, on-call, KPI, hỗ trợ đào tạo và cơ hội phát triển.
Lộ trình ôn thi
1. Ưu tiên ôn theo thứ tự
Tin tuyển dụng không nêu ngôn ngữ lập trình chính. Vì vậy, ứng viên nên chọn một stack làm điểm sâu và duy trì kiến thức nền về microservices, database, Cloud và DevSecOps. Tránh học dàn trải tất cả công nghệ mà không thể triển khai một use case hoàn chỉnh.
Thứ tự nên học:
1. Lập trình, API, SQL và transaction.
2. Thiết kế hệ thống và microservices.
3. Docker, Kubernetes và CI/CD.
4. AWS và bảo mật.
5. Kiến thức ngân hàng số.
6. System design và phỏng vấn hành vi.
7. Tiếng Anh chuyên ngành.
2. Lộ trình 10 ngày
Ngày 1: Củng cố nền tảng
- OOP, SOLID, design pattern cơ bản.
- Collections, multithreading/async, exception handling.
- REST, HTTP status code, authentication và authorization.
- SQL: join, index, transaction, isolation level và deadlock.
Ngày 2: Luyện coding
- Ôn 5 bài thuật toán: array/hash map, two pointers, binary search, tree và queue.
- Luyện một bài thiết kế API có validation, pagination, error model và idempotency.
- Viết test cho business rule quan trọng.
Ngày 3: Microservices
- Ôn bounded context, API Gateway, service discovery, config management.
- Thực hành timeout, retry, circuit breaker và bulkhead.
- Giải thích saga, event-driven architecture, outbox pattern và eventual consistency.
Ngày 4: Docker và Kubernetes
- Tạo Docker image multi-stage, chạy ứng dụng local.
- Thực hành Deployment, Service, ConfigMap, Secret và Ingress.
- Hiểu readiness/liveness probe, HPA, PDB, rolling update và rollback.
Ngày 5: CI/CD và GitOps
- Dựng pipeline lint → test → build → scan → deploy.
- Tìm hiểu GitLab CI hoặc Jenkins theo kinh nghiệm hiện có.
- Nắm vai trò của ArgoCD, secret scanning, SAST, dependency scan và image scan.
Ngày 6: AWS
- Ôn VPC, IAM, EC2, ECS/EKS, S3, RDS, load balancing và CloudWatch.
- Thiết kế hệ thống hai Availability Zone có backup và recovery.
- Luyện câu hỏi trade-off giữa managed service và tự vận hành.
Ngày 7: Bảo mật và vận hành
- OWASP API Security Top 10.
- Threat modeling và secure coding.
- Log, metric, trace, alert, SLO, runbook, incident response.
- Backup, RPO, RTO, restore testing và disaster recovery.
Ngày 8: Nghiệp vụ ngân hàng số
- Onboarding, eKYC, KYC/AML.
- Payment, transfer, ledger, reconciliation.
- Card issuing/acquiring, chargeback, refund, reversal.
- Core Banking, card switch, ESB, Open Banking và API consent.
Ngày 9: System design
- Luyện thiết kế dịch vụ chuyển tiền trong 30–40 phút.
- Mở rộng sang thanh toán thẻ, Open API hoặc onboarding.
- Mỗi bài phải có giả định, requirement, sơ đồ, data model, API, security, scaling và failure mode.
Ngày 10: Mock interview
- Một buổi coding, một buổi technical Q&A và một buổi system design.
- Luyện câu trả lời bằng tiếng Anh trong 3–5 phút.
- Rút kinh nghiệm: câu nào thiếu dữ kiện, trả lời quá dài hoặc chưa nêu trade-off.
3. Mini-project nên chuẩn bị
Có thể dựng một dịch vụ Payment/Transfer mô phỏng với:
- API tạo và tra cứu giao dịch.
- Database transaction và unique idempotency key.
- Container hóa ứng dụng.
- Pipeline CI chạy unit test, lint và security scan.
- Centralized log, health check và metric cơ bản.
- Docker Compose để khởi động ứng dụng và database.
- Sơ đồ kiến trúc và README mô tả trade-off.
Không cần sử dụng công nghệ quá nhiều. Một project nhỏ nhưng có test, tài liệu, bảo mật và cách vận hành sẽ có giá trị hơn một danh sách dài framework.
4. Tài liệu tham khảo
- Tài liệu chính thức OpenAPI Specification.
- Tài liệu Docker và Kubernetes.
- Tài liệu AWS Architecture Center và Well-Architected Framework.
- Tài liệu ArgoCD, GitLab CI hoặc Jenkins tùy stack đã dùng.
- OWASP API Security Top 10.
- Tài liệu PostgreSQL, Oracle hoặc SQL Server tương ứng kinh nghiệm.
- Design Patterns và System Design Interview.
- Tài liệu/đào tạo chính thức của T24, SmartVista, Way4 hoặc ESB nếu nhà tuyển dụng xác nhận có sử dụng.
Không nên học thuộc tên chức năng vendor. Điều quan trọng là hiểu vai trò của từng hệ thống, giao diện tích hợp, transaction flow và cách xử lý lỗi.
5. Danh sách kiến thức tự kiểm tra
Trước phỏng vấn, ứng viên cần tự trả lời được:
- Vì sao service này nên tách khỏi monolith?
- Khi nào nên dùng database riêng cho từng service?
- Duplicate request được ngăn bằng cơ chế nào?
- Event consumer bị lỗi thì xử lý ra sao?
- Secret được tạo, lưu, xoay và thu hồi thế nào?
- Deployment lỗi thì rollback trong bao lâu?
- Hệ thống phục hồi sau mất một Availability Zone thế nào?
- Transaction tài chính được audit và đối soát thế nào?
- Làm sao cân bằng availability và consistency?
- Dữ liệu khách hàng được masking ở những điểm nào?
6. Cách học hiệu quả
- Mỗi ngày học 45 phút lý thuyết và 60–90 phút thực hành.
- Ghi lại câu trả lời ngắn bằng sơ đồ và bảng trade-off.
- Tự giải thích một công nghệ không dùng thuật ngữ quá hàn lâm.
- Ưu tiên câu hỏi tình huống và sự cố hơn câu hỏi định nghĩa.
- Trong hai ngày cuối, tập trung sửa điểm yếu thay vì học thêm quá nhiều công nghệ mới.
Tư vấn nghề nghiệp
1. Lộ trình thăng tiến phù hợp
| Giai đoạn | Trọng tâm | Khoảng kinh nghiệm tham khảo |
|---|---|---|
| Software Engineer | Code, test, API, database, học quy trình | Dưới 3 năm |
| Senior/ Chuyên viên cao cấp | Thiết kế module/service, sở hữu sản phẩm, mentoring, xử lý sự cố | Khoảng 3–6 năm |
| Tech Lead/Lead Engineer | Định hướng kỹ thuật, phối hợp team, delivery và chất lượng | Khoảng 5–8 năm |
| Software Architect | Kiến trúc doanh nghiệp, governance, platform, chiến lược công nghệ | Thường từ khoảng 7–10 năm |
| Engineering Manager/ Solution Architect | Quản lý người, năng lực team, stakeholder và giải pháp xuyên domain | Tùy năng lực và cơ hội tổ chức |
Khoảng kinh nghiệm chỉ mang tính tham khảo. Một ứng viên 3 năm có thể phù hợp Senior nếu đã chịu trách nhiệm thiết kế và vận hành hệ thống; ngược lại, nhiều năm kinh nghiệm nhưng chỉ làm task nhỏ chưa chắc đáp ứng tư duy cấp Senior.
2. Năng lực nên phát triển sau khi vào vị trí
- Chuyên sâu một hệ sinh thái ngôn ngữ thay vì chỉ biết gọi API.
- Kiến thức payment/card/ledger/reconciliation và Core Banking.
- System design cho hệ thống phân tán.
- DevSecOps, observability và incident management.
- Khả năng ước lượng, quản trị rủi ro và ra quyết định dựa trên trade-off.
- Mentoring, technical writing và trình bày trước stakeholder.
- Tiếng Anh chuyên ngành để mở rộng vai trò trong dự án quốc tế.
3. Mức lương kỳ vọng
Tin tuyển dụng ghi lương thỏa thuận và không cung cấp phúc lợi, ngân sách hay cấp bậc chính xác. Không nên xem bất kỳ mốc lương nào trên mạng là cam kết của ngân hàng.
Tại Hà Nội, ứng viên Senior với 3–5 năm kinh nghiệm, từng làm tài chính số và có năng lực cloud/microservices có thể dùng khoảng 25–45 triệu đồng gross/tháng làm vùng tham khảo ban đầu. Mức cao hơn, khoảng 40–55 triệu đồng gross/tháng, có thể phù hợp nếu ứng viên có kin nghiệm sâu hệ thống ngân hàng, thiết kế kiến trúc, mentoring và đàm phán tốt. Đây chỉ là mốc thị trường tổng quát, không phải số liệu xác nhận từ PVComBank.
Khi đàm phán, nên tách rõ:
- Lương cứng gross.
- Thưởng năm, target và điều kiện nhận.
- Phụ cấp ăn uống, điện thoại, đi lại hoặc chứng chỉ.
- Bảo hiểm, khám sức khỏe, nghỉ phép.
- Thời gian tăng lương/thưởng và chu kỳ review.
- Trợ cấp on-call nếu có yêu cầu trực sự cố.
4. KPI có thể hỏi
KPI chính thức chưa được công bố. Ở vị trí này, KPI có thể liên quan đến:
- Tiến độ và chất lượng release.
- Số lỗi regression hoặc tỷ lệ lỗi production.
- Availability và SLO của dịch vụ.
- Thời gian phục hồi sự cố MTTR.
- Tỷ lệ tự động hóa test/deploy.
- Giảm latency, chi phí Cloud hoặc effort vận hành.
- Hoàn thành mentoring và chuyển giao tài liệu.
- Mức độ tuân thủ bảo mật và audit.
Ứng viên nên hỏi cách đo từng KPI, có phụ thuộc nhóm hay không và vai trò cá nhân trong kết quả chung.
5. Câu hỏi nên hỏi nhà tuyển dụng
- Vì sao vị trí được mở: thay người, mở rộng team hay dự án mới?
- Thành công của người được tuyển sau 6 tháng được đo bằng điều gì?
- Stack thực tế, hệ thống Core/ESB/Card và nền tảng Cloud của dự án là gì?
- Team hiện có bao nhiêu người và vai trò của vị trí này trong kiến trúc tổng thể?
- Có bao nhiêu sản phẩm mới so với maintenance và tích hợp hệ thống cũ?
- Quy trình release, on-call, backup và ứng phó sự cố diễn ra thế nào?
- Dự án Travel App đang ở giai đoạn nào và kế hoạch trong 12 tháng tới ra sao?
- Ngân sách đào tạo chứng chỉ và cơ hội tham gia hội nghị/communities kỹ thuật thế nào?
- Lộ trình thăng tiếc và tiêu chí từ Senior lên Lead/Architect là gì?
6. Chiến lược hồ sơ và thương lượng
Hồ sơ nên nhấn mạnh 3–4 dự án liên quan nhất, không liệt kê quá nhiều công nghệ không gắn với trách nhiệm. Mỗi dự án nên có:
- Bối cảnh và đội ngũ.
- Vai trò cá nhân.
- Kiến trúc và quyết định kỹ thuật.
- Sự cố đã xử lý.
- Kết quả định lượng.
- Bài học hoặc điều sẽ làm khác nếu có cơ hội làm lại.
Khi thương lượng, hãy neo vào phạm vi trách nhiệm và giá trị mang lại thay vì chỉ dựa vào số năm kinh nghiệm. Nếu offer thấp hơn kỳ vọng, có thể đề nghị tăng base, thưởng bảo đảm, phụ cấp kỹ năng/on-call, ngày nghỉ, thiết bị hoặc ngân sách đào tạo thay vì mặc định nhận ngay.
Câu hỏi thường gặp
Tôi có 4 năm phát triển phần mềm nhưng chưa từng làm ngân hàng. Tôi có nên ứng tuyển không?
Vẫn nên ứng tuyển nếu JD cho phép tổ chức tài chính và nền tảng kỹ thuật của bạn tương đồng. Hãy chuẩn bị một case study thể hiện khả năng thiết kế transaction, API, database và xử lý lỗi; đồng thời học các khái niệm cơ bản về KYC, payment, transfer, reconciliation, card và Core Banking. Trong phỏng vấn, hãy thành thận về phần nào chưa có kinh nghiệm nhưng chứng minh bạn biết cách tiếp cận và hiểu rủi ro ngành.
Tin ghi tối thiểu 03 năm nhưng chức danh là Chuyên viên cao cấp. Làm sao biết mình đủ cấp Senior?
JD thực tế đang cần một Senior có khả năng làm việc độc lập và chịu trách nhiệm về giải pháp. Bạn nên đánh giá bản thân qua năm câu hỏi: đã từng thiết kế service quan trọng chưa; có thể nêu trade-off không; từng xử lý sự cố production chưa; có mentoring hay chuyển giao chưa; và đã đo được tác động của quyết định kỹ thuật chưa. Nếu mới chỉ nhận và hoàn thành task, dù đủ số năm vẫn nên luyện system design trước khi ứng tuyển.
JD không nêu Java, .NET hay Node.js. Tôi nên chuẩn bị stack nào?
Chọn stack bạn thực sự mạnh nhất và liên hệ nó với microservices. Nếu là Java, hãy ôn Spring Boot, Spring Cloud, JPA, transaction, message broker, testing và observability; nếu là .NET, ôn ASP.NET Core, EF Core, message broker và Azure/AWS integration; nếu là Node.js, hãy ôn NestJS hoặc framework tương đương, async processing và TypeScript. Ngoài ra, cần vững SQL, Docker/Kubernetes, CI/CD, API và system design. Hãy hỏi HR stack thực tế trước vòng test.
Hãy gợi ý một kiến trúc tổng quát cho dịch vụ chuyển tiền trong phỏng vấn.
Có thể bắt đầu từ Mobile/Web qua API Gateway và OIDC/OAuth, sau đó vào Transfer Service. Service xác thực người dùng, kiểm tra hạn mức, tạo idempotency key, ghi transaction trong database nội bộ và dùng outbox/event để gọi Core hoặc ledger bất đồng bộ. Hệ thống cần audit log, reconciliation, timeout/retry có giới hạn, dead-letter queue, monitoring và rollback/compensation. Bạn nên giải thích vì sao một số bước đồng bộ và một số bước bất đồng bộ, thay vì chỉ vẽ sơ đồ.
Làm sao thể hiện kinh nghiệm Docker/Kubernetes nếu tôi chỉ dùng ở môi trường local?
Đừng phóng đại thành kinh nghiệm production. Hãy thừa nhận phạm vi thực tế, sau đó thể hiện kiến thức vận hành: multi-stage image, non-root user, readiness/liveness probe, resource limit, rolling update, HPA, secret management, network policy, log/metric và rollback. Tốt nhất là thực hiện một mini-project deploy service lên Kubernetes lab hoặc môi trường cloud miễn phí để có trải nghiệm thao tác thực tế.
Các chứng chỉ AWS, MCP, MCSD, ECBA hoặc CCBA có bắt buộc không?
Không nên hiểu rằng phải có tất cả hoặc chỉ cần chứng chỉ là được nhận. JD nêu ví dụ chứng chỉ CNTT để bổ sung hồ sơ, nhưng ưu tiên thực tế nằm ở kinh nghiệm phát triển sản phẩm số tại ngân hàng hoặc tổ chức tài chính. Một chứng chỉ phù hợp có thể cộng điểm, nhưng phải biết giải thích cách áp dụng vào bài toán kiến trúc.
Vị trí có thể phải trực sự cố hoặc làm ngoài giờ không? Dù JD không ghi?
Có khả năng hệ thống tài chính yêu cầu trực sự cố, đặc biệt với payment, transfer, Core hoặc card. Tuy nhiên, JD cũng không nêu rõ, vì vậy cần hỏi HR hoặc hiring manager về tần suất on-call, phân công, phụ cấp, quy trình escalation và cách bố trí lịch. Không nên suy đoán chỉ từ bản tin; cũng không nên đồng ý với trách nhiệm không giới hạn mà không bàn rõ.
Tôi nên đề nghị mức lương nào khi JD chỉ ghi thỏa thuận?
Có thể dùng mốc tham khảo khoảng 25–45 triệu đồng gross/tháng cho Senior có 3–5 năm kinh nghiệm, tùy stack, mức độ banking và cloud. Nếu có kiến trúc ngân hàng, mentoring và năng lực vận hành mạnh, có thể đặt kỳ vọng cao hơn trong khoảng 40–55 triệu đồng. Đây không phải khung lương của PVComBank. Trước khi đưa số, hãy hỏi scope, ngân sách, thưởng, on-call, phụ cấp, phúc lợi và khả năng review lương.
Travel App cụ thể có thể là gì? Tôi có nên tập trung vào ứng dụng du lịch không?
Chưa nên kết luận. Có ba khả năng: một sản phẩm ngân hàng số gắn với use case du lịch; ứng dụng thanh toán/booking du lịch; hoặc tên riêng của dự án. Hãy hỏi HR về sản phẩm, đối tượng khách hàng, hành trình nghiệp vụ và vai trò của hệ thống này trong chiến lược số. Dù câu trả lời là gì, vẫn nên tập trung vào kiến trúc tài chính số và bảo mật vì phần này xuất hiện rõ trong JD.
Nếu đã là Senior, tôi cần chuẩn bị kỹ năng gì để thăng lên Lead hoặc Architect?
Hãy phát triển ngoài coding: thiết kế kiến trúc toàn hệ thống, quản trị dependency, xây coding standards, mentoring, review thiết kế của team, ước lượng rủi ro và giao tiếp với stakeholder. Với Architect, cần bổ sung governance, security by design, reliability, cost, data architecture, integration pattern và khả năng đưa ra roadmap dài hạn. Hãy tìm vai trò chủ trì một dịch vụ quan trọng hoặc một initiative xuyên suốt nhiều team.