Giới thiệu chung về công ty
- Tên đơn vị: Công ty Cổ phần Công nghệ Geek Up (GEEK UP
- Lĩnh vực hoạt động: Xuất bản phần mềm
- Địa chỉ: o Trụ sở chính: 244/31 Huỳnh Văn Bánh, Phường 11, Quận Phú Nhuận, Thành phố Hồ Chí Minh o Chi nhánh: 27B / 9 Nguyễn Đình Chiểu, Phường Đa Kao, Quận
1, Thành phố Hồ Chí Minh
- Trang web: www.geekup.vn
- Thời gian làm việc: Thứ 2 đến thứ 6: 08h30 - 17h30
- Sứ mệnh: Xây dựng các sản phẩm phần mềm mang lại nhiều giá trị cho người dùng
Giá trị cốt lõi của chúng tôi bao gồm sự trung thực, sống hết mình với đam mê và phấn đấu để đạt được những giá trị chung Chúng tôi tin rằng "Geeks Get it done", luôn nỗ lực hoàn thành công việc để đạt được kết quả mong đợi.
Luôn đặt ra tiêu chuẩn cao cho bản thân bằng cách thử thách và nâng cao trình độ chuyên môn Hãy giữ tinh thần "Stay Hungry Stay Foolish", không ngừng nghỉ trong việc học hỏi và phát triển bản thân, không chỉ dừng lại ở khả năng hiện tại.
Geek Up là công ty tư vấn chuyên cung cấp giải pháp xây dựng sản phẩm công nghệ phần mềm tối ưu cho cộng đồng, doanh nghiệp và cá nhân Chúng tôi hợp tác với nhiều đối tác, từ các công ty khởi nghiệp đến những doanh nghiệp lớn, với mục tiêu tạo ra giá trị tích cực và sản phẩm đẳng cấp đạt tiêu chuẩn quốc tế.
Up cam kết nâng cao giá trị cộng đồng bằng cách cung cấp cho khách hàng sản phẩm và dịch vụ phát triển phần mềm chất lượng cao nhất Chúng tôi đảm bảo phát triển và cung cấp phần mềm đúng hạn, trong ngân sách và với chất lượng tối ưu, mang lại sự hài lòng tuyệt đối cho khách hàng, tối đa hóa lợi nhuận và thúc đẩy sự phát triển mạnh mẽ của thương hiệu sản phẩm.
Để đáp ứng nhu cầu và theo kịp xu hướng ngành, mỗi thành viên trong công ty luôn nỗ lực nâng cao kỹ năng cá nhân nhằm mang lại giá trị tích cực cho khách hàng.
Cơ cấu tổ chức
GEEK Up hoạt động theo mô hình phẳng (Flat Company), nơi mỗi thành viên đảm nhận vai trò linh hoạt trong các nhóm khác nhau Các thành viên trong Squad phối hợp thực hiện các nhiệm vụ nhằm đạt mục tiêu chung và thúc đẩy sự phát triển của dự án trong một khoảng thời gian nhất định Chapter là nơi các thành viên có chuyên môn tương đồng hỗ trợ và chia sẻ kiến thức kỹ thuật với nhau Guild tập hợp những người có sở thích và mối quan tâm chung, tạo cơ hội tham gia các hoạt động ngoài công việc Cuối cùng, Tribe bao gồm tất cả thành viên trong công ty, giữ gìn và phát huy tinh thần của Geek.
Tổng quan về kinh doanh
The Coffee House - Chuỗi cà phê tăng trưởng nhanh số 1 tại Việt Nam
Hình UI design - The Coffee House - Loyalty application
Wall Street English application - Simple & fun booking app for English class
Visit site: http://wallstreetenglish.edu.vn/ung-dung-dien-thoai.html
Hình UI design - Wall-street English - Class booking application
Wumbo – A high-level project management solution
Visit site: https://www.wewumbo.io/feature.html
Hình UI design – Wumbo – A project management solution
- Bên cạnh việc phát triển sản phẩm phần mềm, GEEK Up đã đầu tư và kinh doanh
GEEK Hub - Cafeteria & Workspace, một nơi dành cho bạn muốn học, làm việc và trao đổi kiến thức.
Văn hóa công ty
- Văn hóa ở GEEK Up được xây dựng theo các giá trị cốt lõi:
12 Đồng đội tuyệt vời: Luôn ủng hộ và nỗ lực hết mình để giúp nhóm và đồng nghiệp tiến lên Cam kết: Giữ lời hứa và sẵn sàng thực hiện bằng mọi giá Đóng góp: Góp phần phát triển nhóm ngay cả khi không phải trách nhiệm của mình Sự chủ động: Suy nghĩ, quan tâm và hành động vì lợi ích của nhóm, đồng thời cũng là lợi ích cá nhân.
- Thời gian làm việc: từ thứ 2 đến thứ 6: 8h30 – 17h30
- Thời gian nghỉ trưa: từ 11:30 đến 13:30
Nhân viên được khuyến khích giao tiếp bằng tiếng Anh để nâng cao hiệu quả làm việc Sau mỗi giờ làm việc, nhân viên cần ghi chép rõ ràng thời gian hoàn thành các nhiệm vụ trong dự án, nhằm đảm bảo tiến độ và sự hiệu quả của dự án.
- Đồ ăn nhẹ, trà, cà phê, trái cây miễn phí cho tất cả nhân viên vào thời gian nghỉ ngơi
Mỗi ngày từ thứ 2 đến thứ 5, công ty tổ chức các buổi Workshop nhằm chia sẻ kinh nghiệm trong công việc và cuộc sống, giúp nhân viên nâng cao kiến thức chuyên môn và kỹ năng mềm.
Vào thứ 6 tới, sự kiện "Friday Meetup" sẽ diễn ra, tạo cơ hội cho nhân viên công ty bày tỏ lòng biết ơn đối với các đồng nghiệp đã hỗ trợ họ trong suốt tuần qua Đây cũng là dịp để mọi người cùng nhau thưởng thức một bữa tiệc nhẹ, khởi đầu cho một cuối tuần thư giãn.
Một số hình ảnh công ty
Nội dung thực tập
Đợt thực tập này nhằm mục tiêu xây dựng sản phẩm Pulsely, bao gồm một server, một client trên nền tảng Web và một client trên nền tảng Mobile (Android) Thực tập sinh sẽ phối hợp chặt chẽ để tạo ra một sản phẩm dành cho người dùng Mỗi thành viên trong squad được đào tạo từ các kỹ năng lập trình cơ bản đến nâng cao, cùng với các kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp và quản lý thời gian Tất cả mọi người có cơ hội phát triển chuyên môn và làm việc trong môi trường chuyên nghiệp, từ đó nâng cao trình độ bản thân và cống hiến cho dự án.
Tìm hiểu công ty, cách vận hành và các kỹ năng cơ bản cần thiết
Công ty Geek Up được thành lập với một quá trình phát triển rõ ràng, được giới thiệu bởi người phụ trách, mang đến cái nhìn sâu sắc về cách tổ chức và tinh thần làm việc của đội ngũ Quy trình làm việc tại Geek Up được thiết kế để đảm bảo việc deliver sản phẩm hiệu quả, với sự hợp tác chặt chẽ giữa các thành viên trong các Chapter hiện tại Đội ngũ sử dụng nhiều kỹ năng và công cụ hiện đại, giúp tối ưu hóa quy trình làm việc và nâng cao chất lượng sản phẩm Tinh thần đồng đội và sự sáng tạo là yếu tố then chốt trong việc thúc đẩy sự phát triển của công ty.
Thực tập sinh sẽ được hướng dẫn về quy trình làm việc trong công ty, bao gồm thời gian làm việc, các quy định cần tuân thủ, cũng như các bước cần thực hiện trước khi bắt đầu, trong quá trình làm việc và khi kết thúc một ngày làm việc.
Trong quá trình làm việc, thực tập sinh sẽ được hướng dẫn tìm hiểu các công cụ cần thiết cho từng mục đích cụ thể Hầu hết các công cụ này là sản phẩm nội bộ của công ty, bên cạnh đó còn có các ứng dụng hỗ trợ như Google Meet cho việc gặp gỡ và trao đổi trong bối cảnh làm việc từ xa (WFH), cùng với Zoom để tham gia các buổi Workshop, Seminar và Meeting diễn ra thường xuyên trong công ty.
Geek Up là một công ty nổi bật với quá trình hình thành và phát triển ấn tượng Tại đây, các thành viên làm việc chặt chẽ với nhau, tạo nên một môi trường hợp tác hiệu quả Nhân viên được trang bị các kỹ năng quản lý dự án, tinh thần trách nhiệm và kỹ năng giao tiếp thông qua các công cụ mà công ty cung cấp, từ đó nâng cao hiệu suất làm việc và sự gắn kết trong đội ngũ.
Nghiên cứu kỹ thuật
Tìm hiểu ngôn ngữ Java trong Lập trình ứng dụng di động
Trong thời gian 0.5 ngày, người tham gia sẽ được đào tạo về các kỹ thuật lập trình Java và phát triển ứng dụng di động, đồng thời thực hành song song để củng cố kiến thức Đây là những kiến thức quan trọng giúp tối ưu hóa ứng dụng trên nền tảng Android.
Model View Presenter (MVP) is an architectural pattern in programming that enhances project efficiency This architecture provides solutions that ensure projects are clean, easily maintainable, expandable, and testable.
Repository đóng vai trò trung gian giữa domain và các lớp ánh xạ dữ liệu, hoạt động như một bộ sưu tập đối tượng miền trong bộ nhớ Nó kết nối với hai phương thức để gọi API: Nguồn dữ liệu cục bộ và Nguồn dữ liệu từ xa.
Khi triển khai lập trình hướng đối tượng, có năm nguyên tắc quan trọng cần ghi nhớ để đảm bảo sự thành công của dự án Nguyên tắc đầu tiên là Nguyên tắc Trách nhiệm Đơn (Single Responsibility Principle), yêu cầu mỗi lớp chỉ đảm nhiệm một trách nhiệm duy nhất Thứ hai, Nguyên tắc Mở/Rộng (Open/Closed Principle) cho phép mở rộng lớp mà không cần sửa đổi nội dung bên trong Nguyên tắc Thay thế Liskov (Liskov Substitution Principle) khẳng định rằng các đối tượng của lớp con có thể thay thế lớp cha mà không ảnh hưởng đến tính đúng đắn của chương trình Nguyên tắc Phân tách Giao diện (Interface Segregation Principle) khuyên nên chia nhỏ giao diện lớn thành nhiều giao diện nhỏ hơn với mục đích cụ thể Cuối cùng, Nguyên tắc Đảo ngược Phụ thuộc (Dependency Inversion Principle) nhấn mạnh rằng các module cấp cao không nên phụ thuộc vào các module cấp thấp, mà cả hai nên dựa vào sự trừu tượng, với giao diện không phụ thuộc vào chi tiết mà ngược lại.
- Tham gia đầy đủ các buổi training của công ty
- Làm các bài thực hành, kiểm tra về kiến thức đã học
- Nâng cao kỹ năng lập trình với ngôn ngữ Java
- Có được những kiến thức quan trọng cho việc lập trình mobile sau này
- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúng chuẩn, dễ đọc, dễ hiểu.
Git Branching và các quy tắc
Trong thời gian nửa ngày, người học sẽ được thực hành song song với việc đào tạo về các kỹ thuật sử dụng Git hiệu quả trên IDE Android Studio Khóa học cũng cung cấp những kiến thức căn bản liên quan đến Git, giúp người tham gia nắm vững các kỹ năng cần thiết cho việc phát triển phần mềm.
Git là một Hệ thống quản lý phiên bản phân tán (DVCS) phổ biến, cho phép mỗi máy tính lưu trữ nhiều phiên bản khác nhau của mã nguồn từ một kho chứa (repository) Mỗi thay đổi trong mã nguồn có thể được ủy thác (commit) và đưa lên máy chủ chứa kho chính Người dùng khác, nếu có quyền truy cập, có thể clone mã nguồn hoặc nhận các thay đổi mới nhất từ máy tính khác Thư mục làm việc trên máy tính trong Git được gọi là Working Tree.
Git là một công cụ hữu ích giúp lưu trữ các phiên bản thay đổi của mã nguồn, cho phép khôi phục dễ dàng mà không cần sao chép và lưu trữ riêng biệt Người khác có thể xem và so sánh các thay đổi của bạn ở từng phiên bản, đồng thời gộp các thay đổi của bạn vào phiên bản của họ Cuối cùng, tất cả mọi người có thể đưa các thay đổi của mình lên một kho chứa mã nguồn chung.
Cơ chế lưu trữ phiên bản của Git hoạt động bằng cách tạo ra một “ảnh chụp” (snapshot) cho mỗi tập tin và thư mục sau khi thực hiện commit Điều này cho phép người dùng tái sử dụng lại các ảnh chụp, hiểu đơn giản là các phiên bản khác nhau Ưu điểm nổi bật của Git so với các hệ thống quản lý phiên bản phân tán (DVCS) khác là khả năng lưu trữ dữ liệu dưới dạng snapshot thay vì lưu cứng, mang lại hiệu quả và linh hoạt hơn trong việc quản lý phiên bản.
- Master: là nhánh chính, run trên production
- Dev: là nhánh replica cho nhánh master cộng với các nhánh feature đang được phát triển
- Feature: được tách từ nhánh dev, chức năng sau khi được phát triển sẽ được merge vào dev trước khi merge vào master
- Tham gia đầy đủ buổi training của công ty
- Áp dụng tốt vào quá trình deliver dự án
- Hiểu và thành thạo kỹ năng sử dụng Git Phối hợp tốt với đồng đội trong làm việc nhóm trên Git
Phát triển Ứng dụng di động nền tảng Android
Thời gian : 2 ngày và đi song song với thực hành trong suốt quá trình thực tập
Trong quá trình phát triển ứng dụng di động, thực tập sinh sẽ được đào tạo về các kiến thức cơ bản và kỹ năng cần thiết, cùng với những điểm quan trọng cần lưu ý Ngoài ra, họ cũng sẽ được hướng dẫn cách sử dụng hiệu quả IDE Android Studio để tối ưu hóa quy trình lập trình.
Android là hệ điều hành mã nguồn mở dựa trên Linux Kernel, không chỉ dành cho điện thoại mà còn cho nhiều thiết bị di động khác như máy tính bảng, đồng hồ thông minh và máy nghe nhạc Điều này cho thấy tính linh hoạt của Android, cho phép nhà sản xuất cài đặt hệ điều hành này lên nhiều loại thiết bị như GPS và ô tô thông qua Android Auto.
Android, thương hiệu của Google, nổi bật với khả năng tùy biến cao và khả năng hoạt động trên nhiều thiết bị cùng các kiến trúc vi xử lý như ARM và x86.
Android đã có 12 phiên bản (kèm tên mã), phiên bản thứ 10 và 11 hiện đang phổ biến nhất trên thị trường hiện giờ
- Kiến trúc của hệ điều hành Android có thể xem qua hình sau:
Hệ điều hành Android được chia thành nhiều tầng khác nhau, bao gồm: Tầng Applications, nơi chứa các ứng dụng như Danh bạ, Gọi điện, Trình duyệt và Nghe nhạc, thường đã được cài sẵn trên máy; Tầng Framework, cung cấp các API để tương tác với hệ điều hành, quản lý danh bạ, Activity, địa điểm và View; Tầng Libraries, bao gồm các thư viện và API cốt lõi của Android như Surface Manager và OpenGL để hỗ trợ đồ họa; và Tầng Android Runtime, chứa các thư viện lõi và máy ảo Dalvik Virtual Machine, với máy ảo ART được bổ sung từ Android 4 trở lên.
24 o Tầng Kernel: Là nhân lõi của hệ điều hành, chứa các tập lệnh, driver giao tiếp giữa phần cứng và phần mềm của Android
Trong quá trình phát triển ứng dụng Android, chúng ta chủ yếu làm việc với tầng xanh lam (Applications và Application Framework) và xanh lá (Libraries) Ứng dụng Android được lập trình bằng ngôn ngữ Java, sau đó được biên dịch thành mã máy bởi máy ảo DVM/ART trên mỗi thiết bị Android.
- Tham gia đầy đủ buổi training của công ty
- Áp dụng tốt vào quá trình deliver dự án
- Hiểu và áp dụng tốt vào quá trình triển khai và deliver sản phẩm ở phần Client Mobile.
Mô hình Agile-Scrum
Thời gian : 2 ngày và đi song song với thực hành trong suốt quá trình thực tập
Trong quá trình thực tập, chúng tôi đã được đào tạo về các kiến thức chung và tìm hiểu cách áp dụng mô hình làm việc vào quy trình làm việc nhóm Mô hình này được công ty Geek Up áp dụng cho tất cả các sản phẩm của mình, giúp nâng cao hiệu quả và sự hợp tác trong đội ngũ.
Agile giúp nhà phát triển nhanh chóng nhận diện và điều chỉnh các vấn đề, với nhiều lợi ích nổi bật Đầu tiên, việc thực hiện thay đổi trở nên dễ dàng nhờ vào việc chia dự án thành các phần nhỏ, độc lập, cho phép điều chỉnh ở bất kỳ giai đoạn nào Thứ hai, không cần phải có tất cả thông tin ngay từ đầu, điều này rất phù hợp với các dự án chưa xác định mục tiêu rõ ràng Thứ ba, quy trình bàn giao diễn ra nhanh hơn, vì việc kiểm tra từng phần giúp phát hiện và khắc phục vấn đề kịp thời Thứ tư, Agile tạo điều kiện cho khách hàng và người dùng cuối đóng góp ý kiến, từ đó ảnh hưởng tích cực đến sản phẩm cuối cùng Cuối cùng, phương pháp này khuyến khích cải tiến liên tục, với sự tham gia của cả đội ngũ và khách hàng trong việc cung cấp phản hồi, giúp sản phẩm được hoàn thiện qua từng giai đoạn.
Trong ngành công nghiệp phần mềm, phương thức sản xuất phần mềm đóng vai trò quan trọng, ảnh hưởng đến cấu trúc tổ chức và quy trình phát triển, cũng như khả năng thành công của dự án Gần đây, Agile-Scrum đã trở thành một lựa chọn vượt trội, thay thế mô hình thác nước truyền thống và được nhiều công ty phần mềm áp dụng thành công Quản lý dự án theo nguyên tắc Agile được xem là giải pháp tối ưu cho mọi loại dự án.
- Định nghĩa mô hình Agile: Khái niệm Agile (viết tắt của Agile Software
Phát triển phần mềm linh hoạt (Agile Development) là phương pháp tối ưu nhằm rút ngắn thời gian đưa sản phẩm đến tay người dùng Nguyên tắc của mô hình này dựa trên quy trình phát triển lặp lại và tăng trưởng, cho phép nhu cầu và giải pháp được cải tiến thông qua sự hợp tác giữa các nhóm tự quản và liên chức năng.
Agile thường bị hiểu nhầm là một phương pháp, nhưng thực chất nó là một triết lý và phương pháp luận dựa trên các nguyên tắc phân đoạn vòng lặp và tăng trưởng.
Ngày nay, triết lý Agile đã mở rộng ra ngoài lĩnh vực phát triển phần mềm, góp phần thay đổi cách thức làm việc và quản lý trong nhiều ngành nghề như sản xuất, dịch vụ, sales, marketing và giáo dục Agile hiện trở thành một trong những phương pháp quản lý dự án phổ biến nhất, với nhiều phương pháp con được gọi là "họ Agile".
Trong phương pháp Agile, có bốn tôn chỉ chính: Thứ nhất, cá nhân và sự tương hỗ được coi trọng hơn quy trình và công cụ, nhấn mạnh tầm quan trọng của con người và sự tương tác trong nhóm Thứ hai, sản phẩm khả dụng được ưu tiên hơn tài liệu đầy đủ, với mục tiêu tạo ra phần mềm hoàn chỉnh đáp ứng yêu cầu khách hàng Thứ ba, việc cộng tác với khách hàng quan trọng hơn đàm phán hợp đồng, giúp hiểu rõ nhu cầu của khách hàng để điều chỉnh sản phẩm phù hợp Cuối cùng, phản hồi về sự thay đổi được coi trọng hơn việc bám sát kế hoạch, khuyến khích sự linh hoạt trước các biến động về công nghệ, nhân sự và thời gian.
Để phát triển phần mềm hiệu quả, cần tuân thủ 12 nguyên tắc cơ bản: đáp ứng toàn diện nhu cầu khách hàng bằng cách giao hàng sớm và cung cấp sản phẩm có giá trị; chấp nhận thay đổi yêu cầu, ngay cả khi muộn; thường xuyên giao phần mềm chạy được cho khách hàng; thúc đẩy sự hợp tác giữa nhà kinh doanh và kỹ sư phần mềm trong suốt dự án; xây dựng dự án quanh những cá nhân có động lực, cung cấp hỗ trợ và môi trường làm việc tốt; sử dụng giao tiếp trực tiếp để truyền đạt thông tin hiệu quả; đánh giá tiến độ dựa trên phần mềm chạy tốt; phát triển bền vững và liên tục; cải thiện tính linh hoạt thông qua kỹ thuật và thiết kế; tối đa hóa công việc chưa hoàn thành; đảm bảo sự đơn giản trong quy trình; khuyến khích nhóm tự tổ chức; và thường xuyên thích ứng với những thay đổi.
- Các bước làm việc theo Agile - Scrum
Scrum định nghĩa bốn sự kiện chủ chốt để tạo môi trường làm việc và cộng tác hiệu quả cho các thành viên dự án Các sự kiện này bao gồm Sprint Planning, Daily Scrum, Sprint Review và Sprint Retrospective Trong Sprint Planning, nhóm phát triển và Product Owner gặp gỡ để lập kế hoạch cho Sprint, chọn lựa yêu cầu phát triển và phân tích công việc cần thực hiện, kèm theo ước lượng thời gian Quá trình lập kế hoạch diễn ra liên tục và thích ứng với thực tế dự án Daily Scrum là cuộc họp hằng ngày do Scrum Master tổ chức, kéo dài khoảng 15 phút, nhằm giúp nhóm chia sẻ tiến độ và khó khăn trong quá trình phát triển phần mềm Cuối cùng, Sprint Review diễn ra để nhóm phát triển đánh giá kết quả và tiến độ công việc sau mỗi Sprint.
Trong Sprint Retrospective, Product Owner sẽ xem xét các công việc đã hoàn tất trong Sprint trước và đề xuất những chỉnh sửa hoặc thay đổi cần thiết cho sản phẩm, nhằm cải tiến quy trình làm việc của đội ngũ.
Master, nhóm phát triển sẽ rà soát lại toàn diện Sprint vừa kết thúc và tìm cách cải tiến quy trình làm việc cũng như bản thân sản phẩm
- Tham gia đầy đủ buổi training của công ty
- Áp dụng tốt vào quá trình deliver dự án
- Hiểu và áp dụng tốt vào quá trình triển khai và deliver sản phẩm cũng như làm việc nhóm một cách thực sự hiệu quả
RESTful API – Cách giao tiếp giữa Client (Web và App) với Server
Thời gian : 1 ngày và đi song song với thực hành trong suốt quá trình thực tập
Được đào tạo về kiến thức cơ bản và kỹ năng quan trọng trong việc sử dụng API do đội ngũ triển khai, giúp người dùng sử dụng API một cách hiệu quả và giao tiếp rõ ràng.
API (Giao diện lập trình ứng dụng) là bộ quy tắc và cơ chế cho phép các ứng dụng hoặc thành phần tương tác với nhau Nó cung cấp dữ liệu cần thiết cho ứng dụng của bạn dưới các định dạng phổ biến như JSON hoặc XML.
REST (REpresentational State Transfer) là một kiến trúc API sử dụng phương thức HTTP đơn giản để giao tiếp giữa các máy Thay vì xử lý thông tin người dùng qua một URL duy nhất, REST thực hiện các yêu cầu HTTP như GET, POST và DELETE đến các URL khác nhau để quản lý và xử lý dữ liệu hiệu quả.
RESTful API là tiêu chuẩn thiết kế API cho ứng dụng web, giúp quản lý các resource và cho phép các ứng dụng khác nhau giao tiếp hiệu quả Đây là một trong những kiểu thiết kế API phổ biến hiện nay, hoạt động chủ yếu dựa vào giao thức HTTP Các phương thức HTTP cơ bản trong RESTful API bao gồm GET (SELECT) để trả về resource hoặc danh sách resource, POST (CREATE) để tạo mới resource, PUT (UPDATE) để cập nhật thông tin resource, và DELETE (DELETE) để xoá resource.
- Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa
- Tham gia đầy đủ buổi training của công ty
- Áp dụng tốt vào quá trình deliver dự án
- Hiểu và áp dụng tốt vào quá trình triển khai và deliver sản phẩm Sử dụng API một cách hiệu quả, nâng cao kỹ năng làm việc nhóm.
Thực hiện project
Lịch làm việc
Tuần Công việc Người hướng dẫn
- Tìm hiểu về công ty, cách tổ chức của công ty
- Làm quen với cách làm việc theo mô hình Agile của công ty
Để làm quen với môi trường làm việc tại công ty, nhân viên cần nắm vững các công cụ quan trọng như phần mềm chuyên dụng để trao đổi thông tin, cổng lưu trữ tài liệu của đội nhóm (squad) và hệ thống email công ty Việc sử dụng thành thạo những công cụ này sẽ giúp tối ưu hóa quy trình làm việc và nâng cao hiệu quả giao tiếp trong nội bộ.
- Cài đặt môi trường để chuẩn bị cho dự án
Chị Uyên Phan Anh Nguyễn Minh Trung Anh Đặng Vũ Minh Hiếu Anh Đào Vũ Quốc Trung Chị Hoài Thương
Chị Thảo Đoàn Anh Chiết Nguyễn
- Học cách trao đổi, làm việc qua email
- Tham gia các buổi gặp gỡ ngoài giờ cùng công ty: Tuesday Workshop, Thurday Workshop, Friday Meetup, MiniWorkshop
- Tìm hiểu về Android Studio, ngôn ngữ Java trong lập trình Android, skeleton của Chapter Mobile của Geek Up về MVP Pattern, Repository Pattern, SOLID principles
- Tìm hiểu về Git và các tool liên quan
Cùng các thực tập sinh lập ra quy ước chung khi sử dụng Git khi collab với nhau
Phân tích và lập kế hoạch triển khai dự án Pulsely cùng các thực tập sinh là bước quan trọng để đảm bảo hiệu quả Dự án Pulsely sẽ được chia nhỏ thành các Iteration và backlog cụ thể trong từng Iteration, giúp quản lý tiến độ và tối ưu hóa quy trình làm việc.
- Thống nhất cách làm việc của squad trong quá trình deliver Pulsely
- Thiết kế một số bản vẽ design UI cho Client Mobile
- Tham gia Daily Scrum mỗi ngày để trình bày tiến độ công việc cho đồng đội, những dự định tiếp theo trong ngày và những khó khăn gặp phải
- Integrate với Server để hoàn thành các chức năng cơ bản đầu tiên của dự án
Cuối Iteration 1, dự án đã hoàn thiện việc sử dụng trên luồng chính Ứng dụng di động đã cho phép người dùng đăng nhập bằng tài khoản, tham gia và trả lời các câu hỏi, đồng thời hoàn thành Pulse như trong luồng chính.
Anh Nguyễn Minh Trung Anh Đặng Vũ Minh Hiếu Anh Đào Vũ Quốc Trung
31 flow đã có kế hoạch
Trong hai tuần đầu thực hiện dự án, đội ngũ đã tiến hành Iteration Review và Iteration Retrospective để đánh giá sản phẩm đã hoàn thành và xem xét mức độ hợp tác giữa các thành viên trong team.
- Tham gia các buổi gặp gỡ ngoài giờ cùng công ty: Tuesday Workshop, Thurday Workshop, Friday Meetup, MiniWorkshop
- Tiếp tục phân tích và lên kế hoạch triển khai Pulsely cùng các thực tập sinh trong giai đoạn tiếp theo của dự án
- Thiết kế một số bản vẽ design UI cho Client Mobile
- Tham gia Daily Scrum mỗi ngày để trình bày tiến độ công việc cho đồng đội, những dự định tiếp theo trong ngày và những khó khăn gặp phải
- Integrate với Server để triển khai các chức năng tiếp theo
- Trình bày sản phẩm cùng dự án, các kế hoạch cho Project Owner
- Cuối Iteration 2, dự án đã hoàn thành main flow và fix tất cả các bug còn tồn đọng ở Iteration 1
- Cùng squad thực hiện Iteration Review và Iteration Retrospective để cùng nhìn lại sau
Trong hai tuần đầu tiên của dự án, đội ngũ đã tích cực làm việc và tạo ra sản phẩm chất lượng Sự hợp tác giữa các thành viên trong team diễn ra suôn sẻ, giúp họ rút ra nhiều kinh nghiệm quý báu cho những giai đoạn tiếp theo.
- Tham gia các buổi gặp gỡ ngoài giờ cùng
Chị Uyên Phan Anh Nguyễn Minh Trung Anh Đặng Vũ Minh Hiếu Anh Đào Vũ Quốc Trung Chị Hoài Thương
32 công ty: Tuesday Workshop, Thurday Workshop, Friday Meetup, MiniWorkshop
- Tìm hiểu thêm về các kỹ thuật nâng cao trong lập trình ứng dụng di động như Retrofit 2, Dagger, triển khai QR Code, Scan App, Notification
- Tiếp tục phân tích và lên kế hoạch triển khai Pulsely cùng các thực tập sinh trong giai đoạn tiếp theo của dự án
- Tham gia Daily Scrum mỗi ngày để trình bày tiến độ công việc cho đồng đội, những dự định tiếp theo trong ngày và những khó khăn gặp phải
- Integrate với Server để triển khai các chức năng tiếp theo
- Cuối Iteration 3, dự án đã hoàn thành các chức năng quan trọng khác theo như kế hoạch
- Cùng squad thực hiện Iteration Review và Iteration Retrospective để cùng nhìn lại sau
Trong 4 tuần qua, đội ngũ đã hoàn thành dự án và tạo ra sản phẩm với sự hợp tác hiệu quả Hai tuần tiếp theo sẽ là cơ hội để đánh giá sự phối hợp giữa các thành viên trong team, rút ra kinh nghiệm quý báu để cải thiện quy trình làm việc.
- Tham gia các buổi gặp gỡ ngoài giờ cùng công ty: Tuesday Workshop, Thurday Workshop, Friday Meetup, MiniWorkshop
Chị Uyên Phan Anh Nguyễn Minh Trung Anh Đặng Vũ Minh Hiếu Anh Đào Vũ Quốc Trung Chị Hoài Thương
- Giai đoạn nước rút của dự án Tìm kiếm và sửa các lỗi còn tồn đọng ở các Iteration trước Triển khai các kế hoạch improve product
- Tiếp tục phân tích và lên kế hoạch triển khai Pulsely cùng các thực tập sinh trong
Chị Uyên Phan Anh Nguyễn Minh Trung Anh Đặng Vũ Minh Hiếu Anh Đào Vũ Quốc Trung Chị Hoài Thương
33 giai đoạn cuối của dự án
- Tham gia Daily Scrum mỗi ngày để trình bày tiến độ công việc cho đồng đội, những dự định tiếp theo trong ngày và những khó khăn gặp phải
- Integrate với Server để triển khai các chức năng cuối cùng
- Cuối Iteration 4, dự án đã hoàn thành các chức năng quan trọng khác theo như kế hoạch
- Cùng squad thực hiện Iteration Review và Iteration Retrospective để cùng nhìn lại sau
Trong 6 tuần thực hiện dự án, 2 tuần cuối cùng đã tập trung vào việc hoàn thiện sản phẩm Đội ngũ đã làm việc cùng nhau hiệu quả, rút ra nhiều kinh nghiệm quý báu từ quá trình hợp tác này.
- Tham gia các buổi gặp gỡ ngoài giờ cùng công ty: Tuesday Workshop, Thurday Workshop, Friday Meetup, MiniWorkshop
- Trình bày sản phẩm cùng dự án cho Project Owner
- Trình bày sản phẩm cho cả công ty Geek
Up xem trong 10 tuần vừa qua, các thực tập sinh đã làm được những gì
- Thực hiện các bước cuối cùng để đóng project Bàn giao project
- Tạm biệt mọi người Gửi lời cảm ơn và tri ân đến toàn thể công ty Geek Up
- Chuẩn bị tài liệu báo cáo thực tập Củng cố kiến thức qua đợt thực tập Rút kinh
Chị Uyên Phan Anh Nguyễn Minh Trung Anh Đặng Vũ Minh Hiếu Anh Đào Vũ Quốc Trung Chị Hoài Thương
34 nghiệm và tự đánh giá bản thân.
Chi tiết về project Pulsely
Pulsely is a web platform combined with a mobile app designed for creating and answering questions to gather valuable insights The web interface is tailored for Collectors, who seek to obtain insights, while the mobile app serves Sponsors, individuals willing to provide personal insights to Collectors The need for Pulsely arises from the growing demand for effective tools that facilitate insight collection and sharing between users.
Trong mọi tổ chức, việc thu thập các insight từ những người liên quan là rất cần thiết Những insight này sẽ giúp người thu thập đưa ra các hành động phù hợp, đảm bảo rằng quyết định không chỉ dựa vào ý kiến chủ quan của một cá nhân mà là sự tổng hợp từ nhiều thành viên quan trọng Quá trình này không chỉ cải thiện chất lượng của các hành động mà còn tạo ra giá trị tích cực cho công ty sau khi thực hiện.
Insight là những ý kiến, nhận xét và quan điểm về một chủ đề cụ thể, thể hiện từ góc nhìn của người cung cấp thông tin mà không bị ảnh hưởng bởi người thu thập Cần lưu ý rằng insight không phải là câu trả lời đúng hay sai, mà là một góc nhìn cá nhân, không có tính chất đúng hay sai, hiệu quả hay không hiệu quả.
Pulsely được phát triển từ nhu cầu thiết yếu của Geek Up, một công ty hoạt động theo mô hình phẳng, nghĩa là không có sự phân chia cấp bậc giữa nhân viên Tại Geek Up, mọi người đảm nhận các vai trò khác nhau, và những cá nhân có vai trò tương tự sẽ hợp tác cùng nhau, tạo ra một môi trường làm việc bình đẳng và sáng tạo.
Pulsely được phát triển nhằm giúp các thành viên trong công ty có thể nắm bắt thông tin từ tất cả các thành viên trong Chapter hoặc toàn công ty, từ đó đưa ra quyết định và hành động hiệu quả Trong các công ty theo mô hình truyền thống, quyết định thường phụ thuộc vào ý chí của sếp hoặc một số cổ đông, trong khi Geek Up áp dụng mô hình Agile cho tất cả sản phẩm của mình Một trong những đặc điểm quan trọng của Agile là thời gian giao hàng ngắn cho mỗi iteration, điều này đòi hỏi phản hồi nhanh chóng, và Pulsely ra đời để đáp ứng nhu cầu này một cách tối ưu.
Việc thu thập thông tin từ các thành viên trong tổ chức là nhu cầu thiết yếu cho mọi tổ chức, đặc biệt là đối với Geek Up – một tổ chức mang tinh thần nhiệt huyết, sôi nổi và hiện đại.
Nhóm thực tập sinh đã phát triển sản phẩm Pulsely nhằm đáp ứng hiệu quả các nhu cầu về thu thập dữ liệu, phân tích thông tin và thực hiện hành động Pulsely được thiết kế với cấu trúc cơ bản đơn giản nhưng mạnh mẽ, giúp người dùng dễ dàng sử dụng và tối ưu hóa quy trình làm việc.
Pulsely gồm có một Server và cũng đảm nhận vai trò là database của product, cùng với một Client Web cho Collector và một Client Mobile cho Sponsor
Collector: Người có nhu cầu get insight về một chủ đề nhất định và có nhu cầu take action sau khi get đủ insight
Sponsor: Người có nhu cầu give insight cho collector, đưa ra ý kiến đóng góp, quan điểm cá nhân cho chủ đề mà collector quan tâm
- Đầu tiên, Collector sử dụng Client Web để tạo các câu hỏi trong một chủ đề
- Sponsor sử dụng Client Mobile để tham gia chủ đề và give insight
- Sau khi có những insight từ sponsor, collector tiến hành tổng hợp, sắp xếp lại insights
- Collector take action dựa trên các insight đã tổng hợp được
Sản phẩm còn tích hợp tính năng Live Insight, cho phép collector đưa ra chủ đề trực tiếp, trong khi sponsor cung cấp thông tin theo thời gian thực Mục tiêu của tính năng này là tạo ra trải nghiệm tương tác giữa sponsor và collector, giúp collector nhanh chóng thu thập dữ liệu và tăng cường sự tương tác.
36 d) Các mục tiêu của Pulsely
- Có thể đáp ứng nhu cầu get insight và give insight của collector và sponsor
- Sau khi sponsor give insight, collector có thể tổng hợp lại được các insight đã thu thập
- Quan trọng: Tạo được tinh thần tích cực, vui vẻ và tương tác tốt đối với sponsor
Pulsely offers key functionalities, including the ability for the Collector in the Client Web to create overarching themes for a set of questions, enabling sponsors to gain higher quality insights.
Chức năng tạo các câu hỏi: Collector tạo các câu hỏi trong cùng chủ đề
Chức năng hiển thị chủ đề: Sponsor sử dụng Client Mobile để theo dõi danh sách chủ đề để trả lời câu hỏi
Chức năng trả lời câu hỏi: Sponsor sử dụng Client Mobile để tham gia và trả lời câu hỏi
39 Chức năng tổng hợp insight: Collector sử dụng Client Web để tổng hợp lại insight đã thu thập
Chức năng Live insight: Collector có thể xem trực tiếp theo thời gian thực các insight được đóng góp của Sponsor
Thành quả thu được
- Trải nghiệm thực tế Mô hình phẳng và Quy trình Agile
- Phối hợp trong một team lớn (13 người) để cùng nhau xây dựng nên một product với đẩy đủ cả Server, Client Web và Client Mobile chạy ổn định
Trong quá trình thực tập, tôi đã học hỏi và phát triển đáng kể cả về kiến thức lẫn kỹ năng trong lập trình ứng dụng di động Tôi đã hiểu và áp dụng hiệu quả các khái niệm quan trọng như MVP Pattern, Repository Pattern, SOLID Principles, Git Branching và RESTful API, đây đều là những yếu tố cốt lõi trong phát triển ứng dụng di động Hơn nữa, khả năng tư duy lập trình, logic và kỹ năng xử lý tình huống của tôi cũng đã được cải thiện rõ rệt.
Quá trình xây dựng một sản phẩm thực sự có người sử dụng bao gồm nhiều bước quan trọng, từ việc phát triển ý tưởng và xây dựng concept cho đến lập kế hoạch và thực hiện các công việc hàng ngày Sự trao đổi giữa các thành viên trong nhóm và việc rút kinh nghiệm sau mỗi giai đoạn ngắn là điều cần thiết Nhờ vào những bước nhỏ nhưng thiết yếu này, các sinh viên đã cùng nhau tạo ra một sản phẩm hoàn chỉnh và thực tiễn.
- Kỹ năng lập trình Android sử dụng ngôn ngữ Java được cải thiện cực kỳ đáng kể
- Áp dụng tốt Quy trình Agile, có kinh nghiệm làm việc nhóm một cách hiệu quả Nâng cao kỹ năng giao tiếp của bản thân
Cần cải thiện trong thời gian tới
- Sau khi hoàn thành kỳ thực tập, tự bản thân và được các anh chị cho nhận xét là
Kỹ năng giao tiếp của bạn rất tốt và là một thế mạnh, tuy nhiên, bạn cần cải thiện kỹ năng đưa ra phản hồi, vì cách phản hồi hiện tại có thể quá gay gắt và ảnh hưởng tiêu cực đến mối quan hệ trong tương lai.
- Kỹ năng chuyên môn trong lập trình Android tốt, nổi bật trong nhóm Nhưng vẫn cần cải thiện thêm
C Cảm nhận của bản thân về công ty
- Các anh chị cực kỳ tận tâm và nhiệt huyết, giàu kinh nghiệm
Tham gia kỳ thực tập tại công ty Geek Up mang đến cho tôi những trải nghiệm thú vị và bổ ích, góp phần quan trọng vào sự phát triển tương lai của bản thân.
Rất hy vọng trong thời gian tới sẽ có cơ hội đến trực tiếp văn phòng của Geek Up để bắt đầu làm việc và hợp tác cùng các anh chị tại đây.