Saturday, June 28, 2014

[RMIT Alumni Profile] - Nguyen Nam Khang, Bachelor of Information Technology

Know what you want and make it happen

Graduating from RMIT with a GPA of 4.0, organizing educational activities for the non-profit group MultiUni, and working as Vietnam's Chief Representative of Hong Kong software company Cogini, Nguyen Nam Khang knows how to get the best out of himself.
“Know what you want, but never lock yourself into just one thing. Instead, try to develop a variety of knowledge areas and skill sets,” Khang says.

Motivated to learn

Khang always wanted to become a computer programmer, so when the time came he chose the Information Technology program at RMIT Vietnam
“During my three years at the university, besides gaining and extending specialised knowledge, I took every chance to develop other important skills such as self-directed learning, time management, presentation skills and teamwork. These are significant skills for every job."
According to Khang, it was thanks to the student-centred teaching methodology at RMIT that he effectively managed many aspects of his study, including choosing class schedules, learning new methods and deciding his future direction.
“In an environment where students have the chance to interact, discuss and even debate directly with lecturers and classmates, where different learning objectives are respected equally, I felt motivated to dig deeply into IT knowledge from many sources and to apply the learning method that worked best for me.”

Inspired to spread his wings

Khang believes that participating in extracurricular activities is another effective way for students to try various roles. Leading RMITC, the University’s student-run information technology club, was Khang’s first management experience. The club gave him the opportunity to not only expand his IT knowledge but also develop organizational and project management skills.
Khang also participated in educational projects with MultiUni, a non-profit organisation that aims to help young people better transition into the real working world. Khang helped organise the workshops and shared his knowledge and experience of IT with the program’s participants.
“Pursue your passion with all your heart. As long as you try your best and do everything with the fullest enthusiasm, success will come to you sooner or later,” he says.

Realising his dreams

In 2010, one of the IT lecturers at the University introduced him to an internship opportunity at Cogini Hong Kong, an international software development and systems integration company serving clients from all over the world.
“Having studied in the international environment at RMIT, I was able to work well with other colleagues from different countries.”
In February 2011, Cogini established its first office in Vietnam and Khang was appointed as their Chief Representative. He is now in charge of running the office, developing relationships with customers and managing human resources. However, Khang still manages to find time for his true calling as a senior web developer.
Willing to step out of his comfort zone to experience different roles, Nguyen Nam Khang succeeded in pursuing his dream. He is typical of today’s successful youth: dynamic, eager to learn and always devoted to his passion.

[P/v ITViec] - Tính xấu nhất của developer là “Lười”

This dated back to December 2013 when I was working at Cogini, but recently I have some free time and figure that it is nice to keep a copy of this interview for myself. And sorry folks, the interview was in Vietnamese.

=============

Sinh năm 1990, đã đi làm được 3 năm với hiện là trưởng đại diện của Cogini tại Việt Nam với văn phòng khang trang ở quận 7 và hơn 20 nhân viên. Khang Nguyễn là 1 trường hợp dân IT làm ở vị trí quản lý nhanh và sớm so với tuổi. Hãy cùng ITviec khám phá xem anh chàng này có gì đặc biệt.

“Học xong 2 năm đầu ở RMIT, Khang được thực tập 6 tháng tại Cogini Đài Loan nhờ mối quan hệ của các thầy dạy trong trường. Sau 6 tháng, sếp hỏi có muốn về Việt Nam mở chi nhánh Research & Development của Cogini không. Khang về nước, gọi mấy thằng bạn học cùng ở RMIT vào thành lập công ty luôn.”
Làm thế nào để Khang thuyết phục được sếp cho phép mở chi nhánh R&D ở Việt Nam khi còn chưa tốt nghiệp đại học?
Lúc đó Khang cũng chơi liều thôi, dù giờ nghĩ lại thấy cũng có thể hiểu được. Khang đã có kiến thức khá vững về công nghệ, chứng minh được điều đó bằng kết quả làm việc của mình khi ở Đài Loan, và đã có kinh nghiệm thành lập và điều hành CLB IT của RMIT được 1 năm.
Làm rồi mới biết hóa ra điều hành công ty cũng không khác điều hành CLB IT là mấy, trừ chuyện bây giờ mình làm với khách hàng thật và mất tiền là tiền thật.
Vision của Khang cho Cogini là gì?
Là xây dựng Cogini thành 1 nơi làm việc vui vẻ (a fun place to work).
Có rất nhiều điều bạn có thể tập trung vào làm khi xây dựng 1 công ty: lương bổng, chương trình đào tạo, khách hàng… Khang chỉ có thể tập trung vào làm 1 điều và làm thật tốt điều đấy, và Khang chọn yếu tố fun cho Cogini. Mọi quyết định của công ty đều được dựa theo tiêu chí nó có tạo ra 1 nơi làm việc vui vẻ hay không.
Cogini = a fun place to work
Nhưng còn rất nhiều yếu tố khác, như ý nghĩa trong công việc, cảm giác quan trọng, doanh thu… Tại sao lại chỉ là vui vẻ?
Có thể Khang đã sai lắm chứ. Khang không biết hết được, nên Khang cứ làm thôi, rồi có gì sửa sau.
Cogini team building tại Cần Giờ
Ở công ty có nhiều người giỏi hơn Khang?
Hầu hết mọi người đều giỏi hơn Khang ở 1 điểm nào đó. Khang không thể tự mình làm hết mọi việc được, nên muốn mời những người giỏi hơn về để làm việc tốt hơn mình ở các mảng khác.
Vậy Khang có gì hơn họ để Khang tiếp tục ngồi ở vị trí leader của công ty?
Nếu có 1 điều Khang làm đặc biệt tốt, đó là giữ vững vision về môi trường làm việc vui vẻ của công ty trong mọi tình huống, mọi quyết định. Chắc là làm cũng được, nên đến giờ vẫn chưa thấy bị đuổi.
Ví dụ cho điều này?
Nói 1 cách hình tượng vui như thế này, mỗi khi nghĩ đến việc đưa offer cho ai, Khang đều tự hỏi mình: sau 3 tháng làm việc với người này, mình có dám nhìn thẳng vào mặt họ và nói “F you” không, và họ có phản ứng lại theo kiểu “F you, too” không. Trả lời có cho câu hỏi này là điều kiện cần.
Khang là người làm việc cá nhân hay đồng đội?
Khang thích câu “What you do doesn’t matter; whom you do it with matters.” Nói cách khác tính bầy đàn của Khang rất cao. Tất nhiên là đồng đội rồi.
Khang và team mình ở Cogini
Quan niệm của Khang về nghề lập trình viên?
LTV là nghề đưa ra giải pháp, chứ không phải là xây dựng sản phẩm.
Nói theo 1 cách khác là LTV học code không thôi không đủ. Họ phải ra ngoài kia, ngắm nhìn cuộc sống, nhìn ra những vấn đề hiện có và suy nghĩ về việc dùng công nghệ để xây dựng giải pháp cho những vấn đề đó.
Các trường ĐH và kể cả xã hội nói chung quá chú trọng vào việc giới thiệu những công nghệ mới nhất, hiện đại nhất. Điều này làm LTV nhiều khi quên mất rằng bản thân công nghệ chỉ có ý nghĩa khi nó được dùng để giải quyết 1 vấn đề nào đó.
Khanh áp dụng điều này vào công việc thực tế như thế nào?
Nguyên tắc của Khang là không bao giờ tin tưởng khách hàng của mình ngay trong lần gặp đầu tiên, và không bao giờ tự cho rằng khách hàng biết về sản phẩm của họ nhiều hơn mình. Khách hàng thuê mình để giúp họ giải quyết 1 vấn đề mà tư họ không giải quyết được, vậy có gì đảm bảo giải pháp họ vẽ ra cho mình xây là giải pháp tối ưu?
Ví dụ nếu 1 bà chủ quán cà phê đến nhờ Khang xây 1 billing system cho quán. Nếu muốn tìm ra giải pháp tối ưu, người Khang cần nói chuyện với lại không phải là bà ấy, mà là nhân viên quầy thu chẳng hạn.
(Đọc thêm về bài blog của Khang về chủ đề LTV và bài tập về nhà tại đây)
Tính xấu nhất của developer ở Việt nam?
Lười nâng cao giá trị bản thân. Ví dụ như 1 anh chàng sẵn sàng ngồi 5h liền chỉ để chơi Dota, trong khi anh ta có thể chơi 5 games khác nhau để tăng kỹ năng. LTV mà chỉ biết làm đi làm lại một thứ thì sẽ chỉ đứng mãi 1 chỗ, mà nguyên nhân chính chỉ tại chữ “lười.”
Làm thế nào để nâng cao giá trị bản thân?
Khang hay hỏi nhân viên của mình là: “Tao không hứa được là Cogini sẽ ăn đời ở kiếp với tụi bây. Nếu ngày mai Cogini phá sản, tụi bây có chắc chắn mình sẽ tìm được việc gì mới ở 1 công ty tốt hơn và trả lương tốt hơn không?” Nếu câu trả lời là không, tức là họ đang không tự nâng cao giá trị bản thân.
Nói 1 cách sách vở hơn, hãy tự hỏi mỗi ngày là hôm nay mình có làm điều gì có tính rủi ro hay không. Rủi ro chính là thước đo xem bạn có đang học được điều gì hay không.

ITviec muốn phỏng vấn Khang với tư cách là 1 kỹ sư IT trẻ thành công sớm, để truyền lửa và đam mê cho những bạn trẻ khác.
Ồ vậy thì Khang không chắc mình có phải là người ITviec đang tìm kiếm đâu nhé. Khang sợ 1 bạn trẻ lửa cháy hừng hực tìm đến Khang có thể dễ bị dập tắt lửa vì Khang không chém gió giỏi. Ngày xưa Khang nói dối 1 cây đấy, nhưng giờ Khang nhận ra nói dối hay chém gió lúc đầu cuối cùng sự thật vẫn là sự thật.
Khang sẽ không nói về với Khang để cùng xây dựng những sản phẩm có tầm quốc tế, rồi hôm sau giao cho bạn ấy 1 project về quán cà phê nhỏ trên đường Đồng Khởi. Khang có gì nói nấy, và nói “Tôi không biết” rất nhiều, vì thực sự có rất nhiều điều Khang không biết. IT cũng như những ngành khác, có lúc này lúc khác. Tốt nhất là nên nhìn thẳng vào thực tế và tìm ra giải pháp, chứ chém gió quá cũng chỉ đến thế mà thôi ha.

Cám ơn Khang đã có 1 bài phỏng vấn ít gió nhưng vẫn chất lượng.
Cám ơn ITviec.
http://blog.itviec.com/2013/12/cogini-khang-nguyen-phong-van/

Saturday, June 14, 2014

Deploy (aka Đi Đẻ)


(Scroll down for Vietnamese)

The end of the day is approaching, dragging along a dimming sunlight. Breezes from the river bank bring respite to the scorching heat of summer. Despite of that, thousands of exhaust pipes, stuck up in every intersection, are releasing enormous smoke and heat, burning the street like a frying pan. Taking a breath full of the smell of sweat and exhaust gas, he is mumblingly cursing this full-of-construction god-damn city. Moving step-by-step in an endless traffic jam, he is breathing heavily, his heart is missing a beat here and there and his adrenal gland is filling him up with adrenaline. Everything reminds him of the uneasy feeling he had in the dates with his first lover after colleague. But no, he has no date tonight. There is no one in this god-damn city looking for him. Tonight he deploys!

3 hours prior to deploy.

The web site is given the last check. It is hard to keep looking at these web pages with a fresh eye. For many weeks, he has been staring at them as much as his own nose. And just as with the nose, his brain has already decide to remove the web site interface out of its vision. Regardless of Gestalt and his theory, at this moment, he is only capable of noticing tiny, little bugs. Margins left and right are not even. The mouse cursor isn’t changed when hovering over the logo. Some log lines are left in JavaScript.

     PM: Hey why is the new CSS not displaying?
     Designer: Have you cleaned your cache yet? And which browser is that, by the way?
     PM: IE6 ma’am. The client keeps mentioning there is a portion of his users who are still using it so I thought I should give it a try.
     Designer: Bloody hell! Remove that motherfucker browser from the contract next time, ya hear me?! 
     PM: Arggg just fix it. Next time when we do our own product, you can remove as many browsers as you want.
     Designer: Man, this HTML is ugly. This Friday meeting, I gotta repeat the convention of…

An hour prior to deploy.

His brain works best when it is cool down. And in this tropical summer, that is precisely sixty minutes right before the deploy time. The dull mind filled with sweat and exhaust gas earlier suddenly brightens. The spec, as long as the Ramayana, that he has miserably paged through the last few weeks, now becomes transparent and comprehensible. And huge bugs start to slap him right in the face. Handicap load balancing. Undocumented features. And greatest of them all, the specs itself has bugs!

     PM: Dude, why can’t I extract patient medical info from the system?
     Developer: Duh! The other day you said it was for the next release, didn’t you?
     PM: Right right, but without medical info, we can’t draw graphs in the report, which is for this release.
     Developer: That code was written centuries ago, all hard-coded man!
     PM: WTF. I told you to re-write that ancient code months ago!
     Developer: Whaaat?!

15 minutes prior to deploy.

The clock is ticking to a new day. In the small alley, his room is the only left light on. Like nocturnal animals, this is the time the deploy troop most active. In the darkness of the sleeping city, the troop holds a hope of changing its life with a magical deploy. By different means, all the people involving in the project are staring at the website. Client and designer, through browsers' interface, are looking at the glorious outfit of their brainchild. Developer and sysadmin keep looking at the dark terminal, skimming through thousands line of code. And he, running back and forth between the two. The server, resides in an unknown corner of the world, is taking its chance to act as quirky as it can, refusing to work until everything, yes every single thing, is perfect.

     Sysadmin: Holy shit! It is giving a database error! Dude check it out!
     Developer: Hey I can’t access to it! You haven’t created an ssh account for me yet!
     Sysadmin: There you go, hurry up!
     Developer: Oh here it is, the database is empty. Lets upload a dump from your local server.
     Sysadmin: Huh, wouldn’t it be quicker to just use yours?
     Developer: He he, I don’t remember that long command. Sorry... :D
     Sysadmin: WTF are all developers as lazy as you?
     Developer: Well, Bill Gates once said that….
     Sysadmin: Shut up!!!

Finally, after all the troubles, hardware, software, and peopleware, the deploy is completed. One more project is delivered on time. Everyone congratulates each other perfunctorily then quickly retreat to bed, hoping for a short nap before the working day tomorrow. The last light in the alley eventually goes out. The body that has been run on adrenaline since the afternoon refuses to sleep, yet has no energy left for any activity. His eyes half close from sleepiness, dreaming of the heart attacks when server crashes. Taking a deep breath, “the night is long” he talks to himself...

===================================

Tan tầm, trời tắt nắng. Cái nóng bức người mùa hè đã dịu bớt và gió từ bờ sông thổi vào man mát. Nhưng hàng ngàn cái ống bô dồn ứ mỗi ngã tư vẫn nhả khói, phả hơi nóng vào mặt đường như hoả lò. Hít một hơi đặc mùi mồ hôi và khói bụi, hắn lầm bầm chửi rủa cái thành phố chết tiệt đầy những lô cốt và chiến hào. Trong cái điệp khúc chạy-thắng, nhích từng bước một, hắn thở gấp gáp, tim đập loạn nhịp và tuyến thượng thận bơm đầy adrenaline vào máu. Hắn nhớ đến những lần hẹn với cô người yêu đầu sau đại học, hắn cũng nôn nao như vậy. Nhưng không, đêm nay hắn không gặp ai cả. Chẳng còn ai trong cái thành phố chết tiệt này trông mong hắn. Đêm nay hắn deploy!

3 tiếng trước deploy.

Trang web được rà soát lại. Thật khó để nhìn những trang web này với con mắt tươi mới. Từ nhiều tuần nay, hắn đã nhìn chúng nhiều như cái mũi của chính hắn. Và cũng như với cái mũi, bộ não đã quen với việc loại hẳn giao diện trang web ra khỏi tầm nhìn của nó. Mặc kệ thuyết Gestalt của lão Ehrenfels tuốt tận bên Áo Địa Lợi, giờ phút này hắn chỉ nhìn thấy những lỗi vụn vặt. Canh lề trái phải không đều. Logo di chuột lên con trỏ không thay đổi. Code JavaScript còn mấy dòng log.

     PM: Ê bà sao CSS mới không chạy vậy nè?
     Designer: Ông có xoá cache chưa đó? Mà xài browser nào vậy?
     PM: IE6 má ơi. Cái này lần nào họp với client cũng bị nhắc hết nên bữa nay tui test xem.
     Designer: Tiên sư! Lần sau gạch IE ra khỏi hợp đồng đi nghe chưa!
     PM: Mệt quá sửa lẹ đi. Ráng cái này, khi nào làm product của mình rồi bà muốn 1 gạch hay 2 gạch cũng được.
     Designer: Mà sao code HTML gớm quá vậy nè. Họp cuối tuần này phải nhắc lại vụ...

1 tiếng trước deploy.

Bộ não hắn hoạt động tốt nhất khi được làm mát. Mà trong mùa hè miền nhiệt đới này, đó là vào lúc còn vỏn vẹn 60 phút là deploy. Đầu óc ban chiều đặc lại trong mùi mồ hôi và khói bụi giờ minh mẩn hẳn. Bản spec dài như bộ Ramayana mà nhiều tuần qua hắn khổ sở lật qua lật lại, dò tới dò lui giờ rõ ràng, dễ hiểu. Và những lỗi to vật vã đập vào mặt. Không có cơ chế cân bằng tải khi nhiều người cùng truy cập. Tính năng không theo spec, thiếu trước hụt sau. Và vĩ đại nhất, ngay trong spec cũng có lỗi.

     PM: Ủa sao không trích thông tin từ hồ sơ thăm bệnh của bệnh nhân được vậy nè?
     Developer: Ơ chưa. Hôm trước ông chẳng bảo cái đấy đến kỳ sau mới làm là gì?
     PM: Ừ thì có, nhưng mà không lấy thông tin được thì sao mà vẽ đồ thị báo cáo?
     Developer: Cái code đấy viết từ đời thuở nào rồi, toàn hard-code nấy nệ thôi!
     PM: Đậu xanh!!! Cái code cũ đấy tao bảo viết lại từ đời tám hoánh rồi mà!
     Developer: Thế đ-o nào...

15 phút trước deploy.

Đồng hồ sắp chuyển sang ngày mới. Trong con hẻm nhỏ, chỉ còn phòng hắn sáng ánh đèn. Như con cú ăn đêm, giờ là lúc bọn deploy đêm như hắn hoạt động mạnh nhất. Cơ hồ đều mong trong bóng tối của thành phố say ngủ làm một cú đổi đời. Lúc này đây, những con người nhiều tuần qua cày cuốc với trang web nhìn vào nó chằm chằm, qua những phương thức khác nhau. Client và designer, qua browser, nhìn vào cái vẻ ngoài trau chuốt. Developer và sysadmin dán mắt vào màn hình terminal đen sì, những dòng lệnh chạy ngang dọc. Còn hắn, lăng xăng giữa hai bên. Cái máy chủ, quanh năm nằm trong xó một data center nào đó chẳng ai rõ, được dịp đỏng đảnh, từ chối hoạt động cho đến khi mọi thứ, xin nhắc lại là mọi thứ, thật hoàn hảo.

     Sysadmin: Chết cha! Sao báo lỗi database vậy nè? Ku, vô máy chủ xem coi sao!
     Developer: Không vô được ông ơi! Ông chưa tạo account cho tôi này!
     Sysadmin: Xong rồi đó, vô lẹ đi.
     Developer: À đây này, database trống không, chưa có dữ liệu gì cả. Chép dữ liệu từ máy ông lên đi.
     Sysadmin: Ủa, sao không chép từ máy mày luôn đi?
     Developer: Hè hè, tôi không có nhớ lệnh đấy, dài quá, ông thông cảm.
     Sysadmin: Trời đất, developer mà lười như quỉ vậy?
     Developer: Ông không nghe Bill Gates nói là…
     Sysadmin: Im ngay và luôn!!!

Lục đục mãi, deploy cũng xong. Dự án lần này coi như giao đúng hẹn. Hai bên chúc tụng nhau lấy lệ rồi rút lẹ đi ngủ, mong chợp mắt chút mai lại đi làm. Ánh đèn cuối cùng trong con hẻm rồi cũng tắt. Cái cơ thể suốt từ chập tối đã chạy bằng adrenaline giờ không chịu đi ngủ, nhưng cũng chẳng còn sức mà thức. Hắn lim dim, nửa tỉnh nửa mơ nhớ về những lần đau tim khi server sập. Hắn thở dài, tự nhủ đêm còn dài…