messenger

Chat Mess

zalo

Chat Zalo

phone

Phone

Gọi ngay: 097.5151.777
messenger

Facebook

messenger

TikTok

Hỗ trợ tư vấn: 097.5151.777
ACB

TMO - iOS Engineer

Hội sở (Hồ Chí Minh) Quản lý Chuyển đổi - TMO
Thương lượng Hạn: 2026-12-31

Mô tả công việc

  • Role Overview

We are looking for an experienced iOS Engineer to develop secure native iOS Digital Banking experiences integrated with Backbase.

The role is part of a cross-functional Digital Banking Squad and works under the technical direction of the Squad Tech Lead while following engineering standards defined by the relevant Chapter.

  • Key Responsibilities
  • Develop secure native iOS Digital Banking journeys and reusable components.
  • Implement Backbase mobile capabilities and integrations following iOS Chapter standards.
  • Integrate with Backbase APIs, IAM/CIAM, biometric authentication, push notification, analytics, and bank services.
  • Apply Keychain/secure storage, network security, deep-linking, lifecycle, and mobile-security practices.
  • Support application hardening, anti-tamper/jailbreak controls, and secure release requirements.
  • Write unit/UI/integration tests and participate actively in code reviews.
  • Work closely with Tech Lead, UX/UI, Backend, QA, DevSecOps, Security, and IT BA.
  • BackbaseResponsibilities
  • Use Backbase standard capabilities first and apply customization only where justified.
  • Understand relevant Backbase APIs, services, journeys, extension points, and integration patterns.
  • Ensure implementations remain maintainable and compatible with future Backbase upgrades.
  • Support SIT, UAT, release, and production troubleshooting for Squad-owned capabilities.
  • Engineering Quality
  • Follow coding, Git, Pull Request, code review, testing, security, logging, and observability standards.
  • Produce clean, maintainable, testable code and appropriate technical documentation.
  • Participate in technical refinement, estimation, design discussions, and peer reviews.
  • Identify technical debt and raise technical risks early to the Tech Lead.
  • Required Technical Skills
  • Strong knowledge and hands-on experience with Swift.
  • Strong knowledge and hands-on experience with iOS SDK.
  • Strong knowledge and hands-on experience with SwiftUI / UIKit.
  • Strong knowledge and hands-on experience with Swift Concurrency.
  • Strong knowledge and hands-on experience with Xcode / Swift Package Manager.
  • Strong knowledge and hands-on experience with REST API integration.
  • Strong knowledge and hands-on experience with OAuth 2.0 / OpenID Connect.
  • Banking / Digital Banking Knowledge
  • Banking knowledge experience is preferred but may be developed through project onboarding for candidates with strong core engineering skills.
  • Understanding of Digital Banking concepts and customer journeys.
  • Knowledge of Accounts, Payments/Transfers, Cards, Customer/Party, or related banking domains is desirable.
  • Understanding of IAM/CIAM, authentication, authorization, MFA/FIDO, and entitlements is an advantage.
  • Experience in banking or another regulated industry is preferred.
  • BackbaseExperience
  • Backbase Digital Banking Platform experience is preferred but may be developed through project onboarding for candidates with strong core engineering skills.
  • Experience with Backbase APIs, services, journeys, or extensions is an advantage.
  • Experience delivering Backbase solutions in a banking environment is highly desirable.
  • Collaboration & Ways of Working
  • Work as part of a cross-functional Squad with shared ownership of delivery outcomes.

-

Nộp đơn ứng tuyển công việc này

Họ & tên bạn *

Địa chỉ email *

Số điện thoại *

+ Thông tin thêm

CV của bạn *
Click để chọn & tải lên CV của bạn

Nộp đơn ứng tuyển

Bỏ qua

-->

{
"@context": "http://schema.org",
"@type": "JobPosting",
"jobLocation" : {
"@type": "Place",
"address": {
"@type": "PostalAddress",
"addressLocality": "No address locality",
"addressRegion": "Hồ Chí Minh",
"streetAddress": "Hồng Bàng",
"postalCode": "0"
}
},
"datePosted":"2026-09-15",
"description":"

  • Role Overview

We are looking for an experienced iOS Engineer to develop secure native iOS Digital Banking experiences integrated with Backbase.

The role is part of a cross-functional Digital Banking Squad and works under the technical direction of the Squad Tech Lead while following engineering standards defined by the relevant Chapter.

  • Key Responsibilities
  • Develop secure native iOS Digital Banking journeys and reusable components.
  • Implement Backbase mobile capabilities and integrations following iOS Chapter standards.
  • Integrate with Backbase APIs, IAM/CIAM, biometric authentication, push notification, analytics, and bank services.
  • Apply Keychain/secure storage, network security, deep-linking, lifecycle, and mobile-security practices.
  • Support application hardening, anti-tamper/jailbreak controls, and secure release requirements.
  • Write unit/UI/integration tests and participate actively in code reviews.
  • Work closely with Tech Lead, UX/UI, Backend, QA, DevSecOps, Security, and IT BA.
  • BackbaseResponsibilities
  • Use Backbase standard capabilities first and apply customization only where justified.
  • Understand relevant Backbase APIs, services, journeys, extension points, and integration patterns.
  • Ensure implementations remain maintainable and compatible with future Backbase upgrades.
  • Support SIT, UAT, release, and production troubleshooting for Squad-owned capabilities.
  • Engineering Quality
  • Follow coding, Git, Pull Request, code review, testing, security, logging, and observability standards.
  • Produce clean, maintainable, testable code and appropriate technical documentation.
  • Participate in technical refinement, estimation, design discussions, and peer reviews.
  • Identify technical debt and raise technical risks early to the Tech Lead.
  • Required Technical Skills
  • Strong knowledge and hands-on experience with Swift.
  • Strong knowledge and hands-on experience with iOS SDK.
  • Strong knowledge and hands-on experience with SwiftUI / UIKit.
  • Strong knowledge and hands-on experience with Swift Concurrency.
  • Strong knowledge and hands-on experience with Xcode / Swift Package Manager.
  • Strong knowledge and hands-on experience with REST API integration.
  • Strong knowledge and hands-on experience with OAuth 2.0 / OpenID Connect.
  • Banking / Digital Banking Knowledge
  • Banking knowledge experience is preferred but may be developed through project onboarding for candidates with strong core engineering skills.
  • Understanding of Digital Banking concepts and customer journeys.
  • Knowledge of Accounts, Payments/Transfers, Cards, Customer/Party, or related banking domains is desirable.
  • Understanding of IAM/CIAM, authentication, authorization, MFA/FIDO, and entitlements is an advantage.
  • Experience in banking or another regulated industry is preferred.
  • BackbaseExperience
  • Backbase Digital Banking Platform experience is preferred but may be developed through project onboarding for candidates with strong core engineering skills.
  • Experience with Backbase APIs, services, journeys, or extensions is an advantage.
  • Experience delivering Backbase solutions in a banking environment is highly desirable.
  • Collaboration & Ways of Working
  • Work as part of a cross-functional Squad with shared ownership of delivery outcomes.

-

",
"employmentType":"Toàn thời gian",
"hiringOrganization": {
"@type": "Organization",
"name": "Ngân hàng Á Châu - ACB",
"sameAs" : "http://www.acbjobs.com.vn"
},
"identifier": {
"@type": "PropertyValue",
"name": "TMO - iOS Engineer",
"value": "55907"
},
"title": "TMO - iOS Engineer",
"validThrough":"2026-12-31"
}

Phân tích kỹ năng cần có

Phân tích kỹ năng cho vị trí TMO - iOS Engineer tại ACB

Đây là vị trí iOS Engineer trong đội ngũ phát triển Digital Banking của ACB, làm việc với nền tảng Backbase – một trong những platform ngân hàng số hàng đầu thế giới. Yêu cầu khá cao và chuyên sâu, không phải vị trí iOS dev thông thường.

🎯 Hard Skills bắt buộc (must-have)

Nhóm kỹ năng Chi tiết Mức độ yêu cầu
Ngôn ngữ Swift (5.9+), hiểu sâu về value type, protocol, generics, actor Bắt buộc mạnh
Framework UI SwiftUI & UIKit (cần biết cả hai vì app ngân hàng thường migration dần) Bắt buộc mạnh
Concurrency async/await, Task, Actor, structured concurrency, Combine Bắt buộc mạnh
Tooling Xcode, Swift Package Manager (SPM), Instruments, lldb Bắt buộc mạnh
Networking URLSession, REST API, JSON parsing, error handling, retry logic Bắt buộc mạnh
Auth/Security OAuth 2.0, OpenID Connect, JWT, certificate pinning, Keychain Bắt buộc mạnh
Testing Unit Test (XCTest), UI Test, Integration Test, snapshot test Bắt buộc
Git workflow Branching strategy, PR review, code review etiquette Bắt buộc

🔐 Kỹ năng Mobile Security (đặc thù ngân hàng)

Đây là phần phân biệt ứng viên iOS thường với iOS engineer ngân hàng:

  • Keychain Services – lưu trữ token, secret an toàn
  • Biometric Authentication – Face ID, Touch ID, LocalAuthentication framework
  • Jailbreak/Root Detection – phát hiện thiết bị bị jailbreak
  • Anti-tampering – ngăn chặn sửa đổi binary, debug
  • Certificate Pinning – chống MITM attack
  • Secure Storage – mã hóa dữ liệu nhạy cảm
  • Deep Linking – URL scheme an toàn, universal links
  • App Transport Security (ATS) – cấu hình bảo mật network

🏦 Kiến thức ngân hàng số (nên có)

Lĩnh vực Nội dung cần nắm
Digital Banking concepts Customer journey, omni-channel, open banking
Banking domains Accounts, Payments/Transfers, Cards, Customer/Party
IAM/CIAM Identity & Access Management, Customer Identity
Authentication nâng cao MFA, FIDO2, WebAuthn, OTP, soft token
Compliance PCI-DSS, PSD2 (chuẩn châu Âu), NHNN quy định

🛠️ Backbase Platform (ưu tiên nhưng có thể học)

Backbase là nền tảng Digital Banking Platform phổ biến tại nhiều ngân hàng lớn ở Việt Nam và châu Á. Ứng viên không cần biết trước nhưng cần:

  • Hiểu khái niệm widget-based architecture của Backbase
  • Biết cách đọc API docs của Backbase
  • Sẵn sàng học qua onboarding

🤝 Soft Skills quan trọng

  • Collaboration trong Squad model – Squad ở đây theo mô hình Spotify, làm việc cross-functional
  • Communication – phải nói chuyện với Tech Lead, BA, UX, Security, Backend
  • Ownership – tự chịu trách nhiệm về feature của mình
  • Proactive – chủ động raise technical risk, technical debt
  • Tiếng Anh – JD viết 100% bằng tiếng Anh → ngân hàng này yêu cầu tiếng Anh tốt

📜 Chứng chỉ gợi ý (không bắt buộc nhưng có lợi)

  • Apple Certified – khó kiếm nhưng nếu có là điểm cộng
  • CSSLP / CISSP – chứng chỉ security (nếu muốn theo hướng mobile security)
  • AWS/GCP Cloud – hiểu biết về cloud hỗ trợ cho DevSecOps
  • SAFe / Scrum – chứng chỉ Agile (Squad thường chạy Scrum)

📊 Bảng so sánh iOS Engineer thường vs iOS Engineer ngân hàng

Tiêu chí iOS Dev thường iOS Dev ngân hàng (ACB)
Tốc độ release 1-2 tuần/sprint 4-8 tuần/release (có compliance)
Bảo mật Standard best practice Rất cao, nhiều quy định NHNN
UI Framework SwiftUI mới Mix SwiftUI + UIKit
Domain knowledge Không cần Accounts, Payments, Cards...
Testing Unit + UI test Unit + UI + Integration + Security test
Code review Bình thường Kỹ lưỡng + security review
Mức lương Thấp hơn 10-20% Cao hơn do đặc thù

---

Lưu ý quan trọng

> Vị trí này không phù hợp với iOS dev mới ra trường chỉ có 1-2 năm kinh nghiệm làm app thương mại điện tử hoặc mạng xã hội. JD yêu cầu "strong knowledge and hands-on experience" ở nhiều mảng chuyên sâu → cần tối thiểu 3-5 năm kinh nghiệm iOS thực chiến, lý tưởng là 5+ năm và từng làm fintech/banking.

Chuẩn bị phỏng vấn

Hướng dẫn phỏng vấn vị trí TMO - iOS Engineer tại ACB

Quy trình phỏng vấn ngân hàng thường kéo dài hơn công ty product thông thường, có thể từ 3-5 vòng. Dưới đây là phỏng đoán quy trình dựa trên vị trí và phòng ban (TMO - Quản lý Chuyển đổi):

📋 Quy trình phỏng vấn dự kiến

Vòng 1: HR Screen (30-45 phút)

  • Giới thiệu bản thân, kinh nghiệm
  • Lý do ứng tuyển ACB
  • Mức lương mong muốn
  • Thời gian có thể bắt đầu
  • Có thể có bài test tiếng Anh

Vòng 2: Technical Test (1-2 giờ)

  • Có thể làm tại nhà hoặc online test
  • Bài test thường gồm: Swift coding, algorithm, iOS-specific, có thể có phần mobile security

Vòng 3: Technical Interview với Squad Tech Lead (1.5-2 giờ)

  • Live coding (Pair programming)
  • Hỏi sâu về Swift, iOS architecture
  • Hỏi về dự án đã làm, giải thích quyết định kỹ thuật
  • System design cho mobile

Vòng 4: Interview với Chapter Lead / Engineering Manager (1 giờ)

  • Hỏi về coding standards, best practices
  • Hỏi về cách làm việc trong Squad
  • Có thể có case study về banking

Vòng 5: Final Interview với Head of TMO / Director (45-60 phút)

  • Cultural fit
  • Tầm nhìn nghề nghiệp
  • Đàm phán lương

💻 Câu hỏi kỹ thuật hay gặp

Vòng Technical Interview

Swift cơ bản & nâng cao:
1. `struct` vs `class` khác nhau như thế nào? Khi nào nên dùng cái nào?
2. Giải thích `weak`, `unowned`, `strong` reference. Memory leak xảy ra khi nào?
3. Protocol vs Abstract class trong Swift?
4. `async/await` hoạt động như thế nào? Actor giải quyết vấn đề gì?
5. `throws` vs `Result` type – khi nào dùng cái nào?
6. Generics trong Swift – ví dụ thực tế?
7. Property wrapper là gì? `@State`, `@Binding`, `@EnvironmentObject` khác nhau thế nào?
8. `Sendable` và `@MainActor` dùng để làm gì?

iOS Architecture:
1. MVC, MVP, MVVM, VIPER, Clean Architecture – bạn chọn cái nào? Tại sao?
2. Coordinator pattern là gì? Tại sao cần?
3. Dependency Injection trong iOS – cách implement?
4. Module hóa app ngân hàng thế nào để scale?
5. Sự khác biệt giữa SwiftUI lifecycle và UIKit lifecycle?
6. Khi nào nên dùng NavigationStack vs NavigationView trong SwiftUI?

Concurrency & Performance:
1. Main thread blocking – cách phát hiện và xử lý?
2. Thread-safe dictionary trong Swift?
3. GCD vs OperationQueue vs async/await?
4. Làm thế nào để cancel một task đang chạy?
5. Khi nào nên dùng background queue vs main queue?

Networking & Security:
1. Implement OAuth 2.0 flow trong iOS app?
2. Certificate Pinning là gì? Implement thế nào?
3. Secure storage cho token – so sánh Keychain vs UserDefaults?
4. JWT vs session token – ưu nhược điểm?
5. Phát hiện jailbreak device – các kỹ thuật phổ biến?
6. Làm sao chống replay attack trong mobile banking?

Testing:
1. Unit test cho ViewModel trong MVVM?
2. Mock network layer thế nào?
3. UI test có cần thiết không? Khi nào nên viết?
4. TDD vs BDD trong iOS?
5. Code coverage bao nhiêu là đủ cho banking app?

Vòng System Design (Mobile)

Câu hỏi mẫu: "Thiết kế chức năng chuyển tiền trong app ngân hàng ACB"

Các điểm nên cover:

  • UI Layer: Form input, validation real-time, OTP flow
  • State management: Loading, success, error states
  • Networking: API call, retry, timeout, error handling
  • Security: Token, certificate pinning, OTP expiry
  • Offline: Cache transaction history, sync khi online
  • Logging & Analytics: Track user journey
  • Edge cases: Mất mạng, timeout, double-submit, session expired

🎯 Câu hỏi Behavioral hay gặp

1. Kể về một dự án iOS phức tạp nhất bạn đã làm. Vai trò của bạn?
2. Bạn đã xử lý memory leak như thế nào trong production app?
3. Có khi nào bạn disagree với Tech Lead về giải pháp kỹ thuật không? Xử lý ra sao?
4. Làm sao bạn cân bằng giữa deadline và code quality?
5. Bạn đã đóng góp gì cho cộng đồng open source?
6. Tại sao bạn muốn làm việc ở ngân hàng thay vì startup?

👔 Dress Code

  • Vòng HR + Final: Business formal (sơ mi, quần tây, giày tây)
  • Vòng Technical: Smart casual (áo polo hoặc sơ mi, quần tây, không cần vest)
  • Lưu ý: Ngân hàng văn hóa khá formal, không nên mặc quá casual như đi startup

💡 Tips chuẩn bị

1. Chuẩn bị portfolio iOS apps – link App Store hoặc GitHub
2. Ôn lại kinh nghiệm với Swift Concurrency – đây là điểm hay bị hỏi
3. Đọc trước về Backbase – hiểu Digital Banking Platform là gì
4. Chuẩn bị câu hỏi cho interviewer – thể hiện sự quan tâm
5. Tiếng Anh – vì JD bằng tiếng Anh, có thể một số vòng phỏng vấn bằng tiếng Anh
6. Tìm hiểu về ACB – chiến lược chuyển đổi số, sản phẩm ACB One, ACB Plus

Lộ trình ôn thi

Lộ trình ôn tập 2 tuần cho vị trí TMO - iOS Engineer tại ACB

📅 Tuần 1: Nền tảng iOS & Swift nâng cao

Ngày 1-2: Swift Language Deep Dive
  • Tài liệu: "The Swift Programming Language" (Apple官方)
  • Trọng tâm:
  • Optional, Closure, Generics, Protocol
  • Memory management (ARC, weak/unowned)
  • Error handling (throws, Result, async throws)
  • Bài tập: Implement 5 thuật toán bằng Swift dùng generics
  • Resource: Hacking with Swift (Paul Hudson) – miễn phí
Ngày 3-4: Swift Concurrency
  • Tài liệu: "Concurrency in Swift" – Apple官方WWDC videos
  • Trọng tâm:
  • async/await syntax
  • Task, TaskGroup, AsyncSequence
  • Actor, @MainActor, global actor
  • Sendable protocol
  • Structured concurrency vs unstructured
  • Bài tập: Refactor một callback-based function sang async/await
  • WWDC videos nên xem:
  • "Meet async/await in Swift"
  • "Protect mutable state with Actors"
  • "Swift Concurrency: Update for Swift 5.9"
Ngày 5-6: SwiftUI + UIKit
  • Tài liệu: Apple SwiftUI Tutorials, Hacking with SwiftUI
  • Trọng tâm:
  • SwiftUI: View, State, Binding, Environment, ObservableObject vs @Observable
  • UIKit: UIViewController lifecycle, Auto Layout, Navigation
  • Khi nào dùng SwiftUI vs UIKit
  • Hosting UIKit trong SwiftUI và ngược lại (UIHostingController, UIViewRepresentable)
  • Bài tập: Build một màn hình danh sách với pull-to-refresh trong cả SwiftUI và UIKit
Ngày 7: Testing
  • Tài liệu: XCTest Documentation, Swift Testing (iOS 17+)
  • Trọng tâm:
  • Unit test với XCTest
  • Mocking với Protocol + Dependency Injection
  • UI test
  • Code coverage
  • Snapshot test (SnapshotTesting framework)

📅 Tuần 2: Banking, Security & System Design

Ngày 8-9: Mobile Security
  • Tài liệu:
  • OWASP Mobile Top 10
  • Apple Security Documentation
  • "iOS Application Security" – Mustafa Saad
  • Trọng tâm:
  • Keychain Services API
  • Certificate Pinning (TrustKit, Alamofire)
  • Biometric Authentication (LocalAuthentication)
  • Jailbreak detection techniques
  • Anti-debugging, anti-tampering
  • App Transport Security (ATS)
  • Bài tập: Implement OAuth 2.0 Authorization Code flow + PKCE cho mobile
Ngày 10-11: Networking & API Integration
  • Tài liệu:
  • URLSession documentation
  • "Architecting iOS Apps with SwiftUI + Combine + MVVM"
  • Trọng tâm:
  • RESTful API best practices
  • OAuth 2.0 (Authorization Code, Client Credentials, PKCE)
  • OpenID Connect
  • JWT (decode, verify, refresh)
  • Error handling và retry logic
  • Request signing
Ngày 12: Banking Domain Knowledge
  • Tài liệu:
  • Backbase documentation (public docs.backbase.com)
  • Tìm hiểu về ACB products (ACB One, ACB Plus)
  • Trọng tâm:
  • Customer journey trong digital banking
  • Accounts, Payments, Cards, Customer/Party domain
  • IAM/CIAM concepts
  • MFA, FIDO2, OTP flow
  • Open Banking, PSD2
  • Compliance: PCI-DSS, NHNN regulations
Ngày 13-14: System Design Practice & Mock Interview
  • Bài tập:
  • Thiết kế "màn hình chuyển tiền" trong app banking (1.5 giờ)
  • Thiết kế "màn hình đăng nhập" với MFA (1 giờ)
  • Thiết kế "onboarding flow cho khách hàng mới" (1.5 giờ)
  • Mock interview:
  • Nhờ bạn bè phỏng vấn thử, record lại
  • Hoặc dùng Pramp, interviewing.io

📚 Tài liệu tham khảo tổng hợp

Sách nên đọc:

  • "iOS Programming: The Big Nerd Ranch Guide" – foundational
  • "Swift in Depth" – TJ Usiyan
  • "Advanced Swift" – objc.io
  • "iOS App Security" – David Thiel
  • "Designing Data-Intensive Applications" (không phải iOS nhưng giúp system design)

WWDC videos quan trọng:

  • "What's new in Swift" (hàng năm)
  • "What's new in SwiftUI"
  • "What's new in UIKit"
  • "Build apps for the App Store"

Blog/Tech sites:

  • Hacking with Swift (hackingwithswift.com)
  • Swift by Sundell (swiftbysundell.com)
  • objc.io
  • raywenderlich.com (now Kodeco)

GitHub repos tham khảo:

  • pointfreeco (Point-Free) – functional programming
  • vapor (server-side Swift)
  • Alamofire (networking)
  • SnapKit (Auto Layout DSL)

🎯 Checklist ngày phỏng vấn

  • [ ] Code đã clean, không còn TODO trong CV projects
  • [ ] App portfolio đã update lên App Store / TestFlight
  • [ ] Đã đọc xong về Backbase (ít nhất overview)
  • [ ] Đã xem 3 video về Digital Banking trend ở VN
  • [ ] Đã chuẩn bị 5 câu hỏi thông minh để hỏi interviewer
  • [ ] Đã test laptop, mạng, môi trường cho online interview
  • [ ] Đã in CV (nếu offline) hoặc chia sẻ màn hình (online)
  • [ ] Đã ngủ đủ giấc và ăn sáng 😄

Tư vấn nghề nghiệp

Lời khuyên sự nghiệp cho vị trí iOS Engineer trong ngân hàng

🛤️ Lộ trình thăng tiến

```
Fresher/Junior (0-2 năm)
↓ iOS Engineer
Mid-level (2-4 năm) ────────────────────┐
↓ iOS Engineer │
Senior (4-7 năm) │ Có thể rẽ nhánh
↓ ↓
Tech Lead (7-10 năm) Squad Tech Lead
↓ ↓
Chapter Lead (8-12 năm) Engineering Manager
↓ ↓
Engineering Director / Head of Mobile
↓
CTO / VP Engineering
```

Tại ACB/TMO cụ thể:

  • iOS Engineer → Senior iOS Engineer → Squad Tech Lead → Chapter Lead (Mobile) → Head of Engineering
  • Hoặc rẽ nhánh sang Solution Architect, DevSecOps Lead, Product Manager kỹ thuật

💰 Mức lương kỳ vọng theo cấp bậc (ước lượng tham khảo)

> ⚠️ Lưu ý: Mức lương có thể thay đổi tùy ngân hàng và thời điểm. Đây chỉ là ước lượng dựa trên thị trường Việt Nam 2024-2025.

Cấp bậc Kinh nghiệm Mức lương (gross/tháng) Ghi chú
Fresher/Junior iOS 0-2 năm 15-25 triệu Thường làm outsource hoặc app nội bộ
Mid-level iOS 2-4 năm 25-45 triệu Có thể làm fintech
Senior iOS (banking) 4-7 năm 45-80 triệu Domain banking là điểm cộng lớn
Senior iOS (Backbase) 5-8 năm 60-100 triệu Backbase là skill hot, hiếm người
Squad Tech Lead 7-10 năm 80-150 triệu Quản lý 4-6 người
Chapter Lead / EM 10+ năm 120-200 triệu Quản lý 15-30 người

So sánh với các công ty khác:

  • ACB/TMO (ngân hàng nội địa top đầu): Mức lương tốt, thưởng Tết, ổn định
  • Tech startup (fintech): Có thể cao hơn 20-30% nhưng rủi ro cao hơn
  • Foreign bank / Fintech quốc tế tại VN: Có thể cao hơn 30-50% (MoMo, ZaloPay, Timo)
  • Outsource (FPT, TMA...): Thấp hơn 20-30% nhưng nhiều việc, đa dạng

📈 Kỹ năng cần phát triển thêm trong 6-12 tháng tới

1. Mobile Security chuyên sâu
  • OWASP MASVS (Mobile Application Security Verification Standard)
  • Học về cryptography cơ bản
  • Practice với các tool: MobSF, Frida, Burp Suite
  • Có thể thi CSSLP cert sau này
2. Architecture & Design Patterns
  • Clean Architecture (VIPER, RIBs)
  • Modular architecture cho app lớn
  • Coordinator pattern
  • Reactive programming với Combine + RxSwift
3. DevOps & CI/CD cho Mobile
  • Fastlane (build automation)
  • Bitrise, GitHub Actions, GitLab CI
  • Code signing & provisioning
  • Firebase App Distribution, TestFlight
4. Cross-platform knowledge (optional)
  • Flutter hoặc Kotlin Multiplatform
  • Không cần sâu nhưng nên biết để hiểu kiến trúc
5. Banking Domain
  • Đọc về open banking, PSD2
  • Hiểu về regulatory sandbox của NHNN
  • Tham gia cộng đồng fintech VN
6. Leadership Skills (nếu muốn thăng tiến)
  • Mentoring junior devs
  • Technical writing (blog, internal docs)
  • Public speaking (talk ở meetup, conference)
  • Project management cơ bản

🎓 Lời khuyên thực tế từ góc nhìn đàn anh

1. Đừng vào ngân hàng chỉ vì lương
Lương ngân hàng có thể cao nhưng quy trình chậm, release cycle dài, công nghệ đôi khi lạc hậu hơn startup. Vào ngân hàng vì muốn học domain, muốn ổn định lâu dài, muốn có sản phẩm impact tới hàng triệu người.

2. Backbase là "vàng" trong CV
Không nhiều ngân hàng ở VN dùng Backbase (ACB là một trong số ít). Nếu có kinh nghiệm Backbase + iOS, bạn sẽ nằm trong nhóm rất ít người trên thị trường → cơ hội đàm phán lương rất tốt.

3. Học tiếng Anh thật tốt
JD viết 100% tiếng Anh → ACB/TMO chắc chắn dùng tiếng Anh trong communication nội bộ. Tiếng Anh tốt = cơ hội làm việc với team quốc tế Backbase (Hà Lan) = thăng tiến nhanh hơn.

4. Network trong ngành

  • Tham gia Vietnam iOS Developer Community trên Facebook
  • Đi iOS Meetup HCMC (thường ở The Coffee House hoặc VNG)
  • Follow các KOL: Bùi Văn Nguyện (iOS team lead nhiều công ty), Lê Vinh (Tiki)...
  • Đọc blog của Sun Asterisk, Tiki, VNG về mobile engineering

5. Side project để không bị lạc hậu
Làm ngân hàng 5 năm nếu không làm side project sẽ rất khó chuyển việc. Nên:

  • Maintain 1 open source repo trên GitHub
  • Viết blog kỹ thuật 2-3 bài/năm
  • Build 1 app cá nhân để thử nghiệm công nghệ mới

6. Cân nhắc timing ứng tuyển
ACB/TMO thường tuyển theo đợt dự án (mỗi khi launch feature mới). Nên follow trang tuyển dụng ACB + LinkedIn HR của TMO để nắm đúng thời điểm.

Câu hỏi thường gặp

Em mới ra trường, có 6 tháng thực tập iOS, có nên apply vị trí này không?

Theo kinh nghiệm của anh, vị trí này không phù hợp với em đâu. JD yêu cầu 'strong knowledge and hands-on experience' ở 7-8 mảng kỹ thuật khác nhau (Swift, SwiftUI/UIKit, Swift Concurrency, Xcode/SPM, REST API, OAuth 2.0) - đây là yêu cầu cho người ít nhất 3-5 năm kinh nghiệm. Em mới ra trường nên apply các vị trí Junior iOS Engineer trước (ở công ty outsource hoặc startup), tích lũy 2-3 năm rồi hãy quay lại ứng tuyển vị trí tương tự. Nếu em cố apply bây giờ, nhiều khả năng HR sẽ lọc CV ở vòng đầu vì không match yêu cầu.

Tôi là iOS dev 4 năm ở công ty ecommerce, muốn chuyển sang làm banking. Cần chuẩn bị gì?

Anh thấy bạn đã có nền tảng tốt rồi, 4 năm ecommerce là đủ để bắt đầu. Cần bổ sung thêm:

1. Mobile Security: Đây là khác biệt lớn nhất. Ecommerce chỉ cần HTTPS cơ bản, banking cần certificate pinning, jailbreak detection, secure storage, OTP flow. Đọc OWASP MASVS và làm một POC về Keychain + certificate pinning.

2. OAuth 2.0 / OpenID Connect: Bạn đã làm REST API nhưng chưa chắc đã làm OAuth flow đầy đủ. Tìm hiểu Authorization Code flow với PKCE - đây là chuẩn cho mobile banking.

3. Domain knowledge: Hiểu cơ bản về Accounts, Payments, Cards, Customer journey trong banking. Đọc white paper của Backbase.

4. Backbase (bonus): Nếu có thời gian, làm một pet project với Backbase trial account.

5. Tiếng Anh: ACB yêu cầu tiếng Anh tốt vì JD viết 100% bằng tiếng Anh.

Thời gian chuẩn bị khoảng 2-3 tháng là đủ tự tin apply. Lương có thể nhảy 30-50% so với ecommerce vì banking domain premium hơn.

Mức lương cho vị trí Senior iOS Engineer tại ngân hàng lớn ở HCM khoảng bao nhiêu?

Theo quan sát của anh trên thị trường hiện tại (2024-2025), mức lương Senior iOS Engineer (5-7 năm) tại các ngân hàng lớn ở TP.HCM dao động như sau:

  • Big 4 ngân hàng (Vietcombank, VietinBank, BIDV, Agribank): 35-55 triệu - thường thấp hơn nhưng ổn định, chế độ tốt
  • Top ngân hàng tư nhân (ACB, Techcombank, MBBank, VPBank): 50-80 triệu - cạnh tranh cao, dự án nhiều
  • Ngân hàng quốc tế / Fintech (HSBC, Standard Chartered, Timo, Cake): 70-120 triệu - cao nhất nhưng yêu cầu tiếng Anh tốt
  • Với Backbase experience: Cộng thêm 10-20 triệu vì skill này hiếm

⚠️ Lưu ý: Đây chỉ là ước lượng, mức lương thực tế còn phụ thuộc vào thời điểm, năng lực thực tế, và khả năng đàm phán. ACB thường thuộc nhóm tốt trong top tư nhân. Với vị trí này, bạn có thể kỳ vọng 60-90 triệu nếu có 5+ năm + Backbase.

Backbase là gì? Có cần học trước khi apply không?

Backbase là một nền tảng Digital Banking Platform của Hà Lan, được nhiều ngân hàng lớn trên thế giới và Việt Nam sử dụng (trong đó có ACB). Backbase cung cấp:

  • Backend: Orchestration engine, APIs, services
  • Web: Portal cho nhân viên ngân hàng
  • Mobile: iOS/Android SDK để build app ngân hàng

Về việc có cần học trước không: Theo JD, ACB nói rõ 'Backbase experience is preferred but may be developed through project onboarding'. Tức là không bắt buộc, nhưng nếu biết trước thì lợi thế lớn.

Nếu muốn học trước:

  • Đọc docs.backbase.com (có public docs)
  • Xem Backbase YouTube channel
  • Backbase có chương trình Backbase Academy miễn phí
  • Làm POC với Backbase trial

Tuy nhiên, theo kinh nghiệm, đa số ứng viên được hire sẽ được training trong 1-2 tháng onboarding. Nên tập trung vào core iOS skills trước, Backbase học sau cũng không muộn.

Làm việc trong TMO của ngân hàng có khác gì so với làm ở team product của startup fintech?

Khác khá nhiều đó em. Anh chia sẻ một số điểm chính:

TMO ngân hàng (như ACB):

  • Quy trình nặng về compliance, release chậm (1-3 tháng/feature)
  • Làm với vendor quốc tế (Backbase team ở Hà Lan) - có cơ hội học best practices quốc tế
  • Môi trường Squad model, làm việc cross-functional
  • Lương tốt, ổn định, đãi ngộ đầy đủ (bảo hiểm, thưởng Tết)
  • Tuy nhiên: bureaucracy nhiều, đôi khi phải chờ approval nhiều layer
  • Tech stack có thể chậm hơn 1-2 năm so với startup

Startup fintech (MoMo, ZaloPay, Timo...):

  • Release nhanh (1-2 tuần/feature), A/B test liên tục
  • Tự chủ nhiều hơn, ít quy trình
  • Tech stack hiện đại, cập nhật nhanh
  • Lương có thể cao hơn 20-30% nhưng không ổn định bằng
  • Áp lực cao, làm ngoài giờ nhiều
  • Cơ hội học full-stack, không chỉ iOS

Nên chọn cái nào? Phụ thuộc vào giai đoạn sự nghiệp. Mới ra trường thì startup fintech tốt để học nhanh. Sau 3-5 năm thì ngân hàng/TMO tốt để chuyên sâu domain và ổn định.

Ôn gì trong 1 tuần nếu phỏng vấn vào tuần sau?

Anh hiểu tâm lý gấp, đây là lộ trình 1 tuần khẩn cấp:

Ngày 1-2: Swift Core + Concurrency

  • Đọc lại value/reference type, optional, closure, generic
  • Tập trung vào async/await, Actor, Task - hay hỏi nhất
  • Làm 3-5 bài LeetCode easy bằng Swift

Ngày 3-4: iOS Architecture + UIKit/SwiftUI

  • Ôn MVVM, Coordinator pattern
  • Lifecycle của UIViewController
  • Navigation trong SwiftUI (NavigationStack, NavigationSplitView)

Ngày 5: Networking & Security

  • OAuth 2.0 flow vẽ ra giấy được
  • Keychain API cơ bản
  • Certificate pinning concept

Ngày 6: Banking Domain + Backbase

  • Đọc overview Backbase 2-3 giờ
  • Hiểu customer journey: login → check balance → transfer → logout
  • Biết các khái niệm: MFA, OTP, soft token

Ngày 7: Mock interview

  • Tự practice câu hỏi behavioral
  • Chuẩn bị câu hỏi cho interviewer
  • Review CV, chọn 2-3 dự án tự hào nhất để kể

Không kịp học sâu thì cũng đừng hoảng, tập trung vào fundamentals Swift + iOS architecture là đủ pass vòng technical. Good luck!

KPI của vị trí iOS Engineer trong ngân hàng đánh giá như thế nào?

KPI cho iOS Engineer ngân hàng khác với KPI cho sales hay BA đó em. Thường là:

KPI định lượng:

  • Số lượng story/task hoàn thành trong sprint
  • Code coverage đạt bao nhiêu % (thường yêu cầu >70-80% cho banking)
  • Số bug production gây ra (càng ít càng tốt)
  • Số PR reviewed
  • Uptime của app (thường 99.9%+)

KPI định tính:

  • Code quality (qua code review)
  • Khả năng collaboration trong Squad
  • Đóng góp vào documentation
  • Đề xuất cải tiến quy trình
  • Mentoring junior

Đặc thù banking:

  • Không có KPI về 'tăng user' hay 'tăng conversion' như startup
  • KPI là 'không có bug bảo mật', 'không có sự cố downtime', 'pass audit'
  • Áp lực compliance rất lớn - release phải qua security review

Thực tế thì với vị trí engineer, KPI không áp lực bằng sales, nhưng vẫn cần duy trì chất lượng ổn định.

Có nên học thêm Flutter/Kotlin để tăng cơ hội nghề nghiệp không?

Câu hỏi hay. Theo quan điểm của anh:

Nếu bạn muốn ở lại iOS specialist lâu dài: Không cần. Đào sâu Swift Concurrency, SwiftUI nâng cao, mobile security là đủ. Đừng dàn trải.

Nếu bạn muốn chuyển sang Tech Lead/Architect trong 3-5 năm: Nên học cơ bản Flutter hoặc Kotlin Multiplatform để hiểu cross-platform architecture, không cần master. Hiểu được điểm mạnh/yếu của native vs cross-platform sẽ giúp bạn đưa ra quyết định architecture đúng đắn.

Nếu bạn muốn chuyển sang Android team: Học Kotlin + Jetpack Compose. Tương tự như Swift nhưng cú pháp khác, không khó nếu đã biết iOS.

Nếu bạn muốn làm full-stack mobile (frontend + backend): Học thêm Node.js/Spring Boot + GraphQL. Nhưng đừng xao nhãng iOS, vì nó vẫn là nguồn cơm chính.

Lời khuyên: Tập trung vào iOS trước, đào sâu 1-2 năm nữa. Sau đó nếu muốn mở rộng thì học thêm, nhưng đừng để nó ảnh hưởng đến chuyên môn chính. Chuyên gia iOS + banking vẫn là hàng hiếm trên thị trường, đừng tự làm mình 'bình thường hóa' bằng cách học đủ thứ.