Kinh nghiệm cốt lõi:
Có ít nhất 3 năm kinh nghiệm phát triển ứng dụng di động.
Có kinh nghiệm làm việc thực tế và thành thạo với ít nhất một trong các framework cross- platform sau:
Flutter: Nắm vững ngôn ngữ Dart, hiểu sâu về Widgets, State Management (Bloc, Provider, GetX), kiến trúc ứng dụng.
React Native: Thành thạo JavaScript/TypeScript, hiểu rõ về components, hooks, state management (Redux, MobX), và vòng đời của React.
Kinh nghiệm làm việc với RESTful APIs và các định dạng dữ liệu phổ biến như JSON, XML.
Có kinh nghiệm tích hợp các dịch vụ của bên thứ ba: Push Notifications (Firebase Cloud Messaging), Google Maps, thanh toán online (MoMo, ZaloPay, Stripe), và các mạng xã hội.
Stack công nghệ & Công cụ cần biết:
Ngôn ngữ lập trình:
Bắt buộc: Dart (cho Flutter) HOẶC JavaScript/TypeScript (cho React Native).
Là lợi thế: Có kiến thức về Swift/Objective- C (cho iOS) hoặc Kotlin/Java (cho Android) để xử lý các module native khi cần.
Quản lý phiên bản: Thành thạo Git (Git Flow, GitHub, GitLab).
State Management:
Flutter: Bloc, Provider, GetX, Riverpod.
React Native: Redux (Redux Toolkit), MobX.
CI/CD: Có hiểu biết hoặc kinh nghiệm thiết lập quy trình CI/CD cho ứng dụng di động (ví dụ: Codemagic, Bitrise, Jenkins, GitHub Actions) là một điểm cộng lớn.
Cơ sở dữ liệu: Có kinh nghiệm làm việc với cơ sở dữ liệu trên di động như SQLite, Realm, hoặc các giải pháp NoSQL như Firebase Firestore.
Testing: Có kinh nghiệm viết Unit Test, Integration Test.
Công cụ khác: Nắm vững các công cụ như Jira, Trello để quản lý công việc và Figma, Zeplin để làm việc với đội ngũ thiết kế.
Kỹ năng mềm:
Kỹ năng giải quyết vấn đề và tư duy logic tốt.
Đam mê học hỏi, cập nhật công nghệ mới.
Có kiến thức tốt về UI/UX, có khả năng xây dựng giao diện người dùng mượt mà, thân thiện
Tư duy lập trình hướng đối tượng (OOP), hiểu biết về các nguyên lý thiết kế (SOLID) và Design Patterns.
Tinh thần trách nhiệm cao, chủ động trong công việc và có khả năng làm việc độc lập cũng như làm việc nhóm.