People buy what they value

“I don’t have money leh. After 15th?”
“Ok.”

2 freaking dollars. They don’t have 2 freaking dollars.

Side note: The “leh” is an affectation of Singaporean English speech. It’s appended to most sentences as a sort of finishing element. By itself, it doesn’t mean anything.

Collecting money can be tough

I was tasked to collect mess fees from non-specialists in my unit. I was a lance corporal in the military. I was 20 years old.

In case you’re not familiar with military terms (I know I’m not…), the “mess” refers to the place where soldiers eat. Specialists refer to sergeants and above, until you hit officer ranks. For the purpose of this article, non-specialists are recruits (just joined), privates, lance corporals and corporals (ranked in that order).

I can’t remember why mess fees were needed, but I was to collect them from non-specialists (in my unit only). The specialists have their own specialists mess. The whole military compound had a food hall, which was free. Then there’s the non-specialists mess (which we hardly visit, but maybe other units frequent). Then there’s the specialists mess. And then there’s the 1 stall just outside my unit (the men in my unit preferred this than trekking all the way to the non-specialists mess).

Anyway, I was sort of favoured by the S4. I type bloody fast and he gave me paper documents which I was to transform into digital Word documents and save into a floppy disk. (Haha! Floppy disks! It was 1997.)

Yes, some of those documents were sensitive. No, I can’t remember anything. Torturing me will be a waste of your time. Have I mentioned it was 1997?

As a reference point, the S4 was the officer in charge of logistics and was one of the highest ranking officers in the compound. He had his own personal clerk. When his clerk left (the clerk finished his mandatory period of service), his duties were somehow passed on to me. One of those duties was to collect mess fees.

Coincidentally, I was the treasurer when I was in the Chinese Orchestra in secondary school. My advice? Do not be directly responsible for other people’s money if you can help it. I couldn’t sleep when I found the money I had on hand was different from what the record books said. I was about 15 years old. Good grief…

So. Recruits and privates were to pay $1, lance corporals to pay $2, and corporals to pay $3. The men were good-natured enough, but getting them to cough up money was a pain…

Why the 15th? Well, I was to get the money to the mess hall by the 10th of the month (I can’t remember the exact payment date. Let’s go with the 10th). After several months of failed attempts to submit on time, I managed to persuade the mess hall people to let me pay after 15th. This was because the army pays everybody on the 15th.

Granted, we weren’t paid a lot. It’s about a couple of hundred dollars a month, depending on your rank and length of service. $2 was maybe 1% or less of your military salary. But in absolute terms, $2 is nothing. The men typically spend more than that at the canteen every day.

Recession? What recession?

People pay for what they value. The men didn’t value the mess that much. Hence the reluctance to pay.

People still buy the latest iPhone, even though they still own a perfectly working previous version. People still go on vacations. People still go to expensive restaurants. The price isn’t the issue. If people value something enough to overcome the price, they’ll pay for it.

Here’s an interesting observation. I had little trouble with the recruits, privates and corporals. The recruits and privates were new to the military, and as a lance corporal *ahem* I was able to get them to pay up. The corporals were people who were going to the university after they finish their military service. They’d pay up so that I’m out of their hair or they don’t want my life to be miserable or whatever.

The lance corporals were from the hardier sides of Singapore. Polytechnic students or with lower education status.

Now I’m not saying the education status was the cause. I’m saying the attitude is different. The lance corporals were negotiating the terms. (My own rank was a different story. I was eventually promoted to a full corporal).

Once it was after the 15th, the men didn’t give me any more excuses. They’d just pay up. They weren’t trying to make my life difficult in the first place.

Dave interview, optical illusions and Gestalt theory

In the August 2011 issue of Singularity, I interviewed Dave Doolin from Website In A Weekend. Also, I show you a couple of optical illusions (you can see more in the magazine). Which brings me to the Gestalt theory, where you see shapes when none was supposed to be there.

Also, my cat makes a special guest appearance.

Success and failure business stories

I think people sometimes attach too much emotional importance to successes and failures, even with other people’s successes and failures. “I don’t want to hear about failure stories.” With the implicit suggestion that hearing about failures somehow attract failures into their lives. While true to some point, I feel for the most part, it borders on something called superstition.

So Andrew Warner of Mixergy started a series on interviewing founders and entrepreneurs about their failures. He already interviewed James Altucher and Scott Gerber. Andrew said his audience seemed to avoid or hate these types of interviews.

I don’t really have a distinct separate line dividing success and failure business stories. They’re just stories. “This happened, then that happened, then I learned something, then something failed epicly, then I learned something more, then something awesome happened, then I learned something…”

While there are general themes and lessons to be learned from success stories, there are also general themes and lessons to be learned (and mistakes to be avoided) from failure stories. I don’t propose that you will fail like those people in those interviews and stories. But there’s one important point that most people seem to forget.

You will never succeed in exactly the same way as those successful people either.

You read the success story of how Google became Google. You learn how Facebook started and became the social media giant it is now. You read a book on how Starbucks revolutionised the way coffee (a commodity) is consumed by people, and made it an experience.

When people say “that company will be the next Google”, they don’t mean literally that company will become the next Google. Because nobody else can be Google except Google. They mean that company having a similar success like Google.

And you will never have that particular success, because you will never have the kind of audience, products, problems, opportunities, founders at that particular point in time. That time has gone.

A failure story is more enlightening when it’s followed with a success story. An entrepreneur failed abysmally in one venture, and was left with practically nothing. Then he picked himself up and succeeded with another venture after that. What motivated him, drove him, gave him hope that he could still continue and succeed? That’s the real lesson.

From listening to the interviews of Y Combinator co-founders Paul Graham and Jessica Livingston, there are 3 qualities a startup’s founders have:

  • They’re smart
  • They’re determined
  • They can communicate with each other

From the way Y Combinator decide whether they should fund a startup, determination of the founders is the hardest quality to determine. How do you know if someone would be able to bounce back after a failure in just 10 minutes of a screening interview?

An entrepreneur with a failure-then-success story has shown that he’s capable of bouncing back. An entrepreneur with a success story just have a success. The latter can certainly still have worked hard for his success. I just respect the former more.

And I bring us back to unique successes because of the unique set of conditions of audience, products, problems and opportunities available to an entrepreneur or startup founders. I can’t remember where I heard this, nor the exact quote, but Bill Gates was giving a talk at a college. A student asked him what to do when starting a business or startup. Bill Gates said,

Oh for goodness sakes, don’t do what I did. That money’s already made by me.

6 weeks in a startup

I looked up the word “startup”. It means “fledgling company” or something to that effect. However, in our current times, the word “startup” has been mostly associated with high technology companies founded by college students who’ve yet to see their 25th year. In fact, Jessica Livingston (a co-founder of Y Combinator) said in a Mixergy interview that there was only 1 non-tech startup that they’ve funded (out of the 200+ startups at the point of interview).

So I worked at a startup before. It’s very different from the stories I’ve read. Ok, this was near the end of 2004. I think web apps were just starting to gain traction then.

Why I left my comfy corporate job

It was near the end of my contract (contracts were renewed on a yearly basis). Although I was told I had a high chance of being re-hired, I had other plans. I edited Unix shell scripts, fixed data corruption errors, created Crystal Reports objects and basically used Microsoft Excel more than I used Visual Studio.

I wanted to use C# but my team was deeply entrenched with VB.NET (mainly because the front end guys were more comfortable with VB.NET). My manager forgot my name when he introduced the team members to the users at a meeting. My manager also said anyone can do programming. (My manager eventually remembered my name, but it was a very long and awkward 3 seconds).

So I found a job listing at a startup. It promised the use of C# and “extreme programming“. I didn’t know what the latter was, but man did it sound awesome! I went for the interview, was told that I had to do lots of regular expressions, and I got the job. I was paid less there, but I thought it was worth it. I planned a holiday to New Zealand, and the new job would start the Monday just after I came back to Singapore.

If you’re interested, you can read about my trip here: Day 0, Day 1, Day 2, Day 3, Day 4, Day 5, Day 6, Day 7, Day 8, Day 9. The highlight was day 8, where I was broke and hungry in a foreign country. I took meticulous notes on my trip…

Now the story you’re about the read was taken from my memory, so the details will be fuzzy. But the chronological order is about correct…

Week 1

So I started my first day at the startup the very next day after I came back home from the New Zealand trip. I was refreshed and ready to start. And my first mistake happened way before I went for my holiday trip. At the interview, when asked what I saw myself in 5 years time (ever asked this question?), I said I’d be the team leader of a group of programmers.

And the founder (there was only one) gave me managerial tasks. I was to handle the administrative work and equipment. My first task was to fix the printer. I kid you not.

A bit of background at this point. The founder was a professor at National University of Singapore. He had a PhD in astrophysics if I recall, and degrees/PhDs in other disciplines. The startup work place was near the NUS campus. It was a small room, barely big enough for 4 people and their computer desks. If I understood it correctly, there was Employee #1 (E#1) and his wife, Employee #2. They were both Chinese from China. I bring up their nationality because they would do something later that might make sense if you knew this information now.

The product of the startup was a software program to search, collect and sort patents. It was a Windows executable program written in C#. I believe E#1 had worked on this for a couple of months already (at least). His wife handled the graphics, such as icons and images. And I was Employee #3. The founder also had 4 interns helping out in his other projects (not the startup), but the interns used any available room to do their work. I would also miss the interns tremendously because they made my life more bearable (see later).

Sometime in the middle of the week, Employee #4 arrived. I was still handling paperwork for the interns, for the startup, for E#4 and yes, fixing the printer.

The new computers for me and E#4 arrived. I was in charge of installing necessary software and basically getting the computers up to speed.

Week 2

The founder took me and E#4 to attend a lecture he was giving about patents. The 3 biggest websites for patents were United States Patent and Trademark Office (USPTO), European Patent Office and the Japan Patent Office. I learned that the software we’re creating would, how should I put this, scrape the search results from these patent office websites.

What would happen if the HTML results from these patent office websites changed? I don’t know. Maybe the regex was robust enough to handle those changes.

And never mind Google’s patent search. We didn’t know anything back then. Google might have crushed the product already. I haven’t checked the product website, and frankly, I don’t care.

Where was I?

Did you know that a man filed for a patent about swinging a swing sideways? This meant that legally, you couldn’t invent anything that involved (in part or in full) a sideways swinging action on a swing. I learned about the patent language and phrasing such that you encompass the biggest range of parameters in your patent filing document. This is so that even though others can learn about your technique or invention (that’s the point of patents), they couldn’t replicate your results within the legal patent period (of 15 years I think). I also learned that Nintendo filed a lot of patents involving graphics rendering.

Still didn’t get to do coding. Still didn’t do regex. Did you know I studied up on regular expressions prior to my New Zealand trip? I bought a programming book on C# (with a chapter dedicated to regex). I wanted to be prepared.

I finally fixed that (dang) printer. I now moved to documenting the startup’s assets. You know computers and the like. E#1 and E#4 worked on the software product.

1 of the interns completed his internship at the end of the week. I could feel my life turning for the worse…

Week 3

I finally got to look at the code, and I was to document it. During my job interview, I was asked if I had done documentation before. Well, I’ve written parts of software specifications before. And I’ve tried my hand at this XML documentation (the triple slash of C#). I said yes. Well, I was then given the task of documenting the product, because E#1 was too busy cranking out code that nobody except him knew what the software code was doing. E#4 was to help me.

The interns were fun to hang out with. Lunch was my only reprieve, since they were fun people to have lunch with (and work with). They completed their internship that week. My life turned to hell.

Week 4

The founder found out that the product could be decompiled into source code. It’s written in C# on the .NET Framework. The founder was livid with rage. He threatened to sue Microsoft. He’s going to have words with Bill Gates.

I calmly suggested that we could use one of those code obfuscators out there. E#4 seconded that opinion. E#1 said nothing. I would have thought that after months of working on this, the founder (or even E#1) would have known about this.

E#4 also gave his 2 weeks notice. He found another job, while working in this job barely a month in. The founder was not happy. The founder said E#4 could leave at the end of the week.

The founder also told E#1 and me to come up with technical questions to ask in an interview. E#1 was especially proud of a question where the solution was to use a form (object) to call another form to do some task. He was pleased that I didn’t know how to answer his question. I didn’t give a damn.

Week 5

Without the interns, I dreaded having lunch with just E#1 and E#4. E#1 was aloof and haughty and kept to himself. I didn’t know how to communicate with him, especially since he had trouble speaking English, so I spoke with him only in Chinese whenever possible. E#4 was, well… bearable.

Now with the interns gone, and E#4 gone, I decided to have lunch alone. Eating alone was much more preferable than eating with E#1.

I still didn’t get to do any regex work. It turned out that the founder got a PhD student of his to help him with much of the regex already. That part was already embedded in the software, so I didn’t have to do anything.

I also got to see E#2 (wife of E#1) again. She came down to work on creating some icons. She only appeared when graphics work needed to be done.

Now I finally got to work on some new code. The framework was especially bad, if you could call it a framework. The database backend was a Microsoft Access file. And any time a new version or some core database table was changed, the template Access database had to be changed. The problem was how to push out the changes.

Since the product was a Windows executable, the Access database was bundled with it. If there was a version change, how would we push the core database file out to the customer, without damaging any search results the customer had done? I didn’t know how E#1 had designed something like this…

My fondest memory was database query functions. A typical function took 2 arguments: a string containing comma-delimited column names, and a string containing the where clause. I thought this was extremely inflexible. What if we needed return columns that weren’t just the column names? What if we needed a different sort-by clause (it was hardcoded in the function)? What if we didn’t need a where clause?

There were many overloaded functions.

E#1 also had this habit of sloshing water in his mouth. He would sip from his cup, and then swirl the water around in his mouth, making a gargle without the opening-mouth part. Every time I hear it, I had the impending thought he would spit the water out.

E#1 also called me a 4-eyed toad (in Chinese). That’s because I wore glasses. 2 eyes from me, and 2 “eyes” from the pair of glasses. It’s a common nickname used to tease anyone wearing glasses… when you’re 8 years old that is…

The founder wasn’t in the office most of the time, so I spent all my time cooped up with E#1 and E#2.

Here’s a side story. When I was getting a science degree in NUS (where the startup was situated nearby), I used to go to National University Hospital. The hospital was near my faculty, so I would go to the canteen and have food there (because it’s quieter and had less people than university canteens. No student really go there, just hospital staff and doctors and patients). Sometimes, I would go wander the halls of the hospital. You know, because I was an undergraduate, and was curious. I found the experience interesting and exciting and strangely calming.

Well, now I would have lunch alone, then go to the hospital (it’s still nearby) and wander the halls a bit. Just to recapture some of the calm feeling. I remembered there was this vending machine where I would buy a cup of hot chocolate. I would drink that, sigh deeply, and then go back to the small startup office. With E#1 there. The (memory of the) hot chocolate was the only thing that kept me sane during the afternoon.

The founder must have felt something because he called me in at the end of the week. He told me he could sense my unhappiness with working there. Now at this point, I want to tell you that even though I was unhappy, I didn’t think of quitting. The founder told me he’s ok if I wanted to leave.

“Are you letting me go?” I asked.
“Yes.”

It’s a nice way of saying I was fired.

The founder also said that E#1 (and E#2) would be moving to Canada (Vancouver I believe) permanently in a couple of weeks time. He had also hired another programmer. This programmer was supposed to be much better. I mean, if E#1 was moving to Canada, that meant the source of my unhappiness (or mostly the source of) would be gone. So what the founder meant was, this new programmer would be better than E#1 AND ME! To rub salt into the wound, I was told that this new programmer would be paid more (than me).

The following week would be my last week.

Week 6

My last week at the startup would be to do as much documentation as possible. Have I mentioned that E#1 had no documentation at all? This would make it easier for E#5 (the new, higher-paid and better programmer) to get into the groove. E#1 and E#2 would still help in a remote manner from Canada.

I made sure the assets were correctly labelled. I made sure that those administrative tasks handled by me were completed (and documented). I shredded pieces of paper with confidential information (and at that point, useless. I was told to shred them by the founder! I wasn’t doing anything sneaky). I wrote documentation for the software product. I might have written a procedure for getting the printer to work. I’m not sure.

On my last day, I made sure I completely wiped all traces of me and my information from the computer I was using. First, it was polite to do so. Second, and most importantly, I didn’t want anyone there to have any information about me (email addresses and such) after I left. And I mean anyone.

For some reason, as Employee #3, I was given one of the only 2 sets of keys to the office. E#1 used to be the one holding it. The other set was kept by the founder. This meant I was always the first person to arrive at the office. Otherwise, no one could get in. I returned those keys to the founder.

That Friday, that last work day of mine, was 24 December 2004. It was Christmas eve. The founder invited me to go to a Christmas party he was holding at his place the next day. I declined.

I stayed half an hour past my working hours to make sure I’ve done all that I could. Then I bade farewell to the founder and E#1.

I walked out of the office, and went downstairs (it was on the second floor of a small building). I thought sadly back to the day when the interns didn’t show up anymore. And felt alive once more after 3 weeks.

Do you have a story to share?

Have you worked at a startup before? Or heard interesting stories about startups? Let me know in the comments. I truly want to believe my story is not the norm.

Developer Stories

Paparazzi red carpet

I must be getting famous. I was contacted by a social media marketing manager at M80. His company is working with Microsoft to promote Visual Studio 2010. Ok, I think I’ve fulfilled the necessary disclosure requirements. And no, I don’t get anything out of this. And I doubt I’m really that famous, but give me a few seconds to savour my short-lived fame anyway.

Microsoft wants to get feedback, and I believe it doesn’t have to be about Visual Studio 2010 (or Visual Studio at all). They’ve created a YouTube channel called Developer Stories. And they want to know why you are a developer.

If you’re a video kind of person, please go ahead and upload a video of you telling your story. Forget about your biases and opinions about the companies involved. I believe a polymath programmer should be above that. If nothing else, I want to hear your story too.

Since I’ll stutter in front of a video camera, and thank goodness I don’t have one (which is just an excuse, since my bedroom is a lousy backdrop), I’ll have to tell you my story in blog post format.

Once upon a time…

Actually, I stumbled upon programming. Sure I joined the computer club when I was in junior college (about 17 or 18 years old), but I didn’t understand the point of all the arcane Pascal lines of code. When I got into university, I didn’t have the credits (nor background) for the computer science track. So I took up applied mathematics as a major, and computational science as a minor.

In my first semester of my freshman year, I took C programming (which was a requirement for the computational science minor). Variables, assignments, loops, algorithms. It was fun. I also couldn’t understand why some of my classmates had difficulty wrapping their heads around what I perceived as simple ideas. They couldn’t understand some programming concepts, and they had some trouble understanding how to apply and change and break down a problem into programmable, solvable parts. I mean, you calculate something, add it to a temporary variable, go to next iteration, calculate with different input, add to temporary variable, go to next iteration until done. That’s summation. What’s so hard?

It was then that I realised that some people just weren’t made for programming. I’m not saying I’m a genius at it. I may just have a knack for breaking down problems so a programmatic solution is possible. That’s what programming is, not the lines of code and algorithms and what-not. Well, I was good enough at it that I decided to upgrade my computational science minor to a major.

Programming is about solving problems

What’s so special about computational science? And what’s the difference between it and computer science? I’m not sure. Computational science is more about solving (scientific) problems using programming, rather than the programming itself. I’ll leave you to compare that with your understanding of what’s computer science.

And what do I mean by solving problems using programming? I drew Sierpinski triangles. I used Newton-Raphson method to find roots. I solved a gigantic set of 100 equations with a 100 by 100 matrix. And most of the problems were based in science or mathematics.

So my background is about breaking down problems and translating that into programmable parts. I didn’t learn about software development cycles, software management practices and all those complicated stuff. I was trained in the solving problems, not the meta stuff around it. I’m not saying those complicated stuff aren’t useful. Just be aware of what you’re doing.

Here’s a suggestion. Learn about your business processes and work flow. What does your company do? What does your company sell? Which industry? Because your value as a software developer goes up exponentially if you can solve a business problem, not that clever obfuscated one-liner of yours.

Don’t just be a programmer. Be a problem solver.

So after I graduated, even with a math background, I went for a software development career. I like solving problems, and programming is one method. This guy just about sums it up:

So that’s a summary of why I’m a software developer. And now for some free advertisement for Visual Studio. I like C# and Visual Studio. Probably because of my C background. There’s Intellisense, a well documented library of the .NET Framework’s functions, and… it feels “clean”. I’m not sure how to explain that to you. I’m a simple man. I don’t need a lot of what is called developer productivity tools. Maybe I haven’t a problem to solve that requires them.

[update]
And I only have the Visual Studio Express version, not the paid one (but I bought VS2005 way back if that counts). The professional version’s a little steep in price, you know, considering my recent foray into entrepreneurship.

So what’s your story? Tell me in a comment, a blog post, or a video response.

[image by Ad Hatcher. Videos taken from Developer Stories YouTube channel]