Flutter Lead - Dự Án Bản Đồ Số
CÔNG TY CỔ PHẦN ĐẦU TƯ CÔNG NGHỆ & ĐỔI MỚI VIỆT
Mô tả công việc
Phát triển ứng dụng mobile Phát triển và duy trì ứng dụng bản đồ, định vị và dẫn đường trên nền tảng Flutter. Xây dựng các tính năng chính của ứng dụng, bao gồm: Hiển thị và tương tác với bản đồ. Định vị và theo dõi vị trí người dùng. Tìm kiếm địa điểm và POI. Tìm đường và hiển thị lộ trình. Dẫn đường theo thời gian thực. Cảnh báo giao thông, tốc độ và thông tin trên tuyến đường. Quản lý bản đồ trực tuyến, ngoại tuyến và các lớp dữ liệu bản đồ. Xây dựng các màn hình và luồng tương tác theo thiết kế, bảo đảm tính nhất quán về giao diện và trải nghiệm người dùng. Phát triển và duy trì widget library dùng chung cho toàn bộ ứng dụng. Tích hợp REST API, WebSocket và các dịch vụ backend; xử lý loading, retry, timeout, caching và error state. Quản lý trạng thái ứng dụng bằng Riverpod, Bloc, Cubit hoặc giải pháp tương đương. Tích hợp MapLibre hoặc các SDK bản đồ tương đương trên Android và iOS. Triển khai các tính năng platform-specific thông qua Platform Channels hoặc native plugin khi cần. Làm việc với các API và dịch vụ native như: GPS và location service. Background location. Permission. Push notification. Deep link. Secure storage. Camera và biometric authentication. Xử lý đúng vòng đời ứng dụng khi chuyển foreground, background, bị hệ điều hành giới hạn hoặc khởi tạo lại. 2. Hiệu năng và trải nghiệm người dùng Tối ưu hiệu năng render bản đồ, animation và các màn hình có lượng dữ liệu lớn. Phân tích và giảm frame drop, jank, memory leak và thời gian khởi động ứng dụng. Kiểm soát việc rebuild widget và tối ưu các luồng cập nhật vị trí liên tục. Tối ưu mức sử dụng CPU, GPU, bộ nhớ, pin và dữ liệu mạng. Đảm bảo ứng dụng hoạt động ổn định trong các điều kiện: GPS yếu hoặc mất tín hiệu. Mạng yếu, mất mạng hoặc thay đổi loại kết nối. Người dùng di chuyển với tốc độ cao. Ứng dụng chạy nền trong thời gian dài. Thiết bị có cấu hình thấp. Đảm bảo giao diện tương thích với nhiều kích thước màn hình, mật độ điểm ảnh, orientation và safe area trên Android/iOS. 3, Kiến trúc và chất lượng mã nguồn Áp dụng Clean Architecture, modular architecture hoặc mô hình tương đương để tách biệt presentation, domain và data layer. Tham gia thiết kế kiến trúc module, quản lý dependency và xác định ranh giới giữa các thành phần. Xây dựng các thành phần dùng chung như networking, logging, caching, error handling, localization và analytics. Viết unit test, widget test và integration test cho các luồng nghiệp vụ quan trọng. Thực hiện code review, tập trung vào: Correctness. Performance. Maintainability. Testability. Khả năng xử lý edge case. Tuân thủ Effective Dart, coding convention và quy trình phát triển trunk-based. Viết commit message, pull request và tài liệu kỹ thuật rõ ràng. Phối hợp xây dựng và duy trì CI/CD pipeline cho mobile: build, test, signing và phân phối phiên bản. 4. Phối hợp phát triển sản phẩm Làm việc với Product Owner và Business Analyst để phân tích yêu cầu, xác định acceptance criteria và phân rã công việc kỹ thuật. Phối hợp với Backend Developer để xây dựng API contract, xử lý lỗi và các trường hợp dữ liệu không đồng nhất. Phối hợp với Designer để đánh giá tính khả thi, bảo đảm UI fidelity và trải nghiệm người dùng. Phối hợp với QA/QC để xây dựng test scenario và tái hiện các lỗi liên quan đến GPS, thiết bị hoặc điều kiện thực địa. Tham gia sprint planning, daily meeting, review và retrospective theo quy trình Agile/Scrum. Chủ động cập nhật tiến độ và cảnh báo sớm các rủi ro kỹ thuật như: Native dependency conflict. Breaking change của SDK. App Store/Play Store review. Permission policy. Background execution restriction. 5. Vận hành và cải tiến Theo dõi và xử lý lỗi trên môi trường production thông qua Firebase Crashlytics, Sentry hoặc công cụ tương đương. Phân tích log, crash, ANR và các vấn đề hiệu năng trên thiết bị thực tế. Hỗ trợ phát hành ứng dụng lên App Store và Google Play. Tham gia kiểm thử thực địa đối với các chức năng định vị và dẫn đường. Đề xuất cải tiến kỹ thuật nhằm nâng cao stability, performance và developer experience. Xây dựng và cập nhật tài liệu: Architecture guideline. Widget catalog. Coding convention. Release checklist. Onboarding guide.
Yêu cầu công việc
Có từ 3 năm kinh nghiệm phát triển ứng dụng bằng Flutter. Có ít nhất một ứng dụng đã được phát hành thực tế trên App Store hoặc Google Play. Thành thạo Dart: Null safety. Async/await. Future và Stream. Generic. Extension method. Mixin. Isolate ở mức ứng dụng thực tế. Hiểu rõ Flutter widget lifecycle, state management và cơ chế rebuild. Thành thạo layout, responsive UI và xây dựng reusable widget. Có kinh nghiệm sử dụng Riverpod, Bloc, Cubit hoặc giải pháp quản lý trạng thái tương đương. Có kinh nghiệm tổ chức mã nguồn theo Clean Architecture, modular architecture hoặc mô hình tương đương. Có kinh nghiệm tích hợp REST API, xử lý JSON, authentication, refresh token, timeout và error handling. Có kinh nghiệm làm việc với native capability của Android/iOS thông qua plugin hoặc Platform Channels. Hiểu vòng đời ứng dụng mobile, permission và cơ chế chạy nền trên Android/iOS. Có kinh nghiệm tối ưu hiệu năng Flutter bằng Flutter DevTools hoặc công cụ tương đương. Có khả năng viết unit test và widget test. Có kinh nghiệm sử dụng Git và làm việc theo quy trình code review. Có tư duy phân tích, chủ động xử lý vấn đề và có trách nhiệm với chất lượng sản phẩm. Ưu tiên Có kinh nghiệm phát triển ứng dụng bản đồ, navigation, logistics, gọi xe hoặc tracking vị trí. Có kinh nghiệm với MapLibre, Mapbox, Google Maps SDK hoặc SDK bản đồ tương đương. Có kiến thức về: GPS và location accuracy. Coordinate system. GeoJSON. Vector tile và raster tile. Routing và navigation. Offline map. Có kinh nghiệm xử lý background location và foreground service. Có kinh nghiệm tối ưu ứng dụng sử dụng nhiều CPU, GPU hoặc cập nhật dữ liệu theo thời gian thực. Có khả năng đọc và debug mã nguồn native Android bằng Kotlin/Java hoặc iOS bằng Swift/Objective-C. Có kinh nghiệm phát triển Flutter plugin hoặc tích hợp native SDK. Có kinh nghiệm với Firebase, Crashlytics, Sentry, analytics và remote config. Có kinh nghiệm thiết lập CI/CD bằng GitHub Actions, GitLab CI, Jenkins, Fastlane hoặc Codemagic. Có kinh nghiệm với CarPlay hoặc Android Auto là một lợi thế. Có kinh nghiệm dẫn dắt kỹ thuật hoặc hỗ trợ các thành viên junior là một lợi thế.
Quyền lợi
Quyền lợi Thu nhập hấp dẫn, nhiều cơ hội học hỏi và phát triển chuyên môn. Quỹ lương từ 13 tháng/năm. Được tham gia phát triển sản phẩm bản đồ số và dẫn đường có quy mô lớn. Có cơ hội làm việc chuyên sâu với Flutter, native mobile, bản đồ số và các bài toán xử lý dữ liệu thời gian thực. Cung cấp đầy đủ thiết bị làm việc. Hỗ trợ miễn phí gửi xe và phụ cấp ăn trưa. Tham gia đầy đủ BHXH và các chế độ theo quy định. Bảo hiểm sức khỏe cá nhân. Văn phòng hạng A, môi trường chuyên nghiệp và trang thiết bị hiện đại. Khám sức khỏe định kỳ, team building, du lịch và các sự kiện của công ty. Và các đặc quyền ưu đãi khác trong hệ sinh thái Tập đoàn Tasco.