Thursday, October 18, 2007

Sailing into International Waters….

I just received an email from a prospective overseas distributor B. Apparently, after testing out our product, B was very satisfied and requested to become our distributor. In fact, he had already placed orders for my products, while we worked out some final details in our collaboration. I couldn’t really describe my feelings when I received his email. It was probably the same kind of feeling when I first setup this company, or when I first entered university, or when my crush first agreed to my date.

Over the past few years, there had been quite a number of people and companies that requested to be my product’s reseller or distributor. But none of them really materialized, because of various reasons. Most of them didn’t look serious, and didn’t really have any track records or concrete plans in pushing my product in their respective countries. This time round, B seemed to be a serious distributor as we had actually corresponded intensively for the past few months.

The collaboration with B wasn’t really a smooth sail. When B first contacted me with his requirements, I thought it was straightforward and my product could easily achieved that. After a few email correspondence, B requested for a trial version of my product. I tweaked my product to create a trial version which I was confident that it couldn’t be easily hacked, and sent it over to B. However, my trial version couldn’t work with B’s existing system and B emailed me with the error message displayed by my trial version. Initially, I thought it was just some connection problems so I adviced B on how to troubleshoot and rectify it. However, the problem persisted and I had a hard time trying to find out the problems because I did not know the actual environment of B’s site. I could only asked B over the emails to carry out my test instructions and try to deduce the cause of the problems. Eventually, I managed to find out the cause of the problem and the trial version managed to integrate with B’s existing system.

However, the problem didn’t stop there. After some initial simple testing, B found out that my trial version still couldn’t work to his expectation with his existing system. This time round I suspected there were still some problems which might not be easy to figure out if I continued to troubleshoot through B. So I asked B to turn on the logging function of my trial version and emailed me back all the logged information. After going through the logged information, I suspected that the problem might lie on B’s existing system and told B about that.

However, B replied me after a while that he had tried out a similar product offered by a company from his country and the product was able to work with his existing system. After checking out the product mentioned by B, I noticed that the product could only fulfill part of B’s requirements. However, since that product was able to integrate with B’s existing system while mine couldn’t, it was natural that B was thinking of trying out other alternatives. I replied to B that I could loan him a full system (including components that could replace the functionality of B’s existing system) for two months, so that he could use it for demo to his customers. There was a certain cost and risk for loaning B the full system, but I decided to go ahead to offer B the loan because I knew I was at the verge of losing a potential overseas distributor that could potentially contribute hundreds of thousands of revenues per year. B accepted my suggestion and I immediately sent the full system over to B.

But the problems just didn’t seem to let me off easily. B tested the full system sent by me and still encountered some problems. I spent nights trying to figure out what exactly was the problem, going through hundreds of thousands lines of codes and logged information. Finally, I realized that the difference in some third party environment could be the source of problem, and emailed B the remedy to it. It was my last straw of hope and I kept my finger crossed after sending B the email. To my relief, B replied me that after following my remedy, the entire system could work properly and he would proceed to test the more detailed features of the system.

And now, you could imagine the kind of satisfaction I got when I finally received B’s email that he wanted to buy my product and become our distributor. This is my first voyage into international waters and I knew it could be a very different ball game altogether. The local market is too small and restricted. In order to grow, I knew that sooner or later I would need to venture into overseas market, and now is probably the right time to do so.

The sea monsters lurking under the international waters are probably fiercer than I could ever imagine. But I just had to venture into it. I need to be stronger. For my passion, my dream, my belief.

I just need to be stronger.

Labels: ,

Thursday, October 11, 2007

Why hackers cannot survive in Singapore

I remembered watching a scene in a Hong Kong drama series “Net Deception”, where a hacker (or cracker to be exact) played by HK actor Wong Hei was intruding a system using his laptop in a café. Apart from the unethical actions of the cracker, that scene looked cool though.

Now imagine, transfer the entire scene to Singapore. Cracker Mr C was hired to intrude a certain company’s system. Knowing that the local ISPs are always very cooperative in revealing customers’ information, Mr C decided to perform his cracking at a café instead. Afterall, the much celebrated success of the island-wide Wireless@SG had made his job much easier, he thought to himself.

So Mr C, sitting in a café sipping his favourite ice mocha, slowly opened his laptop and waited for the bootup and internet connection.

“In ten minutes time, I would be able to intrude the system.” Mr C let out a confident smile as he thought about it.

But alas, Mr C got a shock as he turned his face towards his laptop screen. The words “limited or no connectivity” was shown when his laptop was connected to Wireless@SG.

“Nevermind, there’s another café across the street.” Mr C kept his cool, packed up his laptop and slowly walked towards the other café.

Luckily, the Wireless@SG internet connection at the other café was alright. “Nothing can stop me now.” Mr C smirked while he quickly connected to his target system and launched a brute force attack at the first layer password system.

“Shit!!!” exclaimed Mr C, when the internet connection dropped after a mere 2 minutes. After several tries, Mr C was finally convinced that the internet connection could not sustain continuously for more than five minutes.

Again, Mr C moved to yet another café, only to find that the speed of the Wireless@SG connection was comparable to that of a 14.4Kbps dialup connection.

Not accepting defeat, Mr C tried out a few other cafés and fast-food restaurants, only to encounter the same problems. Finally, with some divine intervention, Mr C managed to find a café with proper and sustainable Wireless@SG connection. Mr C let out a relief sigh, and just when he wanted to launch his attack, his laptop was shut down. Apparently, his laptop had run out of battery after running for a few hours without any AC power supply. Mr C changed his job the next day.

P/S: This post is written after several frustrating experiences with Wireless@SG.

Labels: ,

Monday, October 08, 2007

My way of categorizing IT personnels

Over the years, I had the chances to work with a lot of people, both locals and foreigners, in the IT/Engineering fields. Most of them are software engineers, while some others are system engineers, network engineers, IT administrators, system analysts, etc. And slowly, I deviced a way to categorize these IT personnels according to their abilities and ego :

Category 1 - High abilities, Average ego
Category 2 - High abilities, High ego
Category 3 - Average abilities, Average ego
Category 4 - Average abilities, High ego

It may be a bit of generalization here but most of the overseas-based foreign IT professionals I had worked with belong to categories (1) and (2). Of course there are always some clueless IT professionals no matter where you go, but I am speaking from my general impression after working with some of these germans, russians and israelis professionals. It could be due to their education or environment, most of these people have in-depth knowledge in their own specialized fields instead of having superficial knowledge in many areas yet expert in none. And some have very high egos while some are reasonably humble.

On the other hand, the Singapore-based foreign-talents that I had worked with mostly belong to category (3). Most of them can boast knowledge of a dozen programming languages in their resume, but in reality their abilities are just average. Fortunately, most of these people whom I had worked with do not have high egos, and thus can still get the job done, albeit needing more guidance and supervision.

Lastly, the forth category is the category that I feel, the most difficult to work with. Unfortunately, quite a number of locals belong to this category. They have very limited abilities, yet possessing super high egos. Even when they are young and inexperienced. Even when they really have got nothing to show for. For this category of people, I can only say, the moment you acknowledge how average you are, would be the moment you can truly start to improve as a real professional.

P/S: There are good and humble local IT professionals too, just that a bit few and far between.