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
OCB

IT - Front-End Developer (Angular) – Middle to Senior Level

Hồ Chí Minh Công nghệ thông tin
Nhân viên/Chuyên viên Thỏa thuận

Mô tả công việc

  •  Bachelor’s degree in Computer Science, Information Technology, or related field.
  • 3+ years of experience in front-end development with strong expertise in Angular (version 19 or higher).
  • Strong knowledge of HTML5, CSS3, JavaScript (ES6+) and TypeScript.
  • Experience with Angular, MFE, Nx, Angular Material, NgRx, and RxJS, DDD.
  • Proficiency in building modular, reusable components and managing application state.
  • Strong experience in building and managing reactive forms, including complex form scenarios.
  • Proficient in version control systems (Git).
  • Familiarity with Agile/Scrum methodologies and full SDLC.

Yêu cầu ứng viên

  •  Bachelor’s degree in Computer Science, Information Technology, or related field.
  • 3+ years of experience in front-end development with strong expertise in Angular (version 19 or higher).
  • Strong knowledge of HTML5, CSS3, JavaScript (ES6+) and TypeScript.
  • Experience with Angular, MFE, Nx, Angular Material, NgRx, and RxJS, DDD.
  • Proficiency in building modular, reusable components and managing application state.
  • Strong experience in building and managing reactive forms, including complex form scenarios.
  • Proficient in version control systems (Git).
  • Familiarity with Agile/Scrum methodologies and full SDLC.

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

📊 Phân tích kỹ năng — IT Front-End Developer (Angular) Middle/Senior tại OCB

🔧 Hard Skills (Kỹ năng cứng) — Bắt buộc phải có

Nhóm kỹ năng Yêu cầu cụ thể Mức độ ưu tiên
Framework chính Angular 19+ (standalone components, signals, new control flow) ⭐⭐⭐⭐⭐
Ngôn ngữ nền tảng TypeScript (nâng cao), JavaScript ES6+ ⭐⭐⭐⭐⭐
Web cơ bản HTML5, CSS3, Responsive Design ⭐⭐⭐⭐
State Management NgRx (Store, Effects, Entity) hoặc RxJS-based patterns ⭐⭐⭐⭐⭐
Reactive Programming RxJS (Observables, Subjects, operators nâng cao) ⭐⭐⭐⭐⭐
Kiến trúc MFE (Micro Frontends), Nx monorepo, DDD ⭐⭐⭐⭐⭐
UI Library Angular Material ⭐⭐⭐⭐
Forms Reactive Forms phức tạp (cross-field validation, dynamic forms) ⭐⭐⭐⭐⭐
Version Control Git (branching strategy: GitFlow, trunk-based) ⭐⭐⭐⭐
Quy trình Agile/Scrum, Full SDLC ⭐⭐⭐⭐

🌟 Soft Skills (Kỹ năng mềm) — Phân biệt Middle vs Senior

Middle Level (3-4 năm):

  • Tự chủ trong task được giao
  • Code review cơ bản
  • Giao tiếp tốt với team
  • Estimate chính xác task size

Senior Level (5+ năm):

  • Thiết kế kiến trúc module/hệ thống
  • Mentor junior/middle
  • Đề xuất tech stack, pattern mới
  • Làm việc trực tiếp với BA, PM, backend team
  • Xử lý technical debt, refactoring lớn

🏦 Đặc thù ngân hàng — Kỹ năng "ẩn" cần biết

  • Bảo mật: XSS, CSRF, OWASP Top 10 (đặc biệt trong app banking)
  • Performance: Lazy loading, OnPush strategy, bundle optimization
  • Accessibility (a11y): WCAG 2.1 — quan trọng với app tài chính
  • I18n: Đa ngữ cho sản phẩm ngân hàng
  • Testing: Unit test (Jest/Karma), E2E (Cypress/Playwright) — banks yêu cầu cao
  • Familiarity với banking domain: Biết các khái niệm KYC, eKYC, payment gateway, core banking

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

  • ✅ Microsoft Certified: Azure Fundamentals (nếu cloud Azure)
  • ✅ AWS Certified Developer (nếu cloud AWS)
  • ✅ Scrum Master/Product Owner (cho Agile)
  • ✅ Certified Kubernetes Application Developer (nếu liên quan deploy)

📈 Bảng so sánh Middle vs Senior

Tiêu chí Middle (3-5 năm) Senior (5-8+ năm)
Angular Dùng thành thạo, biết patterns Hiểu sâu internals, build patterns riêng
NgRx Implement theo hướng dẫn Thiết kế state architecture
MFE/Nx Làm việc trong setup có sẵn Setup, quyết định kiến trúc
DDD Áp dụng bounded context Thiết kế domain model, ubiquitous language
Decision making Đưa ra giải pháp kỹ thuật Quyết định tech stack, kiến trúc
Scope 1-2 modules Toàn bộ hệ thống/product line

Chuẩn bị phỏng vấn

🎯 Hướng dẫn phỏng vấn IT Front-End Developer (Angular) tại OCB

📋 Quy trình tuyển dụng dự kiến (3-4 vòng)

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

  • Giới thiệu bản thân, kinh nghiệm
  • Tại sao chọn OCB? Tại sao banking sector?
  • Mức lương mong muốn, thời gian onboard
  • Check basic: bằng cấp, lý do nghỉ việc cũ

Vòng 2: Technical Test (60-90 phút)

  • Có thể bao gồm:
  • Online coding test (HackerRank/CoderPad style)
  • Take-home assignment (xây dựng mini Angular app)
  • Live coding session

Vòng 3: Technical Interview sâu (90-120 phút)

  • 1-2 Senior/Lead Developer hỏi
  • Câu hỏi về Angular, TypeScript, RxJS, NgRx
  • System design cho front-end
  • Thảo luận về project đã làm

Vòng 4: Managerial/Architecture Interview (60 phút)

  • Tech Lead / Engineering Manager
  • Soft skills, leadership, cách giải quyết conflict
  • Architecture decision cho MFE, DDD
  • Cultural fit với ngân hàng

❓ Câu hỏi phỏng vấn hay gặp

Angular Core:

  • Sự khác biệt giữa Angular 17/18/19 và các version trước? (standalone, signals, control flow)
  • Change Detection hoạt động thế nào? Zone.js vs Signals?
  • Lazy loading module và standalone components?
  • ViewChild vs ContentChild?
  • Lifecycle hooks — thứ tự và khi nào dùng?

TypeScript:

  • Generic types, conditional types
  • Utility types: Partial, Required, Pick, Omit
  • Decorators trong Angular
  • Type narrowing, type guards

RxJS:

  • Hot vs Cold Observable
  • switchMap vs mergeMap vs concatMap vs exhaustMap — khi nào dùng?
  • Subject variants (BehaviorSubject, ReplaySubject, AsyncSubject)
  • Memory leak prevention (takeUntil, async pipe)

NgRx:

  • Action, Reducer, Effect, Selector
  • Khi nào nên dùng NgRx? Khi nào nên dùng Signal-based state?
  • Entity adapter là gì?
  • Effects error handling

Architecture (MFE, Nx, DDD):

  • Module Federation hoạt động thế nào?
  • Lợi ích của Nx monorepo?
  • DDD áp dụng vào front-end như thế nào?
  • Bounded context trong Angular?

Banking domain:

  • Bạn hiểu gì về core banking system?
  • Làm sao đảm bảo performance cho form nhập liệu phức tạp (như mở tài khoản, đăng ký khoản vay)?
  • Security considerations cho financial app?

Behavioral:

  • Kể về lần refactor code phức tạp nhất?
  • Conflict với team member về tech stack?
  • Cách mentor junior?
  • Tại sao chọn Angular thay vì React/Vue?

💡 Tips chuẩn bị

1. Ôn lại project cá nhân: Chuẩn bị 2-3 project showcase, biết rõ quyết định kỹ thuật
2. Whiteboard practice: Tập vẽ architecture diagram
3. Đọc về OCB: Sản phẩm OCB Omni, OCB iWealth, số hóa
4. Chuẩn bị câu hỏi cho họ:

  • Tech stack hiện tại của team?
  • Codebase size, bao nhiêu frontend devs?
  • CI/CD pipeline?
  • Tech debt chính hiện tại?

👔 Dress Code

  • Vòng HR: Smart casual
  • Vòng Technical: Business casual (áo sơ mi, quần vải, không cần vest)
  • Vòng Manager: Business formal (áo sơ mi + vest là lý tưởng, đặc biệt ngân hàng khá formal)
  • Gọn gàng, sạch sẽ, thể hiện sự chuyên nghiệp

Lộ trình ôn thi

📚 Lộ trình ôn tập 1-2 tuần cho vị trí Angular Dev tại OCB

🗓️ Tuần 1: Nền tảng & Modern Angular

Ngày 1-2: Modern Angular (Angular 17-19)

  • Standalone Components (Angular 14+)
  • Signals (Angular 16+): signal(), computed(), effect()
  • New Control Flow: @if, @for, @switch (Angular 17+)
  • defer blocks (Angular 17+)
  • Tài liệu: angular.dev chính thức, blog Angular team

Ngày 3: TypeScript nâng cao

  • Advanced types: Union, Intersection, Mapped, Conditional types
  • Template literal types
  • Decorators deep dive
  • Generic constraints
  • Tài liệu: TypeScript Handbook (typescriptlang.org)

Ngày 4-5: RxJS mastery

  • Marble diagrams
  • Hot/Cold Observable
  • Multicasting operators (share, shareReplay)
  • Error handling patterns
  • Higher-order observables
  • Tài liệu: rxjs.dev, "RxJS in Action" book

Ngày 6: NgRx

  • Setup với standalone API
  • Signals Store (mới trong NgRx 17+)
  • Effects patterns
  • Entity adapter
  • Best practices: feature-based structure

Ngày 7: Forms phức tạp

  • Reactive Forms deeply
  • Cross-field validation
  • Dynamic forms (FormArray)
  • Custom validators
  • Performance optimization cho large forms

🗓️ Tuần 2: Architecture & Banking context

Ngày 8-9: MFE & Nx

  • Module Federation concepts (Webpack 5)
  • Nx workspace setup
  • Nx generators, executors
  • Affected commands
  • Module Federation với Angular
  • Tài liệu: nx.dev, module-federation.io

Ngày 10: DDD cho Frontend

  • Bounded Context trong Angular
  • Aggregates, Entities, Value Objects
  • Domain Events
  • Anti-corruption layer
  • Áp dụng vào component design

Ngày 11: Performance & Testing

  • OnPush change detection
  • TrackBy trong @for
  • Bundle optimization (webpack-bundle-analyzer)
  • Unit test với Jest (ưu tiên Angular 19 dùng Jest thay Karma)
  • Cypress E2E basics

Ngày 12: Banking-specific knowledge

  • OWASP Top 10 cho front-end
  • Security headers (CSP, HSTS)
  • Encryption cơ bản (không lưu sensitive data ở FE)
  • PCI DSS awareness
  • Biết các sản phẩm OCB: OCB Omni, JCB cards, etc.

Ngày 13-14: Mock interview & Practice

  • Ôn lại các câu hỏi phỏng vấn
  • Practice whiteboarding
  • Review 2-3 project cá nhân chi tiết
  • Đọc tech blog OCB (nếu có), so sánh với Techcombank, MB, VPBank

📖 Tài liệu tham khảo chính

Tài liệu Link/Mục Ghi chú
Angular Official angular.dev Bắt buộc, đọc tutorial + guides
NgRx ngrx.io Đọc docs chính thức
TypeScript Handbook typescriptlang.org/docs Phần Advanced Types
Nx nx.dev/getting-started Đặc biệt Angular plugin
Angular Material material.angular.io UI components
RxJS rxjs.dev API reference + marble testing
"Angular in Action" Book by Jeremy Wilken Best for mid-level
"Pro Angular" Book by Adam Freeman Deep dive
Angular YouTube Angular channel, Decoded Frontend Video learning

🎯 Bài tập thực hành gợi ý

1. Xây dựng mini app banking với:

  • Login + 2FA flow
  • Dashboard accounts
  • Transfer form (reactive form phức tạp với validation chéo)
  • Transaction history

2. Setup Nx workspace với 2 MFE (host + remote)
3. Refactor 1 app cũ sang Standalone + Signals

Tư vấn nghề nghiệp

🚀 Lời khuyên sự nghiệp — Front-End Angular Developer

💰 Mức lương kỳ vọng (tham khảo thị trường Việt Nam 2024-2025)

Cấp bậc Kinh nghiệm Mức lương (VND/tháng) Ghi chú
Middle 3-5 năm 25 - 45 triệu Tùy công ty, ngân hàng thường cao hơn
Senior 5-8 năm 45 - 80 triệu Senior ở bank có thể tới 90 triệu
Lead/Staff 8-12 năm 70 - 130 triệu Tech Lead/Engineering Manager
Principal/Architect 12+ năm 120 - 200 triệu+ Hiếm, đặc biệt trong banking

Lưu ý: OCB là ngân hàng tư nhân lớn, mức lương thường cạnh tranh. Cộng thêm các phúc lợi: thưởng Tết (2-6 tháng lương), review lương 2 lần/năm, BHXH full, team building, học bổng chứng chỉ.

📈 Lộ trình thăng tiến

Horizontal (chuyên sâu kỹ thuật):
```
Middle → Senior → Staff Engineer → Principal Engineer → Distinguished Engineer
```

Vertical (quản lý):
```
Senior → Tech Lead → Engineering Manager → Director of Engineering → CTO
```

Cross-functional (architect):
```
Senior → Solution Architect → Enterprise Architect
```

🎯 Tại sao nên chọn ngân hàng (đặc biệt OCB)?

Ưu điểm:

  • Ổn định: Ngân hàng ít bị layoff hơn tech product
  • Lương tốt + thưởng Tết cao: Đặc thù ngành tài chính
  • Tech stack chuẩn: OCB đầu tư mạnh vào digital transformation
  • Scale lớn: Hàng triệu users, nhiều bài toán performance/security hay
  • Brand uy tín: CV đẹp cho tương lai
  • Học được domain banking: Kiến thức fintech quý giá

⚠️ Thách thức:

  • Quy trình phê duyệt có thể chậm hơn startup
  • Legacy system đôi khi phải tích hợp
  • Compliance nhiều (NHNN, SBV regulations)
  • Đôi khi cần work on-call cho production issues

🛠️ Kỹ năng cần phát triển thêm

Trong 6 tháng tới:
1. Cloud basics: AWS/Azure (cert là lợi thế)
2. CI/CD: GitHub Actions, Jenkins, GitLab CI
3. Docker & Kubernetes fundamentals
4. Backend cơ bản: Node.js, REST API, GraphQL
5. Observability: Datadog, Sentry, New Relic

Trong 1-2 năm tới (nếu muốn lên Senior/Lead):
1. System Design: Cả frontend và full-stack
2. Architecture patterns: Event-driven, CQRS, Micro-frontends
3. Team leadership: Mentoring, code review culture
4. Product thinking: Làm việc với PM, hiểu business value
5. English: Đọc docs, communicate với global team (nếu foreign bank)

🔄 Cơ hội chuyển ngang

Từ vị trí này có thể đi:

  • Fintech: MoMo, ZaloPay, VNPay, Timo
  • Big Tech: Google, Microsoft, Shopee, Grab
  • Foreign bank tại VN: HSBC, Standard Chartered, Citi
  • Consulting: FPT, TMA, KMS
  • Startup: Cơ hội equity + nhiều thử thách

💬 Lời khuyên thực tế

1. Đừng chỉ là "code monkey": Senior = giải quyết vấn đề, không chỉ viết code
2. Build portfolio: GitHub với 2-3 project showcase, đặc biệt banking/finance app
3. Networking: Tham gia cộng đồng Angular Vietnam, VN-Fintech
4. Đóng góp open source: Tăng uy tín, học từ code review
5. Đọc engineering blogs: Netflix Tech, Spotify, Booking.com, Stripe

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

Em mới ra trường, có nên apply vị trí này không khi yêu cầu 3+ năm kinh nghiệm?

Câu trả lời ngắn: Không nên. Vị trí này yêu cầu ít nhất 3 năm kinh nghiệm Angular thực chiến, không phải con số 'mềm'. Tuy nhiên em có thể:

1. Apply vị trí Junior/Fresher ở OCB hoặc công ty khác để tích lũy 2-3 năm
2. Nếu tự tin, vẫn có thể nộp CV và highlight các project cá nhân Angular, GitHub repo
3. Một số công ty vẫn phỏng vấn nếu CV ấn tượng dù thiếu năm kinh nghiệm

Lời khuyên thật lòng: Hãy dành 1-2 năm đầu xây dựng nền tảng vững, đừng vội vào vị trí quá tầm sẽ khó phát triển.

Mức lương thỏa thuận nghĩa là sao? Em nên đề xuất bao nhiêu?

"Thỏa thuận" nghĩa là lương sẽ được thương lượng sau khi phỏng vấn, không có con số cố định. Đây là chiến thuật phổ biến của nhà tuyển dụng để:

  • Tránh lộ range lương sớm
  • Xem ứng viên tự định giá bản thân
  • Có chỗ đàm phán

Mức đề xuất cho Middle/Senior Angular tại ngân hàng HCM (2024-2025):

  • Middle (3-5 năm): 30-45 triệu
  • Senior (5-8 năm): 50-80 triệu
  • Lead (8+ năm): 70-100 triệu

Mẹo: Khi HR hỏi, em nên đưa range rộng (ví dụ: 'Em mong muốn 45-60 triệu tùy phúc lợi'), đừng đưa 1 con số cứng. Đồng thời tìm hiểu mức lương trên ITviec, TopDev, Levels.fyi trước.

Angular 19 vừa ra, có cần thiết phải thành thạo version mới nhất không?

Câu trả lời ngắn: KHÔNG cần thành thạo 100%, nhưng CẦN biết các tính năng chính.

Lý do:

  • Phiên bản Angular 19 mới features chính: standalone API (đã có từ 14), signals (16+), new control flow (17+), defer (17+)
  • Nếu OCB dùng Angular 19, khả năng cao codebase cũng có các tính năng này
  • Tuy nhiên, nhiều dự án vẫn dùng Angular 16-18, kiến thức nền tảng vẫn áp dụng được

Hành động cụ thể:
1. Đọc Angular blog chính thức về Angular 19 (angular.dev/blog)
2. Hiểu Signals API (signal, computed, effect)
3. Biết cách dùng @if, @for, @switch (new control flow)
4. Practice standalone components

Nếu em thành thạo Angular 16-17 với signals, em sẽ catch up Angular 19 rất nhanh.

DDD trong Frontend là gì? Ngân hàng có thực sự dùng không hay chỉ 'màu mè'?

DDD (Domain-Driven Design) trong Frontend KHÔNG chỉ là buzzword, đặc biệt với ngân hàng. Ứng dụng thực tế:

1. Bounded Contexts: Tách frontend thành các module theo domain (Account context, Loan context, Payment context) — rất phù hợp với Micro Frontend
2. Domain Models: Component và service phản ánh đúng nghiệp vụ ngân hàng (Account, Transaction, Customer thay vì User, Item)
3. Ubiquitous Language: Code và business dùng chung ngôn ngữ (KYC, AML, IBAN, etc.)
4. Anti-Corruption Layer: Frontend chuyển đổi API của core banking sang ngôn ngữ UI-friendly

Ví dụ thực tế tại ngân hàng:

  • Module 'Loan Application' là 1 bounded context, có model riêng (LoanRequest, Collateral, ApprovalFlow)
  • Form mở tài khoản là 1 aggregate với nhiều value objects (Identity, Address, Signature)

Khi phỏng vấn, em nên trình bày DDD qua ví dụ thực tế trong project của mình thay vì định nghĩa hàn lâm. Nếu em chưa từng áp dụng, hãy đọc về 'Strategic DDD' và 'Tactical DDD' trên domainlanguage.com.

Em đang làm React, muốn chuyển sang Angular có khó không?

Chuyển từ React sang Angular là KHẢ THI nhưng có những khác biệt lớn cần lưu ý:

Điểm chung (dễ chuyển):

  • TypeScript
  • Component-based architecture
  • Hooks ≈ Angular lifecycle
  • JSX ≈ Angular templates (cú pháp khác nhaung tư duy giống)
  • State management concepts (Redux ≈ NgRx)

Khác biệt lớn (cần học):

  • Angular là framework full-optional, có CLI, dependency injection, modules/standalone
  • RxJS: Bắt buộc dùng nhiều, React không cần
  • TypeScript được dùng nghiêm ngặt hơn React
  • Angular có opinionated structure, React tự do hơn
  • Forms: Reactive Forms rất khác với Formik/React Hook Form

Lộ trình chuyển đổi (2-3 tháng):
1. Tháng 1: Học TypeScript nâng cao, RxJS cơ bản, Angular core (components, services, DI)
2. Tháng 2: Forms, Routing, HttpClient, RxJS nâng cao, NgRx
3. Tháng 3: MFE, Nx, DDD — theo yêu cầu của vị trí này

Lợi thế khi chuyển: Em sẽ hiểu sâu hơn về DI, kiến trúc rõ ràng, có thể cạnh tranh tốt hơn ở các công ty banking/enterprise.

Tại sao ngân hàng lại chọn Angular thay vì React? Có phải vì lý do gì đặc biệt?

Có nhiều lý do thực tế:

1. Enterprise-friendly: Angular có structure rõ ràng, opinionated — dễ maintain cho team lớn, ít dev turnover
2. TypeScript first: Bắt buộc từ đầu, ít bug runtime — quan trọng cho app tài chính
3. Long-term support: Google maintain, LTS policy rõ ràng
4. Built-in tools: CLI, testing, i18n, PWA — ít phải chọn thư viện
5. Scalability: Phù hợp với codebase lớn (OCB có hàng chục sản phẩm)
6. Talent pool tại VN: Angular dev có sẵn, training dễ

React phù hợp với:

  • Startup, MVP nhanh
  • UI phức tạp, animation
  • Ecosystem đa dạng

Nhưng với ngân hàng, sự ổn định và structure thường được ưu tiên hơn flexibility. Nhiều ngân hàng lớn ở VN (Techcombank, MB, VPBank, OCB) đều dùng Angular cho các sản phẩm core.

Take-home assignment thường kéo dài bao lâu và em nên làm thế nào để gây ấn tượng?

Take-home assignment cho vị trí Angular thường 4-8 giờ làm việc. Để gây ấn tượng:

Cấu trúc nộp bài:
1. README rõ ràng: Setup, run commands, giải thích kiến trúc
2. Commit history sạch: Chia commit theo feature, có message rõ ràng
3. Demo online: Deploy lên Vercel/Netlify, share link

Technical highlights nên có:

  • ✅ Standalone components (Angular 17+)
  • ✅ Signals cho state nếu phù hợp
  • ✅ Reactive Forms với validation
  • ✅ Lazy loading cho module lớn
  • ✅ Responsive design (mobile-first)
  • ✅ Loading states, error handling
  • ✅ Một chút animation (không quá nhiều)

KHÔNG NÊN:

  • ❌ Code comment quá nhiều (code phải self-document)
  • ❌ Over-engineering với feature không yêu cầu
  • ❌ UI quá cơ bản (thiếu polish)
  • ❌ Không có testing (1-2 unit test là đủ)

Bonus points:

  • Dockerfile
  • GitHub Actions CI/CD
  • Storybook (nếu có component library)
  • Web vitals report

Mẹo: Đọc kỹ yêu cầu, làm đủ và đúng, đừng làm thừa. 70% hoàn hảo > 120% cẩu thả.

Ngân hàng có yêu cầu cao về bảo mật không? Frontend dev cần biết những gì về security?

Bảo mật là YÊU CẦU CỐT LÕI khi làm FE cho ngân hàng. Bạn cần biết:

OWASP Top 10 cho Frontend:
1. XSS (Cross-Site Scripting): Angular tự động escape HTML, nhưng biết về [innerHTML] bypass
2. CSRF: Hiểu về token, SameSite cookies
3. Sensitive data exposure: Không log token, không lưu PII ở localStorage
4. Broken authentication: Hiểu JWT, OAuth2, OIDC basics
5. Insecure deserialization: Validate input kỹ

Best practices tại ngân hàng:

  • Không commit secret, API key lên repo
  • Dùng environment variables
  • HTTPS everywhere, HSTS
  • CSP headers (Content Security Policy)
  • Input validation client-side (UX) + server-side (security)
  • Sanitize mọi user input
  • Disable console.log ở production (main.ts)

Khi phỏng vấn, có thể hỏi:

  • 'Làm sao bạn lưu auth token an toàn?'
  • 'Xử lý sensitive form data như thế nào?'
  • 'Biết gì về PCI DSS compliance?'

Nếu chưa có kinh nghiệm banking, hãy đọc OWASP Top 10, thử làm 1 mini project với auth flow đúng chuẩn (HTTPS, HttpOnly cookies, JWT refresh).

OCB có đang tuyển nhiều không? Mức độ cạnh tranh như thế nào?

OCB là 1 trong những ngân hàng tư nhân chuyển đổi số mạnh nhất hiện nay, đặc biệt sau khi ra mắt OCB Omni. Họ đang tuyển khá nhiều FE/BE:

Mức độ cạnh tranh:

  • Cao hơn so với fintech startup
  • Thấp hơn so với Big Tech (Google, Shopee) hay FAANG
  • Tương đương Techcombank, MB Bank

Điểm cạnh tranh của ứng viên:

  • ✅ Có kinh nghiệm Angular + banking domain
  • ✅ Portfolio GitHub ấn tượng
  • ✅ Biết về MFE, Nx, DDD (theo JD)
  • ✅ Thành thạo RxJS, NgRx

Tips để nổi bật:
1. Tìm hiểu về OCB trước khi phỏng vấn (sản phẩm, tin tức gần đây)
2. Nếu có thể, kết nối với nhân viên OCB trên LinkedIn để hiểu culture
3. Chuẩn bị câu chuyện cá nhân gắn với ngân hàng/tài chính
4. Highlight được các project có tác động lớn (số user, performance improvement)

Theo quan sát, JD này thu hút nhiều ứng viên có kinh nghiệm 3-7 năm, nên đừng ngạc nhiên nếu quy trình kéo dài 2-4 tuần.

Nếu được nhận, em nên expect điều gì trong 3 tháng đầu tiên?

3 tháng đầu ở vị trí Angular Dev tại ngân hàng thường trải qua:

Tháng 1 — Onboarding:

  • Đọc tài liệu nội bộ (kiến trúc, coding convention, Git workflow)
  • Setup môi trường, clone codebase (có thể mất 2-3 ngày)
  • Hiểu quy trình release, CI/CD
  • Họp 1-1 với manager, team lead
  • Pair programming với senior
  • Task đầu tiên: thường là bug fix nhỏ hoặc simple feature

Tháng 2 — Tăng tốc:

  • Làm chủ 1-2 modules trong codebase
  • Bắt đầu code review cho người khác
  • Hiểu được domain ngân hàng (KYC, payment, account...)
  • Tham gia sprint planning, retrospective
  • Có thể được giao feature nhỏ độc lập

Tháng 3 — Độc lập:

  • Tự estimate và deliver feature trung bình
  • Đề xuất cải tiến code/architecture
  • Có thể mentor intern/fresher
  • Được đánh giá performance review

Lời khuyên:

  • Đừng ngại hỏi, đặc biệt về business logic
  • Ghi chú lại mọi thứ (decision, conventions)
  • Tìm hiểu 'tại sao' chứ không chỉ 'làm gì'
  • Xây dựng relationship với team, BA, QC
  • Đừng cố refactor ngay, tập trung hiểu code hiện tại trước

Expect có thể hơi overwhelming lúc đầu vì codebase banking thường lớn và có legacy, nhưng đừng nản!