Monday, December 29, 2014

When everything is fucked up beyond all recognition

Right after Barcamp Saigon 2014, I shared this status on Facebook. Though it wasn't long, it was pretty much what had been on my mind the whole event day. I was truly grateful that Barcamp Saigon 2014 wasn't a Failcamp topic the year after. The (relatively) successful execution of the event was a huge relief on my heart and by relief, I mean the feeling of being released from all responsibility in life and once again, become a child.

Over the 2 months duration preparing Barcamp Saigon 2014 with the organizing team, the experience had been stressful, brutal, and depressing to me. It reminded me of all the tough times I had been through in the past, like when my whole fish tank died after a night, or when I almost got a retention due to academy performance; the times that I genuinely told myself everything must be just a dream and I should wake up like right there before thing got worse.

At some point, my work on Barcamp was pushed forward not by the belief of Barcamp on the local community, but by the fear of fucking everything up. The shift in mentality was the same as a good student going from getting an A+ to praying "oh God, please let me pass this".

So what actually happened?


A month and a half before the event, some time in the first week of November, I met my sponsor lead. She was worried that we got only one sponsor and hadn't succeeded in getting any new sponsors for a few weeks. She suggested downgrading Barcamp Saigon so that it fitted the budget we had got. I was pretty sure that would be a huge disappointment to Barcamp enthusiasts in the city. After all those years, we had spoiled the Barcamp crowd with lots of  freebies. But I wasn't at Saigon, where all our potential sponsors were. I was stuck at Hanoi for 10 days.

A month before the event, I had a major meeting with Barcamp Saigon venue sponsor. Gathered in the meeting room on floor 9 of a downtown campus were faculty members, and various staff of the university. More or less everyone in the school whose function involved in promoting and managing Barcamp Saigon was in that room, where we finalized a few last issues mostly regarding the event flow and the university's concerns about Barcamp's openness. After the meeting, I had a tour around the campus when I got to pick the floors, halls, and rooms that would be used before and on the event day. Everything seemed so certain. All what left to be done was to update the agreement with the new room numbers and we were good to go.

Fourteen days. A major sponsor sent us a formal email demanding that the company's logo must appear on the T-shirt design and threatened to withdraw the sponsorship agreement if the demand wasn't satisfied. Though the withdrawal would mean a significant portion of Barcamp budget might be gone, appearance on T-shirt was not by any mean stated in the sponsorship proposal and contract, the demand wasn't something we could agree. Until thing was sorted out, the incident delayed the commence of T-shirt manufacturing for a few days. We were making 700+ T-shirts, so any delay on the schedule was a nuisance. However, what was going to happen the very next day made this incident in our favor.

Thirteen days before the event, I headed to the campus one more time, believing that I would have the agreement signed. After all, the event was coming close and we satisfied all the requirements from the university. To my surprise, the half-an-hour appointment extended itself into a meeting over lunch, where I was bombarded with questions from a staff I had never met in any previous meeting. He was the most paranoid person about risks associated with the open nature of Barcamp. Though I do agree that there are lot of bad things that can happen in an unconference like Barcamp, I also believe the benefits of Barcamps to its local community outweigh all the risks. In the same way, despite of its risks, the Internet prevails and continues to transform our life every day. That staff seemed to be one who would have blocked the Internet. Also in that meeting, I learned that the people I had spoken to did not have any actual decision making power. Which is fine, because I knew no university vice president would spend his time meeting me once every couple of weeks. I just did not expect that to happen 13 bloody days before the event. The meeting ended and I knew that none of the prior preparation mattered. I had to start from scratch. Everything needed to be postponed till this was solved.

Ten days before the event, I was told that there would be a way to hold Barcamp: contacting a dean at the university, who would then foster Barcamp as an activity of his faculty. I rushed to the campus to meet the dean I was introduced to. He seemed so nice, and supportive, and, above all, so affirmative about the possibility of organizing Barcamp even there was only roughly a week left. I was not as certain.

That night, I met the rest of the organizing team to let them know about the situation. And we planned for all possible exits: changing location, delaying the event date, or dropping everything all together. We were 60% sure that we would not be able to have Barcamp on the designated date. And that was horrible. We had about 30 registered speakers, half a dozen of sponsors who had signed contracts and wired money to my bank account, and worst, hundreds of Barcamp enthusiasts who had purchased their tickets. We planned to have T-shirts, mugs and gym sacks as freebies for participants. All suppliers were calling, because that night was the deadline to kick off the work, or else they would not be able to deliver on time. That was especially true for T-shirts, 700+ T-shirts couldn't be possibly made in a few days. But having these items made also meant we had to spend the sponsored money, and once we had done that, there would be no way back. We had to postpone everything. I thought planning for my own death would have been easier.

Src: Toy Story 3 screenshot

Nine days to go. I booked my meeting at 10AM with the dean, but for some reason I could not call him and did not know where to find him. I did not meet him until over 11AM, at which point he was rushing to another meeting. So we decided to meet in the afternoon instead. He looked different from the man I met the day before though, with a twist of anxiety and uncertainty in the corners of his eyes,

In the afternoon, what I worried was right (I am usually proud of my prediction, this wasn't one). Between our meetings, the dean met the university vice president who, once again, expressed serious concerns that Barcamp's openness would bring sensitive topics to the university and ruin its reputation. The dean asked for some extra information and one more day so he could think everything through. The words T-shirt and deadline passed through my mind a few times. But fuck that, it would be pointless to have 700 T-shirts and no Barcamp. The dean was my last life vest.

Eight days. When I came to the campus at 10AM, the time we were supposed to meet and sign the bloody agreement, the only paper that could guarantee Barcamp Saigon 2014 was not going to be a flop, the dean was in another meeting (I genuinely think people here are meeting too much). I had to wait, and while I was waiting, all the exit plans we planned the other day played again and again in my head. I ended up waiting for an hour and a half, but it seemed to be much longer than that. At 11:30AM, I met the dean, after a short talk and even making some changes directly to the printed agreement by pen, we finally proceeded to sign the agreement. By fostering Barcamp, I knew that the dean, and everyone involved in this plan, took a huge leap of faith in us, the Barcamp organizing team, and put their career and reputation on the line. I could not have asked any one for a better commitment. But the process almost killed me.

We then rushed to contact all suppliers we could possibly thought of to get the freebies made. Due to time constraint, we had to compromise the original design that we made. But again, having a decent Barcamp on time was more important that having a perfect one late, so we bit the bullet and rolled on.

Four days to go. Yet another sponsor intimidated to withdraw the sponsorship because they believed some registered topics went against the company's benefit. As the organizers of Barcamp Saigon, we took the responsibility of providing benefits to all sponsors, because we would not be able to pull things together without their help. But there were lines we also needed to maintain to keep Barcamp what it is, an unconference. As a Barcamp, we were supposed to not be censors. Though I have to admit it is hard to rationalize with people taking thing personally.

Sixty hours left. I got a phone call from the university, saying that the titles in the agreement was not in the right format and we would have to redo it. Now please notice that Barcamp Saigon team was nothing but a group of locals and foreigners falling in love with Barcamp. We did not have a legal status. A local company was nice enough to trust us and help us sign all the paper as a legal entity. There was only one problem, the company was in the further corner of District 7, half a city from where I lived and another half the city to the university. I am typically most productive around afternoon, but that was one afternoon I spent riding around the city and would never get back.

Until then, when the format was right, memos were sent between departments to prepare for the event. There were around forty eight hours left. People from maintenance, security, IT and sanitation were up in arms, complaining that that was a ridiculously short notice, that how they were supposed to allocate people to work overtime on the event day, and many other things. All what I could do then was smiling like an idiot. I knew that I had done everything that I could and if I made half a university pissed for my little event, so be it.

This brutal experience taught me the importance of not losing hope even in the darkest hours.


Remind me of all the tough times I have been through. It is true that the experience was horrible and even haunting, and if given a chance, I would definitely choose not to go through the same thing. But no matter how bad the experience was, and how often it happened, the next thing I remember is that somehow I am still here, in one piece, looking for the next stupid thing to do. So I know that as long as I stay on my path, this too shall pass and become a story for my children.

And the light that led my way in darkness was my "why". Why did I volunteer to put myself into this situation? For at least half a dozen of times people asked me why I was putting myself through all those pointless things, and my answer was the same. In 2008, when I first heard of Barcamp, the inner voice in my head said that there was no way would this work. Why on earth some random people would want to share their knowledge and ideas to some other random people? But somehow, the community has always responded incredibly positive to Barcamp. Year after year, the number of participants increase. And people looking forward to the event as if it was some sort of annual festival. Every year my mind is blown by the power of a healthy community. And I want to carry on the spirit.

Let me know how crucial it is to be around supportive people. If you want to do something, and all the friends are telling you how stupid it is, better consider dropping the plan, or look for new friends.  During these hard times the temptation to just drop everything on its own is huge. The assumption that once I quit, all miseries will be gone is really seductive. I know that I am weak so I don't try to fight the devil alone. I stay with my team to get encouragement. and, when I can, to help inspire others. What I have learned from all the years fighting alone is that never wait until my inner self starts screaming for some human interaction, by then it will be too late already. Now I always try to have my shields up before difficult times strike.


Friday, October 3, 2014

Building an English Speaking Culture - Up and Down


Source: http://dilbert.com/strips/comic/1996-06-01/

Build an English speaking culture, because why not?


One of the most controversial decisions I made during the time I served as the head of Coder, Inc. was to use English in all forms of communication within the company. And it was so controversial that, until today, I keep questioning the correctness of the decision. Hiring people who are fluent in English and making them use it in their daily communication is unconventional, and in fact I believe that this idea rarely crosses the minds of the executives of companies in Vietnam. At the same time, I gained personally and professionally from the choice of language. Let me tell you my story.

When we first started Coder, Inc., we did not use English. After the first 2-3 months, there was a time that we were on a conference call with a client and we were all surprised by how rusty our English had become. Just like how people work out to keep themselves in shape, we started looking for a way to strengthen our communication skills. And as we were all RMIT alumni, the idea of speaking English all day long came naturally. We thought, "Hey this is cool, I don't think there is any other company doing this" and we decided to keep doing it as part of the tiny little organization we were building.

The pros


Because the decision was made at a very early stage, speaking English had extended itself into various aspects of the company, even before we'd fully realized it. The following points explain the impact of speaking English on our culture.
  • One of the things we had been discussing was how working at Coder, Inc. helped an employee increase her personal and professional values. If fluent communication in English is not valuable, I don't know what is!
  • Speaking English eight hours a day was not easy. Firstly, we all had these funny Vietnamese accents. Secondly, people hard learned a pretty academic version of English so they were not familiar with actual daily conversation (try describing how your favorite dish tastes -- I still have problems with that now), or slang (who knew what "klam" in klamr meant) or jokes (yo mama jokes, anyone?). This was a part of the learning process for everyone joining us, which, I believe, embraced the core value of the constant pursuit of growth and learning.
  • Employing someone without sufficient English skills meant we needed a buffer layer between developers and clients. Those who spoke directly to client would have more insight about a project than those who didn't. This eventually would lead to hierarchy and compromise the flat organizational model we were applying. I was not a big fan of hierarchy as I saw it preventing people from operating at a higher level then where they currently were, which was yet another selling point of working at Coder, Inc..

Most importantly, it gave us a distinct brand. We were a small team of fresh graduates doing outsourcing in a country where the main revenue of software industry was, well, outsourcing. Building an English-speaking culture was an easy way to differentiate ourselves and give people something to talk about. With that under our belts, we managed to compete with companies that had been around for longer and had spent more money on recruiting. There was a semester at RMIT when out of 20 students we got 18 internship applications (we ended up picking 2).

The cons


You might be telling yourself that hiring only fluent English-speaking developers is nuts, these people aren't public speakers, they are programmers, their job is to code, not to communicate, and by doing so, I restricted myself to a smaller pool of talent. And that is true. But the small talent pool was not the problem for me. Coder, Inc. was not a gigantic multinational consulting firm, it was a twenty-something-developer outsourcing shop. The number of applications I received every month was between so many that screening and interviewing time alone ate up my entire day and too few that I had to desperately look for new sources of talent.

As it turned out, the blessing of working directly with clients was also a curse. Coder, Inc. clients were mostly entrepreneurs looking to get their ideas implemented at an affordable rate. Under the name of lean startup, fail fast - fail often, and responding to market trends, entrepreneurs had the tendency to conceptualize, change and twist the project vision in every possible way. While this energy was exactly what was great about entrepreneurship, it placed an incredible demand on software engineers, who were asked to write, test and re-write the code, all over the course of a few days.

Many engineers Coder, Inc. employed at that time were talented, energetic, and passionate. They engaged in discussions with clients with both curiosity and eagerness to build something great. But as time went by, unstable requirements, code reconstruction and midnight calls drained the energy out of these youngsters. They got burnt out. I personally at the peak of a high-demanding project, got to be very grumpy and thought about dropping everything more often that I would like to admit.

In this case, the thing we tried to remove was the very thing we needed: a buffer layer that shielded the developers from the clients' whim, allowing them to focus on their work and be productive.

The second problem with the English-speaking policy was rooted in my own voluntarism. It didn't occur to me that what worked well when we were a group of 5 wouldn't work when we scaled up to the size of twenty. And I thought what was good for me was good for my employees. An act that in retrospect was naive, conservative and stupid.

As we grew and sought diversity, we hired new people who still had great English abilities, but had little experience using it as a primary language. They would study English in a center two or three times a week, but had never spoken the language for an entire day. And it was hard. When confronted with such a challenge, it was natural to switch back to the language they had practiced for decades and knew inside out: Vietnamese. Rules are supposed to guide people to what they want, not prevent them. When that happens, rules will eventually be broken. Gradually, within the team, Vietnamese gossip groups formed and became the source of much unwanted office politics. So in an attempt to remove a formal hierarchy, with title, scope of responsibility, and everything corporate, we found ourselves in an informal and intangible hierarchy of politics where the flow of information was blocked, twisted or altered to serve personal interest. The rest is history.

Conclusion


Though it is painful for me to look into the past and see things that I had done wrong, it is extremely important to learn right from where I failed. In my opinion, Coder, Inc. would have been in a better state if either:

  • A suitable process had been set up to manage projects and find balance between client's interest and engineer's sanity.
  • The pace of recruitment had been slowed down to ensure one new hire had time to adapt to the new culture before hiring the next one.
  • The English-speaking policy had been removed when the team decided to scale up.
What has been done cannot be undone. I learned that building an intensive English speaking company is hard, and requires the right people and the right process.
There's a different between knowing the path, and walking the path. - Morpheus

Monday, September 1, 2014

Why I blog

A couple weeks ago, I was honorably mentioned in ITViec's blog post 9 Vietnamese tech bloggers you should know. The post later made its way to Tech In Asia a few days later. It is a huge success, a splendid kudo, not only to me, but to the local tech bloggers community who has always been an underdog in Vietnam's rising tech startup scene. And I thought to myself, this is great, I want to help ITViec spreading the message. I decided to "renovate" the original post on my blog. Though who am I to tell you that you should blog, I just gonna tell you why I blog!

IMG_1788_view

It's cool

Dead simple. In the same way owning a super car is cool, or learning a new language is cool, I grew up believing that owning an active blog is cool. When I was a kid, the blog culture, Yahoo360 in particular, was on its hype. Everyone seemed to talk about it. But I was a random country boy, I didn't feel like I had anything to put there (more on this later). That was how I created 2-3 blogs and just helplessly watched them die.

A few years later, when I was in college, the blogging culture struck me again, this time, to the bone. Every cool people I came to know, be it tech celebrities, professors, or classmates, had a freaking blog. At this point, the way I saw it, a personal blog to awesomeness was the same as Rolls-Royce to prosperity. I didn't really mind whether it is a causal relationship or correlation, the idea simply stuck in my mind.

I was forced

Despite of all the good will about owning a blog, I didn't start my blog until the school made me to. You see, when I was on my last semester internship, it was mandatory to keep an active weekly journal report. The school used Blackboard and its UI was horrible. It was so bad that I didn't feel like writing at all. To be honest, writing on a text editor is really difficult to begin with, the cursor keeps blinking like it was forcing me or something. To cope with the requirement, I figured that I could just write a blog post and put the link to the journal entry on Blackboard. I passed, and my blog lived on.

What I learned from this is that I didn't have to start big. It was easier to start with something small and requires minimal effort, especially the by-product of something I have already been doing, like a report, a documentation for my pet project or a collection of Facebook statuses. Gradually, if one finds blogging interesting, s/he will naturally spend more time on it, get more viewers, and the momentum builds up, like a snow ball.

I desperately want to be better at communication

I spent most of my childhood learning the standard K-12 program of Vietnam. And one of the things this program wasn't good at is to teach children expressing their own feelings, emotions and ideas. The concept of writing down my idea was alienate to me till I was 16, when I knew about the TOEFL test. Before that point, all what I learned from literature classes was to copy and paste whatever the teachers lectured. The downside of starting actual writing relatively late was that my skills sucked. The words out of my mind didn't sound right, I didn't have the vocabulary to communicate idiomatically, and my attempts at coming up with metaphors were pretty lame. To make up for that, I have been trying to practice writing as often as I could, started with TOEFL writing test topics, then SAT. Picking up random topics for my blog is just a very natural thing to move on. And not until a year ago did I start writing in Vietnamese. I know it sounds weird as I am a native Vietnamese speaker, but it just happens that way.

What I learned from this is that everyday hard word beats talent. Though I am still no where close to the level of the ones I admire, I believe I am better than me 5 years ago. And that gives me the reason to keep writing.

Now without any further delay, let me introduce a few other Vietnamese tech bloggers that I think you should know

phunehehe.net
Don't let the funny name of the blog fool you. I have known Phu ever since we were fresh men at RMIT and if all those years taught me anything then it is that he is a genuinely talented DevOps and a reliable friend. Let him show you a thing or two on software development, system administration and open source.

buunguyen.net
Buu was a lecturer at RMIT and taught me 2 or 3 courses. He was horrifying brilliant. If there is any lecturer making me chill to the bone when reviewing my assignment, it is him. Buu also happens to be an RMIT alumnus, so he was one of the few people I looked up to define my career path back then.

blog.nerdyweekly.com
Understanding Nhan's interests in system administration and development, I couldn't help but think of Nhan as a clone of Phu. Just by reading his blog, one would find all the qualities people associate with youth: energized, dynamics and creative.

truongtx.me
Trường broke my prejudice that  Aptech and NIIT and the like are pretty much vocational schools, producing second-class developers. Look at the way he takes learning new technologies, investing time to be proficient with essential tools and sharing knowledge, I can tell he is going places.

hieple.net
Hiep is currently an organizer of Agile Vietnam. He has been taking bold steps in sharing knowledge and building a healthy community in Vietnam. And all these works are reflected on his blog. Heck, we need to clone more Hiep.

PS: In writing this, I ran across this list of tech bloggers in Vietnam, both native Vietnamese and expats, way back to 2008 (the year of the first Barcamp Saigon) http://fresco20.com/tech-bloggers-in-vietnam/. If you do the search, many blogs have stopped, and some are no longer in tech. This reflects that blogging is a life style and it changes on different period of life.

PS 2: This nice piece of writing top hacker news this week, it wasn't about why the author blog but more on the benefits of blogging/writing. I couldn't have done a better job myself, so here it is http://mlafeldt.github.io/blog/write-every-day/

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

Vài tuần trước, tôi rất may mắn được điểm danh trong một bài blog của ITViec về những tech-bloggers Việt tiêu biểu. Bài viết này nhận được phản hồi rất tốt từ cộng đồng và được đăng lên Tech In Asia vài ngày sau đó. Tuy tầm ảnh hưởng còn rất hạn chế (Facebook like không nhiều bằng thiếu nữ lột đồ chơi ice bucket challenge) nhưng rất đáng khích lệ với cộng đồng tech bloggers, vốn luôn lép vế trong bức tranh công nghệ Việt Nam.  Để giúp thông điệp của ITViec tiếp tục được lan toả, tôi định bụng sẽ thêm mắm thêm muối vào bài viết gốc trên trang blog của mình. Nhưng tôi là ai mà bảo bạn phải viết chứ, tôi chỉ kể lại câu chuyện của mình thôi!

IMG_1787_view


Viết blog ngầu

Thế thôi. Cũng như việc mua siêu xe ở cái nước siêu nghèo rất là ghê gớm, hay học thêm ngôn ngữ là thú vị, tôi lớn lên với suy nghĩ có một trang blog của riêng mình thiệt là ngầu. Đó là thời gian văn hoá tạo blog (không phải viết), đặc biệt là Yahoo360, nổi lên như một hiện tượng quốc dân. Nhưng mà hồi đó còn nhỏ, còn khờ, tôi chẳng biết có blog thì phải viết cái gì cho nó. Vậy nên 2-3 cái blog sinh ra rồi chết ngắt.

Vài năm sau, khi vào đại học, tình cũ không rủ cũng tới, văn hoá blog lại ve vãn tôi. Mọi con người hay ho mà tôi gặp, tech celebrities, giảng viên hay bạn học, đều có một trang blog ra ngô ra khoai. Tôi chết luôn cái ý tưởng có blog của riêng mình thật là ngầu, như cách Rolls-Royce cộp mác giàu sang thịnh vượng. (Tôi không biết những con người hay ho ấy họ đã thú vị sẵn rồi và blog chỉ là công cụ diễn đạt của họ, hay việc viết blog làm con người động não những vấn đề khó nhằn và do đó thú vị hơn, đừng hỏi tôi)

Tôi bị ép

Dù hơi bị hoang tưởng về việc có cái blog của mình, tôi lần nữa chần chừ đến khi dí dao vô cổ. Hồi đó học kỳ cuối cùng tôi đi thực tập, mỗi tuần bị bắt viết một bài báo cáo về những gì mình đã làm (hay phá). Trường xài Blackboard để quản lý hầu hết các học phần, và cái UI của thằng này xấu ghê gớm. Dùng nó chán đến mức tôi chẳng muốn viết. Nhưng chân thành mà nói, viết trực tiếp trên máy tính với tôi vốn đã rất khó rồi, con trỏ cứ nhấp nhánh như thúc giục. Để sống chung với lũ, tôi viết báo cáo lên một trang blog, rồi chép mỗi link vào Blackboard. Cuối cùng tôi được ra trường, và trang blog sống sót.

Tôi học được rằng viết blog cũng như nhiều việc khác, không cần một khởi đầu lớn lao. Khởi đầu với một thứ nhỏ xíu dễ hơi nhiều, đặc biệt nếu tận dụng được phụ phẩm của thứ tôi đằng nào cũng (phải) làm, như viết báo cáo, viết documentation cho dự án, hay một lô lốc Facebook statuses. Dần dà, nếu việc viết lách thú vị, tôi luôn có thể dành nhiều thời gian hơn, có thêm người đọc, và vì vậy lại dành nhiều thời gian hơn, vòng xoay cứ lăn như cầu tuyết (snow ball).


Tôi viết ngu thuộc loại siêu cấp vô địch

Hồi nhỏ tôi học chương trình hệ 12 năm như bao đứa con nít Việt Nam khác. Và tôi nghĩ trong đủ thứ chương trình này không làm được có mục khuyến khích lũ chíp hôi mặt mụn giải bày cảm xúc và ý tưởng của chúng. Mãi tận năm 16 tuổi tôi mới có khái niệm viết luận, còn trước đó hả, học văn cái giờ mỏi tay nhất trần đời, tại phải chép trên bảng quá trời đất, không chép là "lạc đề" liền. Tại vì ngu khờ kém hiểu biết về viết lách như vậy nên bài tôi viết không ai dám đọc. Từ ngữ tôi nghĩ ra lục cục như con ngựa Đà Lạt, tôi thiếu vốn từ thành ra diễn đạt dài dòng và phép ẩn dụ của tôi thì ẩn kỹ quá, không ai thấy luôn. Từ hồi đó tới giờ gần mười năm tôi vẫn phải học viết đều đều, từ đề TOEFL rồi đến đề SAT. Lựa một chủ để bất kỳ để viết là điều tiếp theo vô cùng tự nhiên. Cách đây một năm tôi mới tập viết bằng tiếng Việt. Nghe điều này từ một thằng da vàng mắt đen thì thật kỳ cục, nhưng mà thật chuyện tôi nó vậy.

Tôi học được rằng chăm chỉ mỗi ngày thì tốt hơn tài năng. Dù tôi còn xa lắm cái mức độ của những người tôi ngưỡng mộ, nhưng so với tôi 5 năm trước tôi nghĩ mình đã khá hơn nhiều. Đây là động lực để tôi tiếp tục viết: chiến thắng bản thân mỗi ngày.

Saturday, July 26, 2014

Build your product - Làm product

“Build your product” is a popular catchphrase these days, used so much that it makes its way to a small set of national keywords. From a young startup wishing to disrupt a traditional industry to an hundreds-employee outsourcing firm, everyone is talking about building a product, the one of their own. Though no one charges tax on dream, what makes “build a product” such a keyword? Without below things, I would have never left my life of luxury to engage in a long, painful journey.

* Build your product is the condition to be your own boss. IT workers, either as a freelancer or in corporate environment often find themselves providing service, offering the best possible technical solutions but possessing little authority to make decision. Except those who have accepted their places in the corporate ladder, the rest suffer from more or less depression of being a second-class citizen.

* Build your product makes you “rich”. Financially, a common thing about doing outsourcing or being employed is that you are only paid an amount enough to survive till the next paycheck, so that you are kept in the infinity circle of work. Emotionally, the journey of building a product (and an organization around it) drags you out of the moderate baseline of an office staff, and throws you into a roller coaster of feelings, from cheerful success to bitter failure. A colorful journey indeed.

* Build your product puts you onto a catapult that shoots you up high into the sky so you can see beyond the well hole and make a big bold step out of your comfort zone. No longer limited to a creasy specs piled up in a cubicle corner, the job opens itself to endless possibilities. Whatever that can add add value to your product, from customer support, business development to watch out for competitors are all now parts of your job description. And oh boy no one gonna “spec” that.

* Build your product lets you climb your private mount Everest. Not everybody can reach the submit, many will fail and be forgotten. But unless for at least one time you seriously put on those hiking boots, many years from now you will find yourself ugly, old, looking at the past and find emptiness. Identify your own Everest is half the battle. Onward!

* Build your product is a chance to write your story, a story worth sharing. Many great ideas started with an unrealistic action. Believe that not all pages are born equal, some are more equal than others and decide to do something about it from a dorm room is an 
unrealistic action - Google. Publicize the source code of one of the most complex software application in history and expect free contribution from community is an unrealistic action - Linux. Exchange millions of messages that last a few minutes is an unrealistic action - SnapChat. These stories are attracting and inspiring because they go against common convention (at the moment they were created) and that gives everyone a hope. A hope to triumph over adversity. People don’t buy what you do, they buy why you do it, the story that isn’t about yourself, but about them and what they can be.

========

“Làm product” là catchphrase khá nổi hiện nay, xếp vào hàng từ vựng quốc dân, anh mà không biết thì dốt như con tốt. Từ hội “trẻ-khoẻ-rẻ” làm khởi nghiệp nuôi chí "build cái app" nức lòng quần chúng nhân dân, hay công ty gia công gần trăm người “outsource nuôi miệng thôi, ước mơ làm product chứ”. Dẫu “đời không như là mơ, nên đời thường giết chết mộng mơ”, điều gì làm hai chữ “làm product” có giá dữ vậy? Cực thí mồ, không có những điều sau thì tôi chẳng bỏ chăn ấm nệm êm mà đi làm product.

* Làm product là điều kiện để làm chủ. Người làm phần mềm dù freelance hay trong doanh nghiệp thường rơi vào cái thế của người làm service, mang đến các giải pháp khả thi nhất nhưng không nắm quyền quyết định cuối cùng. Trừ những người xác định rõ “người ra tiền là người có quyền”, còn lại đều ít nhiều ức chế với cuộc sống của công dân hạng hai.

* Làm product mới “giàu". Nói về kim tiền, làm gia công, làm thuê ở đâu cũng vậy, người ta chỉ trả cho mình một khoản tiền đủ giúp mình tồn tại, để tiếp tục nai lưng ra làm. Về đời sống tinh thần, làm product kéo ta ra khỏi đường trung bình ảm đạm của anh nhân viên văn phòng, quăng vào tàu lượn siêu tốc của những rạng ngời thành công và cay đắng thất bại. Là một chuyến đi nhiều màu sắc.

* Làm product để nhìn ra khỏi miệng giếng, bơi khỏi cái ao làng. Không còn là bản specs cong queo vứt ở góc bàn, công việc mở ra rộng khắp. Bất kỳ hoạt động nào gia tăng giá trị của sản phẩm, từ dịch vụ chăm sóc khách hàng, qua phát triển thương hiệu đến cạnh tranh với đối thủ, giờ đều là việc của bạn. Làm product như cái ná chun bắn bạn lên thật cao, nhìn khắp bốn phương tám hướng, nhìn lại chính mảng ghép của mình trong guồng máy kinh tế. Còn rơi xuống sao thì kệ thây.

* Làm product là vượt qua đỉnh Everest của mình. Rõ ràng không phải ai cũng thành công chinh phục đỉnh vinh quang, có thể bạn sẽ thất bại, sẽ bị lãng quên. Nhưng nếu bạn không ít nhất một lần nghiêm túc xỏ chân vào đôi giày đinh, có một ngày bạn sẽ già, sẽ xệ, nhìn lại và muộn màng hối tiếc. Xác định đỉnh Everest của mình là một nửa trận chiến rồi. Xông lên!

* Làm product để viết câu chuyện của chính mình, một câu chuyện truyền mãi. Nhiều ý tưởng vĩ đại thai nghén từ hành động hoang tưởng. Tin rằng không phải mọi trang web đều bình đẳng và cố gắng chứng minh từ phòng ký túc xá là hành động hoang tưởng - Google. Công khai mã nguồn một trong những chương trình phức tạp nhất trong lịch sử để đổi lại đóng góp từ cộng đồng là hành động hoang tưởng - Linux. Trao đổi hàng triệu tin nhắn chỉ tồn tại trong phút chốc là hành động hoang tưởng - SnapChat. Những câu chuyện này cuốn hút và truyền cảm hứng, vì chúng đi ngược lại suy nghĩ thông thường (tại thời điểm chúng ra đời) và mang cho ta hy vọng. Hy vọng chiến thắng nghịch cảnh của chính mình. Mọi người không chỉ mua sản phẩm bạn làm, họ mua câu chuyện bạn kể, câu chuyện không chỉ có bản thân bạn, mà có cả hình bóng của họ, những gì họ muốn trờ thành.

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…