Yêu cầu
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.
- 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.
- 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.
- 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:
+ React Native: Redux (Redux Toolkit), MobX.
+ Flutter: Bloc, Provider, GetX, Riverpod.
- Testing: Có kinh nghiệm viết Unit Test, Integration Test.
- 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.
+ 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ô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.
- 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.
- Đam mê học hỏi, cập nhật công nghệ mới.
- 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.