[HCM] Senior Backend Developer (Java) - TA172
Mô tả công việc
Mô tả công việc
The (position) is responsible for:
Delivery in-house applications as defined in product road map
A. Key Responsibilities and Accountabilities
• Delivery in-house applications as defined in product road map
• Features quality (less than 3 critical bugs which affect > 1500 users)
• Service Up Time (99%)
• Service Response Time (<= 1000ms not include 3rd party)
• Number of bugs per 3-weeks sprint (<= 10)
B. Requirements
Experience
• Design/developer in a complex, enterprise-level development environment for at least 5 years.
• Solid experience in Java 8+, OOP.
• Web Services expose and consume, (SOAP/RESTfull)
• Messaging system.
• Access and manipulate database (SQL and NoSQL), MySQL, MongoDB, Oracel SQL.
• Embedded Jetty, Springboot.
• RabbitMQ, Kafka.
• Redis, Memcache, Couchbase.
• Experience in system architecture, API management.
• Experience in the banking or financial services industry.
• Knowledge about load balancing such as HAProxy.
• Experience in OWASP, software security.
• Optimize/review code.
• Write high performance code.
• Load test.
• Quick adaption to a new environment.
• Support other members to deliver tasks ontime.
• Knowledge about AWS, AI is advance.
Special Skills
• Problem solving
• Security awareness
• Module design and development
• Product understanding
• UX oriented development
• Analysis and design.
Thông tin khác
Địa điểm làm việc: Tầng 16, Tòa nhà E-town Central, 11 Đoàn Văn Bơ, Phường Xóm Chiếu, TP.HCM, Việt Nam
Phân tích kỹ năng cần có
Phân tích kỹ năng cho vị trí Senior Backend Developer (Java) - VPBank
🎯 Tổng quan vị trí
Đây là vị trí Senior Backend Developer thuộc Khối CNTT của VPBank, làm việc tại trụ sở E-town Central (quận 4, TP.HCM). Vị trí này yêu cầu cao về cả chiều sâu kỹ thuật lẫn kinh nghiệm thực chiến trong môi trường enterprise banking — nơi hệ thống phải đảm bảo uptime 99% và xử lý hàng triệu giao dịch.
---
🛠️ Hard Skills (Kỹ năng cứng) — BẮT BUỘC
| Nhóm kỹ năng | Công nghệ cụ thể | Mức độ yêu cầu |
|---|---|---|
| Ngôn ngữ chính | Java 8+, OOP, Java 17 (mới hơn càng tốt) | ⭐⭐⭐⭐⭐ |
| Framework | Spring Boot, Embedded Jetty | ⭐⭐⭐⭐⭐ |
| Web Services | RESTful API, SOAP | ⭐⭐⭐⭐⭐ |
| Database | MySQL, Oracle SQL, MongoDB (NoSQL) | ⭐⭐⭐⭐⭐ |
| Messaging | RabbitMQ, Kafka | ⭐⭐⭐⭐ |
| Caching | Redis, Memcache, Couchbase | ⭐⭐⭐⭐ |
| Architecture | System design, API Management, Microservices | ⭐⭐⭐⭐ |
| Security | OWASP, software security best practices | ⭐⭐⭐⭐ |
| Performance | Load testing, code optimization, HAProxy | ⭐⭐⭐⭐ |
| Cloud | AWS (EC2, S3, Lambda, RDS…) | ⭐⭐⭐ (ưu tiên) |
---
🌟 Kỹ năng NÂNG CAO (điểm cộng lớn)
- AI/ML Integration: Biết tích hợp AI vào hệ thống ngân hàng (fraud detection, chatbot, OCR…) — đây là xu hướng VPBank đang đầu tư mạnh
- Kubernetes, Docker, CI/CD (Jenkins, GitLab CI)
- Monitoring tools: Grafana, Prometheus, ELK Stack
- Domain-Driven Design (DDD), Event-Driven Architecture
---
🤝 Soft Skills (Kỹ năng mềm)
- Problem Solving — gỡ lỗi hệ thống phức tạp dưới áp lực
- Security Awareness — tư duy bảo mật trong từng dòng code
- Module Design & Product Understanding — hiểu sản phẩm ngân hàng (core banking, lending, payment…)
- UX-Oriented Development — tối ưu trải nghiệm người dùng từ backend
- Mentoring & Collaboration — hỗ trợ thành viên junior deliver đúng hạn
- Tiếng Anh — đọc hiểu tài liệu kỹ thuật (tối thiểu Intermediate)
---
📜 Chứng chỉ gợi ý (nên có để tăng sức mạnh hồ sơ)
| Chứng chỉ | Tổ chức | Lợi ích |
|---|---|---|
| Oracle Certified Professional: Java SE | Oracle | Chứng minh nền tảng Java vững |
| AWS Certified Solutions Architect | AWS | Phù hợp yêu cầu AWS |
| Spring Professional Certification | VMware/Pivotal | Chứng minh chuyên môn Spring |
| Certified Kubernetes Administrator (CKA) | CNCF | Nếu hệ thống dùng K8s |
| CISSP / CSSLP | (ISC)² | Nếu muốn đi sâu security |
---
⚖️ So sánh yêu cầu với thị trường
| Tiêu chí | Tin VPBank | Trung bình Senior Java tại ngân hàng VN |
|---|---|---|
| Số năm kinh nghiệm | 5+ năm | 4-5 năm |
| Yêu cầu banking experience | Bắt buộc | Ưu tiên |
| Message broker | RabbitMQ + Kafka | Thường 1 trong 2 |
| Caching layers | 3 loại (Redis, Memcache, Couchbase) | Thường 1-2 loại |
| Cloud | AWS (ưu tiên) | On-premise phổ biến hơn |
| AI knowledge | Điểm cộng | Hiếm khi yêu cầu |
→ Nhận xét: Tin này có yêu cầu khá cao và toàn diện, phù hợp với ứng viên thực sự senior, đã làm banking ít nhất 2-3 năm.
Chuẩn bị phỏng vấn
Hướng dẫn phỏng vấn Senior Backend Developer (Java) - VPBank
📋 Quy trình tuyển dụng dự kiến (3-5 vòng)
Vòng 1: HR Screen (30-45 phút)
- Giới thiệu bản thân, lý do ứng tuyển
- Kỳ vọng lương, thời gian onboard
- Tìm hiểu kinh nghiệm banking
Vòng 2: Technical Test / Coding Assignment
- Có thể là HackerRank / Codility test (60-90 phút)
- Bài tập Java OOP, algorithm, SQL query
- Một số câu hỏi về Spring Boot, REST API design
Vòng 3: Technical Interview vòng 1 (Coding + System Design)
- Live coding hoặc white-board algorithm
- Thiết kế hệ thống: API payment, transaction core, lending system
- Đánh giá độ sâu Java core, multithreading, concurrency
Vòng 4: Technical Interview vòng 2 (Tech Lead / Architect)
- Sâu về system architecture, microservice
- Thảo luận về security (OWASP), performance optimization
- Case study thực tế từ dự án cũ của ứng viên
Vòng 5: Director / Head of Department
- Fit văn hóa, tầm nhìn nghề nghiệp
- Đàm phán lương, package
---
❓ Câu hỏi phỏng vấn hay gặp
🔹 Java Core
1. Phân biệt `HashMap`, `ConcurrentHashMap`, `Hashtable` — khi nào dùng gì?
2. Garbage Collection hoạt động thế nào? Cách tune JVM?
3. Sự khác nhau giữa `ExecutorService`, `ForkJoinPool`, `CompletableFuture`?
4. Java 8 Streams API: xử lý parallel, performance trade-off?
5. `volatile` vs `synchronized` vs `Lock`?
🔹 Spring Boot & Microservices
1. Spring Boot auto-configuration hoạt động ra sao?
2. Cách implement circuit breaker (Resilience4j, Hystrix)?
3. Distributed transaction trong microservice — Saga pattern?
4. Spring Security + JWT + OAuth2 cho hệ thống banking?
5. Cách debug memory leak, thread leak trong Spring Boot app?
🔹 Database & Performance
1. Khi nào dùng SQL, khi nào dùng NoSQL? Cho ví dụ cụ thể trong banking.
2. Index optimization, query plan analysis.
3. CAP theorem, eventual consistency trong distributed DB.
4. Connection pool sizing (HikariCP) như thế nào?
5. Khi nào dùng Redis vs Memcache vs Couchbase?
🔹 System Design
1. Thiết kế hệ thống chuyển tiền nội địa xử lý 10,000 TPS?
2. Thiết kế notification service cho app ngân hàng (push, SMS, email)?
3. Thiết kế fraud detection system real-time?
4. Làm sao đảm bảo idempotency trong payment API?
5. Cách handle duplicate message trong Kafka?
🔹 Banking Domain
1. Quy trình eKYC, KYC là gì? Làm sao tích hợp vào app?
2. Core banking system có những module nào?
3. PCI-DSS compliance trong payment system?
4. Luật an ninh mạng & bảo vệ dữ liệu cá nhân ở VN?
🔹 Behavioral / Soft Skills
1. Mô tả một dự án banking bạn đã làm — bạn đóng góp gì?
2. Khi nào bạn mâu thuẫn với PM về technical decision — xử lý ra sao?
3. Cách bạn mentor junior developer?
4. Tại sao VPBank? Mục tiêu nghề nghiệp 3-5 năm tới?
---
👔 Dress Code
- Vòng HR / Director: Áo sơ mi + quần tây, có thể không cần vest
- Vòng Technical: Smart casual (áo polo, sơ mi nhẹ) — VPBank không quá formal
- Chung: Giày công sở, tóc gọn gàng, lịch sự
💡 Tips chuẩn bị
- ✅ Chuẩn bị portfolio trên GitHub với code sample banking domain
- ✅ Ôn lại các project đã làm theo format STAR (Situation, Task, Action, Result)
- ✅ Đọc trước về VPBank: sản phẩm, chiến lược chuyển đổi số, công nghệ họ đang dùng
- ✅ Chuẩn bị 3-5 câu hỏi ngược cho interviewer
- ✅ Luyện tập live coding trên LeetCode (medium-hard), HackerRank
- ✅ In CV, mang theo bút, đến trước 15 phút
Lộ trình ôn thi
Lộ trình ôn tập & chuẩn bị 2 tuần
📅 Tuần 1: Nền tảng Java & Spring Boot
Ngày 1-2: Java Core Deep Dive
- Đọc: Effective Java (Joshua Bloch) — các chương về Concurrency, Generics, Lambdas
- Luyện: 20 bài LeetCode Java (medium)
- Thực hành: Implement custom thread pool, LRU Cache
Ngày 3-4: Spring Boot Ecosystem
- Đọc: Spring Boot Reference Documentation
- Thực hành: Build REST API với Spring Boot 3, JPA, Validation
- Tìm hiểu: Spring Cloud (Gateway, Config, Eureka)
Ngày 5-7: Messaging & Caching
- RabbitMQ: exchange types, DLQ, priority queue
- Kafka: partition, consumer group, exactly-once semantics
- Redis: cluster, sentinel, pub/sub, rate limiting
📅 Tuần 2: System Design, Banking Domain & Mock Interview
Ngày 8-9: System Design
- Đọc: System Design Interview (Alex Xu Vol 1 & 2)
- Thực hành: Vẽ architecture cho 4 case study trên
- Tìm hiểu: Microservice patterns (Saga, CQRS, Event Sourcing)
Ngày 10-11: Banking & Security
- Đọc: OWASP Top 10, PCI-DSS basics
- Tìm hiểu: Core banking flows (account, payment, lending, card)
- Luật: Nghị định 13/2023 về bảo vệ dữ liệu cá nhân VN
Ngày 12-13: Performance & DevOps
- JVM tuning: heap, GC algorithms (G1, ZGC)
- Load testing với JMeter/Gatling
- Docker, Kubernetes cơ bản
- AWS: EC2, RDS, S3, Lambda, API Gateway
Ngày 14: Mock Interview
- Luyện live coding 2 giờ
- Tập trình bày system design 30 phút
- Review CV, portfolio
---
📚 Tài liệu tham khảo
| Tài liệu | Tác giả / Nguồn | Phù hợp cho |
|---|---|---|
| Effective Java (3rd Ed.) | Joshua Bloch | Java Core |
| Spring in Action (6th Ed.) | Craig Walls | Spring Boot |
| Designing Data-Intensive Applications | Martin Kleppmann | System Design |
| System Design Interview Vol 1, 2 | Alex Xu | System Design |
| Microservices Patterns | Chris Richardson | Architecture |
| Java Concurrency in Practice | Brian Goetz | Multithreading |
| Baeldung.com | Baeldung | Spring Boot tutorial |
| Refactoring.guru | Refactoring Guru | Design Patterns |
| LeetCode / HackerRank | - | Coding practice |
| Awesome Scalability | GitHub repo | System design cases |
---
🎓 Khóa học online gợi ý
- Coursera: Java Programming and Software Engineering Fundamentals (Duke)
- Udemy: Spring Boot Microservices with Spring Cloud (in28minutes)
- Educative.io: Grokking the System Design Interview
- AWS Skill Builder: Free AWS fundamentals
- YouTube: Hussein Nasser (system design), Java Brains (Spring)
Tư vấn nghề nghiệp
Lời khuyên sự nghiệp cho Senior Backend Developer ngân hàng
🚀 Lộ trình thăng tiến tại VPBank (và ngân hàng nói chung)
```
Senior Developer (bạn ở đây) → Tech Lead → Engineering Manager → Architect → CTO
↓
Principal Engineer (IC track)
```
Thời gian thăng tiến trung bình:
- Junior → Mid: 1-2 năm
- Mid → Senior: 2-3 năm
- Senior → Tech Lead: 2-4 năm
- Tech Lead → EM/Architect: 3-5 năm
💰 Mức lương kỳ vọng theo cấp bậc (Senior Java Developer - Banking tại VN)
| Cấp bậc | Kinh nghiệm | Gross (USD/tháng) | Gross (VNĐ/tháng) |
|---|---|---|---|
| Junior | 0-2 năm | $500 - $1,000 | 12 - 25 tr |
| Mid-level | 2-4 năm | $1,200 - $2,000 | 30 - 50 tr |
| Senior (vị trí này) | 5-7 năm | $2,200 - $3,800 | 55 - 95 tr |
| Tech Lead | 7-10 năm | $3,500 - $5,500 | 85 - 135 tr |
| Engineering Manager | 8-12 năm | $4,000 - $7,000 | 100 - 175 tr |
| Architect / Director | 10+ năm | $5,500 - $10,000+ | 135 - 250 tr+ |
Lưu ý: VPBank thuộc top ngân hàng tư nhân trả lương cao. Mức $2,500 - $3,500 USD là kỳ vọng hợp lý cho vị trí Senior này. Khi deal, nhớ cộng thêm 13th month salary, performance bonus, meal allowance, health insurance (có thể cộng thêm 15-25% vào gross).
---
📈 Kỹ năng cần phát triển trong 1-2 năm tới
Tier 1 — Bắt buộc cho Tech Lead
- System Architecture: Thiết kế hệ thống quy mô lớn (10K+ TPS)
- Cloud Native: AWS/GCP cert, K8s, Istio, ArgoCD
- Observability: OpenTelemetry, distributed tracing (Jaeger, Zipkin)
- AI/ML Integration: LLM API, RAG, vector database (Pinecone, Weaviate) — VPBank đang đẩy mạnh AI
Tier 2 — Nên có
- Event-Driven Architecture: Kafka Streams, Flink
- Security nâng cao: Cryptography, secure coding cho fintech
- DevSecOps: Shift-left security, SAST/DAST tools
- Tiếng Anh: Đạt IELTS 6.5+ hoặc TOEIC 700+
Tier 3 — Tạo lợi thế cạnh tranh
- Public Speaking: Tech talk, conference (Viblo, DevCon)
- Open Source: Contribute vào project Spring, Kafka
- Tech Blog: Viết bài trên Viblo, Medium, Dev.to
- MBA / quản lý: Nếu hướng EM
---
🎯 Khuyến nghị chiến lược
1. Trước khi apply: Có ít nhất 2-3 năm kinh nghiệm banking/fintech thực sự (không chỉ e-commerce). VPBank rất coi trọng domain knowledge.
2. Trong 6 tháng đầu: Tập trung hiểu sản phẩm VPBank (Casso, Cake, VPBank Neo…). Đề xuất cải tiến dựa trên data.
3. Sau 1 năm: Dẫn dắt 1 dự án lớn, mentor 2-3 bạn junior, có bài blog kỹ thuật.
4. Sau 2-3 năm: Đủ tư cách Tech Lead hoặc Principal Engineer (nếu chọn IC track).
⚠️ Lưu ý quan trọng
- Ngân hàng có compliance chặt — đọc kỹ quy định nội bộ trước khi đụng production
- VPBank đang chuyển đổi số rất mạnh → nhiều cơ hội nhưng cũng nhiều áp lực deadline
- Hệ thống banking thường legacy + mới song song — sẵn sàng học công nghệ cũ (Mainframe, COBOL) nếu cần
- Đừng nhảy việc quá 2 năm/lần trong giai đoạn Senior — depth quan trọng hơn breadth
Câu hỏi thường gặp
Em là sinh viên năm cuối IT, có làm đồ án Spring Boot + MySQL nhưng chưa đi làm. Có nên apply vị trí Senior này không?
Không nên bạn nhé. Vị trí này yêu cầu tối thiểu 5 năm kinh nghiệm enterprise, đặc biệt là banking. Bạn nên bắt đầu ở vị trí Junior/Mid tại một ngân hàng hoặc fintech trước (Techcombank, MB, Momo, ZaloPay…). Sau 3-5 năm tích lũy domain knowledge banking thì hãy apply Senior. Đồ án tốt nghiệp giúp bạn có nền tảng, nhưng production system ngân hàng khác xa đồ án về scale, security, compliance.
Tôi có 6 năm Java ở công ty outsourcing (e-commerce, logistics), KHÔNG làm banking. Cơ hội được không?
Cơ hội khoảng 30-40%. Bạn đáp ứng phần lớn technical skills (Java, Spring Boot, Kafka, MySQL…), NHƯNG yêu cầu "Experience in banking or financial services industry" là bắt buộc. Mẹo: trong CV, hãy làm nổi bật những dự án có tính chất tài chính (payment gateway, wallet, ERP tài chính…) dù không phải ngân hàng. Phỏng vấn, nhấn mạnh khả năng học domain nhanh và transferable knowledge (transaction, idempotency, audit log). Nếu có thể, làm 1 năm ở fintech trước rồi apply sẽ mạnh hơn nhiều.
Mức lương nào hợp lý để deal với VPBank cho vị trí Senior Backend này?
Với 5-7 năm kinh nghiệm banking, mức gross $2,500 - $3,500 USD là hợp lý (khoảng 60-85 triệu VNĐ). Nếu bạn có thêm AWS cert, AI/ML integration, hoặc kinh nghiệm system design lớn, có thể deal $3,500 - $4,000. VPBank thường offer thêm 13th month salary, meal card 1-2 triệu, health insurance cho gia đình, performance bonus 2-3 tháng lương/năm. Khi deal: đừng đưa con số cứng ngay, hỏi range của họ trước, sau đó counter 10-15% cao hơn mức họ offer. Lưu ý: nếu đang ở công ty nước ngoài với USD, VPBank có thể match nhưng hiếm khi vượt.
Tôi muốn chuyển từ Java Backend ở fintech sang ngân hàng VPBank. Cần chuẩn bị gì?
Bạn đã có lợi thế lớn vì fintech khá gần banking. Chuẩn bị 4 thứ: (1) Hiểu sâu core banking flow: tài khoản, tiền gửi, cho vay, thẻ, thanh toán — đọc tài liệu SWIFT, ISO 8583, PCI-DSS; (2) Học thêm về compliance: Nghị định 13/2023, Thông tư 17/2019 NHNN, anti-money laundering; (3) Nếu fintech của bạn đã dùng Kafka, Redis, microservice thì đã tốt; (4) Ôn lại Java security: OWASP, JWT, OAuth2, mã hóa dữ liệu nhạy cảm. Cuối cùng, trong phỏng vấn hãy cho thấy bạn hiểu khác biệt giữa fintech và core banking: trong ngân hàng yêu cầu tính chính xác tuyệt đối (không được sai một xu), không được downtime, audit trail phải rõ ràng.
VPBank yêu cầu AI knowledge — tôi không có background AI. Có phải disqualify không?
Không hẳn. Trong JD ghi "Knowledge about AWS, AI is advance" — tức là "nice-to-have", không phải bắt buộc. Tuy nhiên, để tăng điểm, bạn nên tự học cơ bản: (1) Cách gọi OpenAI API / Anthropic Claude API từ Java; (2) Hiểu RAG (Retrieval-Augmented Generation) và Vector Database; (3) Biết các use case AI trong banking: chatbot CSKH, fraud detection, OCR CCCD, credit scoring. Đầu tư 1-2 tuần tự học là đủ để trả lời ở mức 'có biết và hiểu'. Nếu phỏng vấn có hỏi, hãy thành thật: 'Tôi chưa có kinh nghiệm production nhưng đã tự học và prototype một số case đơn giản' — VPBank sẽ đánh giá cao sự chủ động học hỏi.
Java Developer ở ngân hàng có tương lai không, hay nên chuyển sang AI/Data?
Java Backend ở banking có tương lai rất tốt, ít nhất 10 năm tới. Lý do: (1) Hệ thống core banking chạy Java, khó thay thế — chi phí migration cực lớn; (2) Ngân hàng Việt Nam đang chuyển đổi số rất mạnh (VPBank, Techcombank, MB… đều tuyển nhiều); (3) Mức lương Java Senior banking tương đương hoặc cao hơn AI/Data ở cùng cấp. AI/Data thì hot nhưng cạnh tranh khốc liệt, yêu cầu toán học cao. Lời khuyên: GIAO THOA — ở lại Java nhưng học thêm AI để làm AI Engineer in Banking (fraud detection, credit scoring, GenAI chatbot) — đó là xu hướng đang trả lương cao nhất.
Làm ở VPBank có khác gì so với công ty product công nghệ (Tiki, Shopee)?
Khác khá nhiều: (1) Văn hóa: VPBank có tính hierarchy cao hơn, quy trình chuẩn ngân hàng, nhiều compliance; Product tech thì flat, agile hơn; (2) Tốc độ release: Banking chậm hơn nhiều vì phải qua security review, compliance check, UAT kỹ — một feature có thể mất 2-3 tháng thay vì 2 tuần; (3) Workload: Có thể có on-call, đặc biệt khi release lớn hoặc có sự cố; (4) Lương: VPBank competitive, thường cao hơn startup, có thể ngang Shopee/Tiki cấp senior; (5) Work-life balance: Banking ổn định hơn, ít bị layoff hơn product tech. Nếu bạn thích sự ổn định và làm việc có impact, VPBank tốt. Nếu thích innovation tốc độ cao, có thể cân nhắc fintech như Momo, ZaloPay.
Tôi đang ở vị trí Senior 5 năm, muốn apply Tech Lead ở VPBank. Có nên "đi xuống" Senior trước không?
Không cần "đi xuống" — VPBank có chính sách internal mobility. Nếu bạn đang là Senior ở công ty khác với 8-10 năm kinh nghiệm, có thể apply trực tiếp vị trí Tech Lead. Tuy nhiên, vị trí Senior Java ở VPBank (TA172) là lựa chọn an toàn nếu: (1) bạn chưa có banking experience thực sự; (2) muốn vào VPBank để hiểu văn hóa rồi promote lên sau 6-12 tháng; (3) đang ở level 5-6 năm chưa sẵn sàng cho Tech Lead. Trong CV, ghi rõ ambition: 'Mục tiêu 1-2 năm tới đảm nhận vai trò Tech Lead' — VPBank thích ứng viên có growth mindset.
Phỏng vấn system design ở VPBank thường hỏi gì? Em sợ phần này nhất.
System design ở mức Senior thường hỏi 3-4 dạng: (1) Payment/Transfer: Thiết kế hệ thống chuyển tiền, xử lý concurrency, idempotency, double-spending; (2) Notification: Push notification service cho hàng triệu user; (3) Core Banking module: Account management, ledger system; (4) Fraud detection: Real-time risk scoring. Để chuẩn bị: (a) Học khung trả lời: Requirements → Capacity Estimation → High-level Design → Database Schema → API Design → Deep Dive → Trade-offs; (b) Ôn 10 case study phổ biến trong System Design Interview (Alex Xu); (c) Tập vẽ trên giấy A4 trong 30-45 phút; (d) Quan trọng nhất: communicate rõ ràng với interviewer, đừng im lặng suy nghĩ quá lâu. Senior không cần design hoàn hảo, cần thấy tư duy có hệ thống và biết đánh đổi.