TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
ỨNG DỤNG HỖ TRỢ TUYỂN DỤNG TALARIA
Công ty thực tập
Người phụ trách
Thực tập sinh
Công ty cổ phần và công nghệ Geek Up
● Nguyễn Minh Trung
● Đặng Vũ Minh Hiếu
Trần Minh Khơi
TP. Hồ Chí Minh, tháng 12 năm 2021
1
Lời mở đầu
Một mơ hình kinh doanh, tồn tại được trên thị trường một phần khơng nhỏ đóng góp đến
từ tập khách hàng mục tiêu. Ơng bà ta hay có câu: “khách hàng là thượng đế” cho thấy
tầm quan trọng của khách hàng và việc một ý tưởng kinh doanh có thành cơng hay khơng
đến từ việc chúng ta mang lại bao nhiêu giá trị cho khách hàng mục tiêu? Những gì
chúng ta đang làm, sản phẩm ta phát triển, nó có thực sự tạo ra một sự tác động tích cực
nào đó cho khách hàng tiêu thụ.
Phần mềm là sản phẩm của sự tiến bộ, đóng vai trị ngày càng quan trọng trong đời sống
mỗi con người. Mọi người thời đại này kết nối với nhau dễ dàng hơn thơng qua phần
mềm. Lấy ví dụ như một cơng ty, khơng cần biết vị trí địa lý xa hay gần, chỉ cần một cái
website là mọi người đều có thể truy cập và cập nhật thông tin về công ty này. Ở góc độ
một cơng ty tổ chức, phần mềm mang lại giá trị cho khách hàng. Giải pháp cho một vấn
đề nan giải nào đấy có thể được đóng gói chỉ bằng một phần mềm, thật là một ý tưởng
tuyệt vời.
Thấu hiểu được tầm quan trọng của phần mềm, em quyết định đây là thời điểm để mang
những kiến thức đã tiếp thu trong trường áp dụng vào thực tiễn. Vậy nên em chọn Geek
Up là môi trường để học hỏi và cọ xát.
2
Lời cảm ơn
Em xin trân trọng cảm ơn phía cơng ty đã tạo ra một chương trình thực tập, tạo điều kiện
học hỏi và cọ sát thực tế cho sinh viên. Đây là một chương trình rất có ý nghĩa và em
cũng hiểu rằng phía cơng ty đã rất nỗ lực đầu tư và duy trì một chương trình nhằm giúp
các bạn sinh viên có cơ hội phát triển và chứng tỏ năng lực.
Chương trình thực tập, xây dựng product thực chiến trong 10 tuần là một trải nghiệm thật
sự rất khác, nằm ngồi mong đợi. Xun suốt chương trình, em được tiếp xúc với nhiều
anh chị có rất nhiều kinh nghiệm trong việc phát triển sản phẩm số, tham gia workshop
chia sẻ và kiến thức. Sau chương trình em đã tiếp thu được những kiến thức nền tảng nhất
để phát triển và triển khai một sản phẩm phần mềm.
Đặc biệt cảm ơn anh Nguyễn Minh Trung và Đặng Vũ Minh Hiếu đã ln túc trực và tích
cực giải đáp những câu hỏi, thắc mắc. Cảm ơn team GA (Geek Acquisition), đặc biệt là
chị Uyên Phan đã luôn theo dõi, quan tâm và nhắc nhở team logwork mỗi ngày. Cảm ơn
tribe Geek Up đã tạo ra một môi trường làm việc văn minh, nơi mọi người đều có tiếng
nói và quyền quyết định.
Trần Minh Khơi
TP. Hồ Chí Minh, ngày 21 tháng 12 năm 2021
3
Lưu ý
“Thơng Tin Bảo Mật” bao gồm tồn bộ thơng tin và dữ liệu về tổ chức, điều hành, nhân
sự, tài chính, kinh doanh, chiến lược, chính sách, khoa học, kỹ thuật, công nghệ, kinh tế,
thương mại, bán hàng, và tất cả các thông tin liên quan đến hoạt động vận hàng của Công
Ty, khách hàng của Công Ty mà không được phổ biến ra công chúng một cách tự do,
được lưu trữ dưới bất kỳ hình thức nào và được Công Ty cung cấp cho Thực Tập Sinh
hoặc Thực Tập Sinh bằng cách khác có được trong khi thực hiện cơng việc, nhiệm vụ của
mình cho và tại Cơng Ty.
Em đã cam kết bảo mật các Thông Tin Bảo Mật được quy định cũng như sẽ không đề cấp
đến bất kỳ chi tiết nào liên quan đến product concept.
4
Nhận xét của khoa
5
Lời mở đầu
1
Lời cảm ơn
2
Lưu ý
3
Nhận xét của khoa
4
1. Giới thiệu cơng ty
1.1. Giới thiệu chung
1.2. Văn hóa
1.3. Một số sản phẩm của cơng ty
6
6
7
15
2. Nội dung thực tập
2.1. Tìm hiểu chuyên môn
2.1.1. Scrum & Agile
Thời gian
Nội dung
Thực hiện
Kết quả
2.1.2. Github
Thời gian
Nội dung
Thực hiện
Kết quả
2.1.3. NestJS
Thời gian
Nội dung
Thực hiện
Kết quả
2.1.4. TypeORM
Thời gian
Nội dung
Thực hiện
Kết quả
2.3. Chi tiết dự án
2.3.1. Giới thiệu
2.3.2. Thành viên
2.3.3. Timeline
3.1. Thách thức
3.1.1. Công nghệ chuyên môn
Mô tả
Giải pháp
3.1.2. Về mindset làm product
18
18
18
18
18
21
21
22
22
22
24
24
25
25
25
27
27
27
27
27
29
29
30
30
30
31
32
32
32
32
33
6
Mô tả
Giải pháp
2.3.4. Kết quả
3. Tổng kết
3.1. Thành quả
3.2. Cảm nhận
3.3. Một số hình ảnh thực tế
33
33
33
34
34
34
35
7
1. Giới thiệu công ty
1.1. Giới thiệu chung
● Tên đơn vị: Công ty cổ phần công nghệ Geek Up
● Trụ sở, chi nhánh
○ 244/31 Huynh Van Banh, Phu Nhuan District, Ho Chi Minh City
○ 27B/9 Nguyen Dinh Chieu, Dakao Ward, District 1, Ho Chi Minh City
● Thông tin liên hệ
○ Website: />○ Số điện thoại: +84 28 6262 4400
○ Email:
● Các ngành nghề kinh doanh
○ Nhà hàng dịch vụ ăn uống phục vụ lưu động
○ Sản xuất phần mềm
○ Lập trình máy vi tính
○ Quảng cáo
Định hình bản thân là một product partner, đội ngũ phía Geek Up đã và đang phát triển
những sản phẩm số mang lại giá trị thật cho khách hàng. Kể từ năm 2014, Geek Up đã
trải qua hơn 480 dự án, triển khai thành công hơn 120 sản phẩm số phục vụ các lĩnh vực
khác nhau và có hơn 80 khách hàng doanh nghiệp ở khắp mọi nơi.
Một số partner nổi bật của Geek Up có thể kể đến như: Viettel, Mobifone, FPT,
Heineken, waitrr, TPBank, TheCoffeeHouse, ACB, SSI… và nhiều hơn thế. Partner với
Geek Up sẽ là một trải nghiệm rất khác, nơi mọi người thật sự ngồi lại và cùng nhau phân
tích và đưa ra giải pháp có thể mang lại những giá trị thật.
8
1.2. Văn hóa
Ở Geek Up có một nét văn hóa rất khác biệt, còn được biết đến là Flat Structure. Một văn
hóa phẳng với slogan là “khơng có sếp”, khơng ai có quyền độc tài đưa ra quyết định mà
đó phải là tiếng nói chung của cả team. Quyết định và giải pháp được thống nhất dựa trên
sự tổng hợp quyết định của các thành viên và dựa trên những dữ liệu có thật. Mơi trường
làm việc ở đây khơng khuyến khích cái tơi cá nhân mà đề cao những giá trị đồn kết, đề
cao tính hợp tác cùng nhau giải quyết vấn đề.
Geek Up khơng chia theo phịng, khơng có phịng ban cụ thể như các cách tổ chức truyền
thống. Ở đây tồn tại một cách thức tổ chức rất hiện đại và văn minh.
Tribe
Toàn bộ thành viên của Geek Up, gắn bó và đồn kết nhau như
sinh sống trong bộ lạc.
Guild
Các thành viên trong nhóm có cùng sở thích ngoại khóa. Hiện
tại em biết được có 2 guild hoạt động tích cực nhất là
● Forerunner (chạy bộ)
● Foobar (đá banh)
Chapter
Các thành viên có cùng chun mơn, cùng một mối quan tâm
đến một mảng kỹ thuật nào đó.
Squad
Các thành viên trong 1 nhóm, phối hợp và thực hiện cơng việc
trong dự án.
9
Các chapter trong geekup
10
Geek Up tồn tại 4 giá trị cốt lõi, được define cụ thể và dán lên tường như là một lời nhắc
nhở các thành viên trong tribe
Honesty
Sống thật và là chính mình
Geeks Get It Done
Hồn tất cơng việc đạt tiến độ bằng mọi resource có
thể có
High Standard
Tiêu chuẩn cao, ln tìm kiếm một chuẩn mực cao
hơn trong những việc mình làm
Stay Hungry Stay Foolish
Bắt đầu với mindset như một beginner, trong tâm thế
sẵn sàng học hỏi và tiếp thu tri thức
Ngồi 4 giá trị cốt lõi, cịn có những giá trị khác, được xây dựng theo thời gian, xuyên
suốt quá trình deliver nhiều dự án khác nhau. Có thể kể đến một số giá trị như
● Awesome Comrade: một người đồng đội tốt hơn, nỗ lực thêm một chút để cover
cho đồng đội
● Commitment: cam kết với dự án, không bỏ dở.
● Ownership: có quyền sở hữu với product đang phát triển, nghiên cứu và tìm cách
để làm product tốt hơn standard.
● Contribution: đóng góp và tận tụy với dự án. Ngay cả khi đó khơng phải trách
nhiệm của mình.
11
Geek Up định kỳ mỗi tuần đều host các buổi workshop, nơi mọi người chia sẻ kiến thức
và kinh nghiệm sau q trình deliver. Vào mỗi thứ 6 cịn có friday meetup, nơi mọi người
bày tỏ sự biết ơn, nói lời cảm ơn đến những đồng đội trong team. Sau đây là một số hình
ảnh về những buổi workshop diễn ra tại Geek Up.
Một buổi Thursday Workshop hàng tuần. Đôi khi người chia sẻ là một người ngồi tribe,
người có background và câu chuyện ý nghĩa muốn chia sẻ cho mọi người.
12
Một buổi Monday Workshop chia sẻ về tư duy phản biện. Thơng thường workshop thứ 2
ngắn gọn và súc tích hơn, chia sẻ về một số kinh nghiệm trong quá trình làm việc cũng
như key takeaway.
13
Tuesday Workshop, nơi mọi người trong tribe chia sẻ về kiến thức chun mơn. Một dịp
để ơn lại những gì đã tiếp thu sau một khoảng thời gian.
14
Friday Meetup, nơi mọi người bày tỏ sự biết ơn. Dành lời khen, cảm ơn đến những người
đồng đội của mình. Cuối buổi được thoải mái uống bia ăn uống, vui chơi giải trí.
15
Ở Geek Up có cơ chế lên level, mọi member sau một thời gian log work và tích điểm sẽ
được thăng hạng, đánh dấu một cột mốc trong hành trình làm việc tại Geek Up.
16
1.3. Một số sản phẩm của công ty
Waitrr - Ứng dụng đặt đồ ăn
/>gapore-f-b-market
17
The Coffee House - Ứng dụng chăm sóc khách hàng
/>
18
TPBank - Ứng dụng tài chính
/>
19
2. Nội dung thực tập
Quá trình thực tập trong 10 tuần, với mục tiêu xây dựng và phát triển ứng dụng hỗ trợ
team GA (team HR) tuyển dụng thành viên mới cho tribe.
2.1. Tìm hiểu chun mơn
2.1.1. Scrum & Agile
Thời gian
● 1 ngày
Nội dung
Agile là một văn hóa làm việc và deliver tiến độ tại Geek Up. Ở đây chúng ta khơng so
sánh Agile với những mơ hình quản lý dự án khác. Có vẻ như tribe đã tìm được tiếng nói
chung khi áp dụng Agile vào cơng việc.
Một số lợi ích nền tảng Agile mang lại cho tổ chức, có thể kế đến như
● Đi nhanh hơn: khơng hẳn là áp dụng agile sẽ đi nhanh hơn. Đây hoàn tồn khơng
phải là hiệu ứng, một trong những đặc tính của mơ hình agile là cho phép chúng ta
thay đổi định hướng nhanh. Trong một mơ hình tổ chức agile được xây dựng trên
tinh thần minh bạch và tiếng nói chung thì agile mang lại khả năng có thể thích
nghi với thay đổi nhanh hơn.
● Năng suất cao: hiệu suất ln là bài tốn hàng đầu cần phải giải quyết trong các
mơ hình quản lý dự án. Khi nói về hiệu suất, ta mong chờ hoàn thành được nhiều
20
thứ hơn với cùng lượng nhân sự và resource ta có. Các nguyên tắc agile liên hệ
chặt chẽ đến việc giao tiếp và phối hợp trong một team dự án. Trong rất nhiều
trường hợp, việc dev code một đằng, business goals và user needs một nẻo đã
không mấy xa lạ và việc này làm giảm hiệu suất trong team rất nhiều. Agile đòi
hỏi sự alignment giữa team dev và các stakeholders, đảm bảo những gì mình làm
align đúng với business goal và user needs.
4 giá trị cốt lõi của agile
● Xem trọng con người hơn các quy trình và cơng cụ. Sự giao tiếp là điều rất quan
trọng trong một team dự án.
● Sản phẩm chạy được hơn là tài liệu tồn diện. Trong nhiều trường hợp, đã có
những dự án với một khối lượng tài liệu được viết rất nhiều và dày đặc. Điều này
vơ hình chung làm chậm tiến độ dự án. Agile không bỏ việc ghi chép tài liệu,
nhưng tài liệu chỉ ở mức vừa đủ, cho các developer có thể thấu hiểu user stories và
tiến hành công việc.
● Hợp tác với khách hàng hơn là đàm phán hợp đồng. Khách hàng là một phần trong
dự án, giao tiếp và tương tác với khách hàng giúp cho những bước phát triển đầu
tiên đáp ứng đúng yêu cầu.
● Phản hồi với thay đổi hơn là làm theo đúng kế hoạch ban đầu. Nói như vậy khơng
có nghĩa là agile không rũ bỏ bước lập kế hoạch, chỉ là khi có những dữ kiện,
những sự thay đổi nào đó. Hãy cân nhắc và xem xét, sự thay đổi này có thật sự
giúp ích cho khách hàng và khách hàng có thật sự cần nó hay khơng. Khơng phải
sự thay đổi nào chúng ta cũng apply.
12 nguyên tắc agile
● Sự hài lòng của khách hàng ngay cả ở những giai đoạn đầu của dự án. Khách hàng
sẽ rất vui khi được cập nhật tiến độ thường xuyên.
● Đáp ứng với sự thay đổi yêu cầu trong quá trình phát triển.
● Thường xuyên và một cách tịnh tiến, làm cho phần mềm tốt hơn theo thời gian
● Sự phối hợp giữa stakeholder và team dev trong suốt quá trình dự án.
● Hỗ trợ, tin tưởng và động viên đồng đội trong team.
● Tương tác trực tiếp. Sự giao tiếp sẽ tốt hơn rất nhiều nếu các thành viên có dùng
địa điểm làm việc.
● Một phần mềm hoạt động tốt chính là sự đánh giá tốt nhất cho một quá trình hoạt
động.
● Giữ vững tốc độ deliver dự án.
21
● Chú ý đến các yếu tố chuyên môn, gần như đây là thứ quyết định tốc độ deliver dự
án. Những vấn đề ta đã giải quyết, đã gặp qua một lần thì document lại cho team
biết. Sau này gặp lại vấn đề này thì có nhiều materials hơn để xử lý.
● Sự đơn giản, deliver đủ để hoàn thành cơng việc.
● Các thành viên trong team có quyền quyết định lên dự án, điều này giúp thúc đẩy
sự sáng tạo. Các thành viên có nhiều ownership hơn với dự án.
● Review và nhận xét bản thân, làm thế nào để trở nên tốt hơn.
Scrum là một framework ứng dụng agile, được phát triển đầu những năm 1990s và cho
đến tận ngày nay. Những người góp phần tạo ra scrum vẫn liên tục cập nhật và đổi mới
framework. Đây cũng là một điểm khác biệt lớn giữa scrum và những framework khác,
nó khơng chỉ là một cái proposal hay một presentation, framework scrum bản thân nó
thay đổi và phát triển theo thời gian.
Nền tảng của scrum đến từ việc chia dự án theo từng giai đoạn (sprint) với thời gian
timebox (2 tuần). Để thực thi scrum, đòi hỏi người quản lý dự án phải ni dưỡng một
văn hóa, nơi mà mọi người…
● Chia vấn đề phức tạp thành các Product Backlog
● Team sẽ lựa chọn các Backlog và tiến hành thực hiện trong một sprint
● Cuối sprint, team và stakeholders ngồi lại với nhau để phân tích kết quả. Định
hướng cho sprint tiếp theo
● Lặp lại quy trình
Các scrum events xuyên suốt dự án
● Sprint Planning: team thực hiện lên kế hoạch đầu mỗi sprint. Chọn ra những
backlog để process trong sprint.
22
● Daily Scrum: diễn ra mỗi ngày, team chọn một giờ cố định trong ngày lúc mọi
người đều available. Team nhìn lại các backlog, hơm qua làm gì, hơm nay sẽ làm
gì, làm thế nào để làm tốt hơn.
● Sprint Review: diễn ra vào cuối sprint, team nhìn nhận và đánh giá khách quan dự
án sau sprint vừa rồi. Dự án có đạt được sự tăng trưởng nào khơng.
● Sprint Retrospective: diễn ra vào cuối sprint, team nhìn nhận và đánh giá quy
trình làm việc, giải quyết xích mích mâu thuẫn. Có thể cải thiện được gì trong
những, làm sao để làm việc nhanh hơn trong những sprint tiếp theo.
Thực hiện
● Tham gia training đầy đủ
● Tích cực đặt câu hỏi
● Sử dụng một số công cụ nội bộ hỗ trợ quản lý dự án theo concept của Scrum
Kết quả
● Nắm bắt được workflow trong team
● Nâng cao hiệu quả làm việc nhóm
23
2.1.2. Github
Thời gian
● 1 ngày
Nội dung
Làm việc trong team dev, chúng ta luôn cần một cách thức để quản lý source code dự án
và github là một công cụ đã khơng mấy xa lạ với các lập trình viên. Nói về quản lý source
code, trong lập trình đây ln là một đề tài nóng. Mỗi người trong team dev khơng thể
cùng code trên một mã nguồn, nó phải có sự tách biệt nhất định theo một cách nào đó.
Khi sử dụng git, mỗi thành viên khi implement chức năng mới đều phải tạo một nhánh
riêng (branch) để code và test. Sau khi implement và test đầy đủ các chức năng, ta tiến
hành merge các nhánh lại thành một nhánh chính, và các chức năng mới sau này đều sẽ
được tách từ nhánh chính này.
24
Cơng việc sẽ xúc tiến nhanh hơn nếu có workflow rõ ràng. Làm việc với git cũng vậy,
chúng ta cũng define một workflow rõ ràng trong teams
Master
Nhánh chính, dùng để kiểm thử ứng dụng. Chỉ chạy trên môi
trường dev
Hotfix
Nhánh được dùng khi fix bug. Khi chức năng nào đấy có bug,
tiến hành tách nhánh hotfix để cài đặt vá lỗi
Feature
Nhánh chức năng, tách nhánh mới mỗi khi cài đặt chức năng mới
Release
Nhánh release, dùng demo ứng dụng. Được setup để chạy trên
môi trường production