Chuyên viên Cao cấp Phát triển Phần mềm (40001157)
Mô tả công việc
Mục tiêu
Người đảm nhiệm vị trí triển khai thành công các giải pháp công nghệ cho các dự án của toàn hàng.
Trách nhiệm chính (1)
Phát triển phần mềm
- Xây dựng giao diện và giao diện người dùng cho các nền tảng kỹ thuật số của ngân hàng, đảm bảo giao diện kỹ thuật số liền mạch theo quan điểm của khách hàng.
- Chịu trách nhiệm về mã hướng tới người dùng của nền tảng kỹ thuật số và kiến trúc của trải nghiệm người dùng, hợp tác chặt chẽ với các nhà thiết kế để đưa khung hình dây từ phát triển đến phân phối
- Cộng tác với các CV phát triển back end và CV thiết kế UI/ UX để cải thiện khả năng sử dụng.
- Chủ động đưa ra các đề xuất và giải pháp hệ thống hóa để tác động đến thiết kế của nền tảng.
- Chịu trách nhiệm xác định cấu trúc và thiết kế của các trang web, tạo sự cân bằng giữa thiết kế chức năng và thẩm mỹ, đồng thời đảm bảo thiết kế web được tối ưu hóa cho các trang di động
- Duy trì và không ngừng cải tiến trang web được phát triển đồng thời tối ưu hóa ứng dụng để sử dụng ứng dụng trơn tru.
Mạng lưới tương tác - Quan hệ nội bộ
Các khối, đơn vị, chi nhánh/ Các công ty con của TCB
Mạng lưới tương tác - Quan hệ bên ngoài
Đối tác cung cấp dịch vụ chuyên nghiệp
Chân dung Thành công - Bằng cấp, Kinh nghiệm
Bằng cấp
- Bằng cử nhân về khoa học máy tính, kỹ thuật phần mềm hoặc công nghệ thông tin
Kinh nghiệm
- Tối thiểu 7 năm Kinh nghiệm với AngularJS
- Có kiến thức chuyên môn cao về HTML, CSS và viết mã tương thích với nhiều trình duyệt.
- Hiểu rõ về Kỹ thuật thao tác AJAX và JavaScript Dom
- Trải nghiệm với các dịch vụ RESTful
- Có kinh nghiệm về các công cụ xây dựng JavaScript như grunt hoặc gulp
- Chuyên gia trong bất kỳ một trong các khung JavaScript MV-VM / MVC hiện đại (AngularJS, JQuery, NodeJS, GruntJS)
- Quen thuộc với các khuôn khổ thử nghiệm (Ví dụ: Jasmine)
- Phần mềm ical khung chạy thử nghiệm (Ví dụ: Karma)
- Hiểu biết vững chắc về thiết kế và triển khai API
Trình độ ngoại ngữ
- Tiếng Anh, / hoặc theo quy định của TCB từng thời kỳ
Phân tích kỹ năng cần có
Phân tích kỹ năng — Chuyên viên Cao cấp Phát triển Phần mềm (Techcombank)
Tổng quan vị trí
Đây là vị trí Frontend Senior trong khối Công nghệ của Techcombank — tập trung vào xây dựng giao diện và trải nghiệm người dùng cho các nền tảng kỹ thuật số (internet banking, mobile banking, các cổng dịch vụ số). Yêu cầu tối thiểu 7 năm kinh nghiệm, mức "Cao cấp" thực chiến chứ không phải framework chỉ biết lý thuyết.
Bảng phân tích kỹ năng theo mức độ ưu tiên
| Nhóm kỹ năng | Kỹ năng cụ thể | Mức độ yêu cầu | Ghi chú |
|---|---|---|---|
| Frontend Core | AngularJS | Bắt buộc, ≥ 7 năm | Đây là yêu cầu cốt lõi — không thương lượng |
| Frontend Core | HTML5, CSS3, JavaScript (DOM, AJAX) | Bắt buộc, chuyên sâu | Viết mã tương thích nhiều trình duyệt |
| Kiến trúc | MV-VM / MVC frameworks | Bắt buộc | Cần hiểu sâu, không chỉ dùng qua loa |
| Build Tools | Grunt, Gulp | Cần thiết | Có thể học thêm Webpack nếu dự án migrate |
| API | RESTful services | Bắt buộc | Hiểu về design và triển khai |
| Testing | Jasmine (test framework), Karma (test runner) | Cần thiết | Unit test cho frontend |
| Mobile-first | Responsive Web Design | Cần thiết | Giao diện tối ưu cho mobile |
| Khác liên quan | jQuery, NodeJS, GruntJS | Có lợi | Điểm cộng khi phỏng vấn |
| Ngôn ngữ | Tiếng Anh giao tiếp | Bắt buộc | Đọc tài liệu, làm việc với vendor quốc tế |
Chứng chỉ & học thuật
- Bằng cử nhân ngành Khoa học Máy tính / Kỹ thuật Phần mềm / CNTT là điều kiện cứng.
- Chứng chỉ không bắt buộc nhưng rất có giá trị nếu có:
- AWS Certified Developer (liên quan đến cloud deployment)
- Google Mobile Web Specialist
- Microsoft Certified: Azure Developer Associate
- Các chứng chỉ về Angular/React (mặc dù JD ghi AngularJS, Techcombank đang migrate sang Angular mới và React)
Hard Skills cần rèn thêm nếu đang yếu
- TypeScript — hầu hết dự án Angular hiện đại dùng TS thay vì JS thuần.
- RxJS, NgRx — pattern reactive trong Angular, rất hay xuất hiện ở các hệ thống banking lớn.
- Webpack/Vite — công cụ build mới thay thế dần Grunt/Gulp.
- Cypress/Playwright — công cụ E2E testing hiện đại bổ sung cho Karma.
- Git workflow: GitFlow, trunk-based development, code review.
- CI/CD: Jenkins, GitLab CI, GitHub Actions.
Soft Skills được kỳ vọng ngầm
- Giao tiếp tốt với team backend và đội UI/UX (JD nêu rõ "hợp tác chặt chẽ").
- Tư duy chủ động đề xuất giải pháp ("Chủ động đưa ra các đề xuất").
- Cân bằng giữa thẩm mỹ và chức năng — phù hợp với môi trường ngân hàng vốn yêu cầu compliance chặt.
- Khả năng làm việc với vendor bên ngoài (JD có đề cập "đối tác cung cấp dịch vụ chuyên nghiệp").
Điểm đáng chú ý
- JD viết AngularJS (phiên bản cũ 1.x) — nếu bạn chỉ biết Angular (2+) thì cần học kỹ AngularJS legacy hoặc nói rõ kinh nghiệm tương đương.
- Yêu cầu Karma là dấu hiệu dự án AngularJS cũ — nếu dự án đã migrate, bạn nên tìm hiểu cả stack hiện đại.
- "Hiểu biết vững chắc về thiết kế và triển khai API" cho thấy bạn cần biết cả frontend lẫn cách backend expose API.
Chuẩn bị phỏng vấn
Hướng dẫn phỏng vấn — Chuyên viên Cao cấp Frontend (Techcombank)
Quy trình tuyển dụng dự kiến (Techcombank Technology)
Dựa trên quy trình tuyển dụng IT thường thấy ở Techcombank và các ngân hàng lớn tại Việt Nam:
| Vòng | Hình thức | Nội dung chính | Thời lượng |
|---|---|---|---|
| 1. HR Screen | Phone/Video | Xác nhận kinh nghiệm, mức lương, địa điểm, work permit | 20-30 phút |
| 2. Technical Round 1 | Online test hoặc phỏng vấn online | Coding test (live coding hoặc HackerRank) về JavaScript, Angular, thuật toán | 60-90 phút |
| 3. Technical Round 2 | Onsite/video | Phỏng vấn sâu với Tech Lead/Architect — hệ thống, kiến trúc, best practices | 60-90 phút |
| 4. Hiring Manager | Onsite | Phỏng vấn với quản lý trực tiếp — fit, định hướng, case study | 45-60 phút |
| 5. Final/HR | Onsite | Offer, đàm phán lương, phúc lợi, background check | 30 phút |
Câu hỏi kỹ thuật hay gặp (Frontend Senior)
Vòng Technical — JavaScript & AngularJS cốt lõi
- Phân biệt `var`, `let`, `const`? Cơ chế hoisting, scope chain?
- `==` vs `===` — khi nào nên dùng cái nào? Vấn đề coercion?
- Closures là gì? Cho ví dụ thực tế trong AngularJS controller/service?
- Promises vs Observables vs async/await — khi nào dùng gì?
- Event loop, microtask queue — giải thích output của một đoạn code async phức tạp.
- `$scope` vs `controllerAs` syntax trong AngularJS?
- `$digest` cycle và `$apply` — tại sao cần `$timeout` thay vì `setTimeout`?
- Two-way binding hoạt động thế nào trong AngularJS?
- Directive: `restrict`, `scope`, `link` vs `controller`, `transclude`?
- Phân biệt `service`, `factory`, `provider`?
Vòng Technical — Build & Architecture
- Webpack vs Grunt/Gulp — ưu nhược điểm, khi nào migrate?
- RESTful API design — status codes, idempotency, versioning?
- Module bundling, code splitting, lazy loading trong Angular?
- Tree shaking là gì?
- Cách tối ưu performance cho ứng dụng Angular lớn?
Vòng Technical — Testing
- Unit test với Jasmine — viết một ví dụ test cho service Angular?
- Karma configuration?
- E2E test với Protractor (AngularJS era) hoặc Cypress/Playwright (modern)?
- Test pyramid cho frontend?
Vòng System Design / Senior
- Thiết kế một trang dashboard ngân hàng hiển thị danh sách giao dịch, biểu đồ chi tiêu — bạn sẽ chọn kiến trúc thế nào?
- Xử lý real-time updates (giá cổ phiếu, tỷ giá) trên web?
- Security considerations khi build frontend ngân hàng: XSS, CSRF, CSP, OWASP?
Câu hỏi non-technical
- Tại sao muốn làm việc trong ngân hàng thay vì product company (fintech, e-commerce)?
- Bạn hiểu gì về Techcombank và chiến lược chuyển đổi số của họ?
- Xử lý conflict với team backend khi API không đáp ứng yêu cầu frontend?
- Bạn làm gì khi designer giao design "không thể code" trên mobile?
Tips chuẩn bị
1. Chuẩn bị portfolio dự án — đặc biệt là các dự án có UI phức tạp, tối ưu mobile, xử lý data lớn.
2. Ôn lại AngularJS 1.x dù bạn đang làm Angular 2+ — vì JD yêu cầu rõ ràng.
3. Tìm hiểu Techcombank: đọc báo chí về chiến lược "Đổi mới, sáng tạo" và các sản phẩm số (TCB iZiggo, TCB MyAgent, TCB Carbon Lens...).
4. Mang theo CV dạng in và laptop sẵn code demo nếu phỏng vấn onsite.
5. Hỏi ngược về tech stack migration, quy trình code review, on-call rotation.
Dress code
- Vòng HR/Technical: Smart casual — sơ mi có cổ, quần tây/Khaki, giày công sở. Không cần vest.
- Vòng Manager/Final: Business formal — vest + sơ mi, đặc biệt khi gặp senior management.
- Tránh đồ quá casual (áo thun, quần short) dù Techcombank vốn thoáng.
Lộ trình ôn thi
Lộ trình ôn tập 1-2 tuần cho vị trí Frontend Senior — Techcombank
Tuần 1: Nền tảng JavaScript & AngularJS
Ngày 1-2: JavaScript cốt lõi
- Scope, hoisting, closure, this keyword
- ES6+: arrow function, destructuring, spread/rest, template literals, modules
- Async: callback → Promise → async/await
- Array methods: map, filter, reduce, find, some, every
- Practice: Làm 20 bài trên CodeWars/JavaScript30 về các chủ đề trên
Ngày 3-4: AngularJS 1.x (chuyên sâu)
- Tài liệu: https://docs.angularjs.org (bản gốc, cũ nhưng đầy đủ)
- Sách: "Pro AngularJS" (Adam Freeman) — dành cho senior dev
- Tự build một mini SPA: danh sách sản phẩm, chi tiết, filter, sort
- Thực hành: directives, services, $http, $resource, custom filters, two-way binding với form
Ngày 5: AJAX & RESTful
- $http service, $q promise trong AngularJS
- Fetch API native vs $http
- REST verbs, status codes (200, 201, 400, 401, 403, 404, 500), idempotency
- Auth: Bearer token, refresh token flow, OAuth2 cơ bản
Ngày 6-7: Build Tools & Testing
- Grunt & Gulp cơ bản: Gruntfile.js, task pipeline, concat, minify, sass compile
- Jasmine: describe, it, expect, beforeEach, spy, mock
- Karma: chạy test cho AngularJS project, coverage report
Tuần 2: Nâng cao & Context Ngân hàng
Ngày 8-9: Modern Frontend bổ sung
- TypeScript cơ bản (types, interface, generic, decorator) — dù JD không yêu cầu, TS giúp hiểu code Angular hiện đại
- Webpack essentials: loader, plugin, code splitting
- So sánh AngularJS 1.x với Angular 2+/React — hiểu được cái nào dùng cho dự án nào
Ngày 10: Performance & UX
- Critical rendering path, FCP, LCP, CLS
- Lighthouse, Web Vitals
- Lazy loading, code splitting, image optimization
- A11y (Accessibility) cơ bản — quan trọng cho app ngân hàng phục vụ nhiều đối tượng
Ngày 11: Security trong Frontend Ngân hàng
- OWASP Top 10 cho web: XSS (reflected, stored, DOM-based), CSRF
- CSP headers, SameSite cookie
- Input sanitization, output encoding
- PCI-DSS cơ bản — tại sao ngân hàng chú trọng security
Ngày 12: Tìm hiểu Techcombank & Sản phẩm
- Đọc: techcombank.com, báo chí về TCB gần đây
- Trải nghiệm app TCB và internet banking
- Tìm hiểu team structure và tech stack (Tra cứu qua LinkedIn, mạng)
- Chuẩn bị 3 câu hỏi thông minh về công ty
Ngày 13-14: Mock interview
- Live coding: implement một component AngularJS (search box với debounce) trong 30 phút
- Whiteboard: vẽ kiến trúc một trang dashboard tài chính
- Practice: trả lời câu hỏi behavioral theo STAR
Tài liệu tham khảo gợi ý
- AngularJS: https://docs.angularjs.org + "ng-book" (Ari Lerner)
- JavaScript: "You Don't Know JS" (Kyle Simpson) — free trên GitHub
- Testing: "Testing AngularJS Applications" (Karma docs + Jasmine docs)
- CSS: "CSS Secrets" (Lea Verou), CSS Grid & Flexbox qua Flexbox Froggy
- System Design cho Frontend: "Front-End System Design" — Educative
- Banking context: Hiểu sơ về Core Banking, Open Banking, PSD2, thanh toán số
- Tiếng Anh: "Eloquent JavaScript" — Marijn Haverbeke (vừa đọc vừa luyện từ vựng)
Đề xuất cách học
- Mỗi ngày dành 3-4 tiếng (tối + cuối tuần)
- 60% thực hành code, 40% đọc lý thuyết
- Commit code lên GitHub làm portfolio
- Tham gia 1 mock interview cộng đồng (Vietnam Devs, Toptal) trước ngày thật
Tư vấn nghề nghiệp
Lời khuyên sự nghiệp — Frontend Developer tại Ngân hàng
Bức tranh nghề nghiệp Frontend trong ngân hàng Việt Nam
Frontend dev trong ngân hàng có nhiều cái lợi mà product company không có:
- Quy trình chuẩn: Ngân hàng có quy trình rõ ràng (BRD, FSD, UAT, production) — học được cách làm phần mềm đúng chuẩn doanh nghiệp lớn.
- Bài toán scaling thực sự: Techcombank phục vụ hàng chục triệu khách hàng — performance, concurrency là bài toán thật.
- Học miễn phí về business: Tín dụng, thanh toán, KYC, AML — kiến thức tài chính giúp bạn có sự nghiệp bền hơn chỉ biết code.
- Job security tốt: Ngân hàng lớn ít khi sa thải hàng loạt như startup.
Ngược lại, cũng có cái trade-off:
- Tốc độ chậm hơn so với fintech thuần (compliance kéo dài).
- Legacy nhiều: Techcombank vẫn còn AngularJS 1.x — không "xịn" bằng các công ty đã migrate.
- Công nghệ cập nhật chậm: Không phải nơi bạn sẽ dùng công nghệ mới nhất.
Lộ trình thăng tiến điển hình (Frontend Developer)
```
Junior/Mid Frontend (0-4 năm)
↓
Senior Frontend (5-8 năm) ← VỊ TRÍ BẠN ĐANG ỨNG TUYỂN
↓
Hai hướng rẽ:
├── Tech Lead Frontend → Principal Engineer → VP of Engineering
└── Product/Project track → Product Manager / EPM
```
Trong ngân hàng, Frontend Senior thường đi theo track chuyên gia (IC) hoặc track quản lý. Sau 7-10 năm ở Techcombank, bạn có thể trở thành:
- Senior Manager, Frontend Engineering — quản lý 5-10 người
- Principal Frontend Architect — track chuyên gia, định hướng kỹ thuật
- EPM (Engineering Project Manager) — cầu nối giữa tech và business
Mức lương ước lượng (tham khảo)
> 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 năm 2024-2025.
| Cấp bậc | Kinh nghiệm | Mức lương tháng (gross VND) |
|---|---|---|
| Junior Frontend | 0-2 năm | 15-30 triệu |
| Mid Frontend | 2-4 năm | 25-50 triệu |
| Senior Frontend (mức này) | 5-8 năm | 50-90 triệu |
| Senior Frontend ngân hàng | 7-10 năm | 60-110 triệu (Techcombank thường cao hơn thị trường 15-20%) |
| Frontend Lead/Architect | 8-12 năm | 90-180 triệu |
| Engineering Manager/VP | 12+ năm | 150-300 triệu+ |
Techcombank nổi tiếng trả lương trên mặt bằng ngân hàng và có thưởng KPI quý/năm hấp dẫn. Ngoài lương còn có:
- Thưởng Tết (1-3 tháng lương)
- Thưởng KPI cả năm có thể 1-3 tháng
- Bảo hiểm sức khỏe gia đình
- Quỹ đào tạo, hội thảo công nghệ
- 13-14 tháng lương
Kỹ năng cần phát triển thêm để thăng tiến
5 năm tới — để chuyển từ Senior lên Lead/Architect:
1. Hệ thống phân tán & microservices — hiểu backend side để giao tiếp hiệu quả
2. Mobile development (React Native, Flutter) — ngân hàng đẩy mạnh mobile, ai làm được cả web lẫn app sẽ có lợi thế
3. DevOps culture: Docker cơ bản, Kubernetes concept, CI/CD
4. Security & Compliance: PCI-DSS, SOC2, ISO 27001 — không cần chuyên sâu nhưng phải hiểu
5. Mentoring: Senior không chỉ code giỏi mà phải kéo được đàn em đi lên
6. Tiếng Anh lưu loát — vì Techcombank làm việc với vendor nước ngoài, nếu muốn lên trên cần communicate tốt
Đánh giá cá nhân: Có nên ứng tuyển không?
Nên ứng tuyển nếu:
- Bạn có nền tảng AngularJS vững và 7+ năm kinh nghiệm
- Bạn muốn gắn bó lâu dài ổn định với một ngân hàng top đầu
- Bạn thích môi trường có quy trình chuẩn, không thích startup hỗn loạn
- Bạn muốn học hỏi về tài chính ngân hàng
Cân nhắc nếu:
- Bạn chỉ có 4-6 năm kinh nghiệm — JD ghi 7 năm tối thiểu, đừng nộp nếu chưa đủ vì sẽ bị loại ngay vòng HR
- Bạn muốn thử công nghệ mới — frontend ngân hàng thường chậm hơn 6-12 tháng so với product
- Bạn đang ở level cao hơn (Architect, Manager) — có thể nên nhắm vị trí khác
Câu hỏi thường gặp
Em mới ra trường, có 1 năm kinh nghiệm làm freelance AngularJS. Em có thể ứng tuyển vị trí này không?
Không phù hợp đâu em. JD yêu cầu tối thiểu 7 năm kinh nghiệm với AngularJS — đây là vị trí Senior thực sự, không phải người mới vào nghề. Nếu em nộp CV sẽ bị HR loại ngay vòng đầu. Lời khuyên cho em: xây dựng nền tảng vững 2-3 năm nữa ở các công ty outsource hoặc product, tích lũy kinh nghiệm về performance optimization, testing, security trong hệ thống banking thì hãy quay lại apply. Trong thời gian đó em có thể ứng tuyển các vị trí Junior/Mid Frontend ở ngân hàng như Techcombank MB, VPBank để bắt đầu làm quen môi trường tài chính.
Tôi có 8 năm kinh nghiệm nhưng chủ yếu làm React và Angular (2+), chỉ chạm AngularJS 1.x khoảng 1 năm đầu. Có nên nộp đơn không?
Đây là câu hỏi rất hay và có nhiều người rơi vào tình huống tương tự. Techcombank ghi AngularJS rõ ràng trong JD, nhưng đừng để đó ngăn em apply. Vài góc nhìn: (1) AngularJS 1.x và Angular 2+ khác nhau khá nhiều, nhưng nền tảng TypeScript, RxJS, dependency injection từ Angular 2+ có thể transfer sang. (2) Khi phỏng vấn, em nên trình bày thẳng thắn: 'Tôi có X năm AngularJS giai đoạn đầu, sau đó chuyển sang Angular/React, đây là cách tôi apply được kiến thức đó.' (3) Trong thời gian chờ phỏng vấn, ôn lại AngularJS qua các project cũ trên GitHub, làm 2-3 demo nhỏ để refresh. (4) Nhiều khi JD ghi AngularJS nhưng team thực tế đang migrate sang Angular 14+ hoặc React — đừng ngại hỏi rõ trong vòng HR. Nộp đi, cơ hội vẫn có.
Mức lương cho vị trí Senior Frontend ở Techcombank khoảng bao nhiêu? Nên deal bao nhiêu?
Đây là mức ước lượng tham khảo, có thể thay đổi tùy thời điểm và cấp bậc cụ thể. Với Senior Frontend 7-10 năm kinh nghiệm tại Techcombank, mặt bằng chung khoảng 60-110 triệu gross/tháng, tùy thuộc vào (1) nền tảng JavaScript sâu không, (2) có kinh nghiệm banking/fintech trước đó không, (3) khả năng architect + mentoring. Khi deal, em nên: (a) Không đưa con số cụ thể ở vòng HR đầu — hãy nói 'tôi muốn nghe thêm về scope và mức độ trách nhiệm, sau đó chúng ta có thể thống nhất.' (b) Đàm phán full package: lương gross, thưởng Tết (thường 2-3 tháng), 13-14 tháng, bảo hiểm gia đình, phụ cấp. (c) Nếu đang có offer khác, đừng ngại dùng làm leverage nhưng không bluff. Techcombank trả tốt nhưng quyết định chậm, kiên nhẫn đợi.
Tôi muốn chuyển từ Java backend sang Frontend ngân hàng. Có khả thi không và cần chuẩn bị gì?
Hoàn toàn khả thi, nhất là khi bạn đã có kinh nghiệm backend trong hệ thống ngân hàng. Đây là lợi thế rất lớn: bạn hiểu cả API contract, authentication flow, transaction handling — những thứ mà một Frontend thuần thường thiếu. Lộ trình đề xuất: (1) Học vững JavaScript hiện đại + TypeScript trong 1-2 tháng (dù bạn biết Java, cú pháp và paradigm khác đáng kể). (2) Làm 2-3 dự án AngularJS/React cá nhân để có portfolio. (3) Apply các vị trí Frontend có ngăn cách thấp hơn một cấp so với seniority hiện tại của bạn — ví dụ bạn là Senior Backend 8 năm thì target vị trí Mid/Senior Frontend. (4) Khi phỏng vấn, nhấn mạnh: 'Tôi làm backend nhưng đã bắt đầu shift sang frontend 1 năm nay vì muốn end-to-end ownership.' Một số ngân hàng thích đào tạo internal shift hơn là hire ngoài.
Techcombank làm việc có áp lực cao không? Có on-call hay làm ngoài giờ nhiều không?
Thật sự mà nói, ngân hàng nào cũng có áp lực, và Techcombank là một trong những ngân hàng chuyển đổi số nhanh nhất nên áp lực cũng cao hơn mặt bằng chung. Vài điểm thực tế: (1) Trong giờ có thể có deadline dồn dập, đặc biệt gần ngày release campaign lớn (11/11, Tết, Black Friday). (2) Ngân hàng nói chung có on-call rotation cho hệ thống lõi nhưng Frontend thường ít bị on-call hơn backend. (3) Làm ngoài giờ không phải culture, nhưng deadline có thể kéo dài vài tuần/lần trong năm. (4) Techcombank có chính sách OT có bù, không phải làm free. (5) Mặt tích cực: team trẻ trung, được học hỏi nhiều, dự án lớn để đưa vào CV. Mẹo: hỏi thẳng HR về cường độ làm việc trung bình và policy on-call trong buổi phỏng vấn — đây là quyền của ứng viên.
Phỏng vấn vòng kỹ thuật có bài test live coding không? Độ khó thế nào?
Thường có một trong các hình thức: (1) HackerRank/CodeSignal online test trước khi phỏng vấn — 2-3 bài trong 60-90 phút. (2) Live coding qua CoderPad/CodeShare trong buổi phỏng vấn — code trực tiếp trên màn hình. (3) Whiteboard algorithm cho senior level. Độ khó cho Senior Frontend ngân hàng thường ở mức Medium trên LeetCode: array manipulation, string processing, basic tree/linked list. Riêng AngularJS có thể ra: 'Implement một todo list với AngularJS trong 30 phút' hoặc 'Tìm bug trong đoạn code scope/this'. Mẹo chuẩn bị: làm 50 bài Medium trên LeetCode, đặc biệt chú trọng JavaScript-specific quirks (closure, async, coercion), ôn kỹ AngularJS directive/service scope. Mang theo cheatsheet không được phép, nên phải nhớ cú pháp cơ bản.
Sau 7-8 năm ở vị trí Senior Frontend, có nên chuyển sang Tech Lead không? Hay ở lại track kỹ thuật thuần?
Cả hai hướng đều có giá trị, quyết định tùy vào tính cách và mục tiêu cá nhân. Track chuyên gia (IC/Architect) phù hợp nếu: bạn vẫn đam mê code, không thích họp hành quản lý, muốn giữ tay nghề sắc bén. Ở ngân hàng, Principal Engineer có thể lên tới VP Engineering track. Track quản lý (Tech Lead → Engineering Manager) phù hợp nếu: bạn thích 1:1, mentoring, planning, giao tiếp với stakeholder business. Ở Techcombank, chuyển sang Manager thường có thêm 30-50% compensation. Khuyến nghị cá nhân tôi: đừng vội chuyển khi chưa có cơ hội tốt. Khi đã 7-8 năm, hãy quan sát các Lead hiện tại xem cuộc sống của họ có phù hợp không — đừng chỉ nhìn lương. Có thể bạn sẽ thích code hơn quản lý, và đó cũng là sự nghiệp rất tốt.
JD có ghi 'AngularJS' nhưng thực tế team đang dùng React. Đây có phải dấu hiệu JD cũ không?
Có thể lắm. Có hai khả năng: (1) JD cũ, cập nhật chưa kịp — team đã migrate sang React/Angular mới nhưng văn bản chưa refresh. Đây là chuyện bình thường ở các công ty lớn có nhiều dự án song song. (2) JD đúng, team thực sự còn maintain hệ thống AngularJS cũ kết hợp với React. Cách xử lý tốt nhất: Ở vòng HR, anh/chị cứ nói: 'Tôi có kinh nghiệm cả AngularJS và React, bạn có thể chia sẻ rõ tech stack hiện tại team đang dùng không?' Đây là câu hỏi hoàn toàn legitimate. Đừng assume. Nếu HR nói team dùng React thì em có thể tự tin apply. Nếu xác nhận là AngularJS thật thì cân nhắc: em có sẵn sàng làm legacy không, hay muốn dự án mới.
Tôi nên hỏi gì ở cuối buổi phỏng vấn để gây ấn tượng?
Câu hỏi cuối buổi phỏng vấn thường quyết định ấn tượng cuối cùng. Một số câu tôi thấy hiệu quả: (1) 'Team hiện tại có bao nhiêu người, cấu trúc thế nào, và vị trí này sẽ làm việc với ai chủ yếu?' — cho thấy bạn quan tâm đến collaboration. (2) 'Tech stack hiện tại của team, có đang migrate AngularJS sang gì không và timeline như thế nào?' — cho thấy tư duy dài hạn. (3) 'Vai trò này impact trực tiếp đến user journey nào — mobile banking, internet banking, hay internal tool?' — cho thấy bạn nghĩ về business impact. (4) 'Cơ hội mentoring junior dev trong team thế nào?' — cho thấy tinh thần senior. (5) 'Một thách thức kỹ thuật lớn team đang đối mặt là gì?' — cho thấy bạn muốn giải quyết vấn đề thực. Tránh hỏi lương/phúc lợi ở vòng technical — để dành vòng HR.