Life @ NCP

not everyone needs to go outside to have fun

My other mother

Several weeks ago my aunt Dora asked me to rub her back before she fell asleep. I would massage her for ten minutes or so, said my good night, then tucked her in nicely under a blanket. This became a habit, and it turned out to be one of our favourite recent pastime.

Back rubbing is nice

The process started with putting a big slab of Vicks VapoRub and layering it on her back. Then I would massage her for some time until she felt comfortable to sleep. On one of the sessions she asked me unexpectedly, “What will you remember of me?”

I took a big gulp and stayed quiet. It was a question I’d mulled over for weeks. How do I summarise years of adoration and admiration of her in a single answer? She was a role model to me. And anyway, what would be enough to please a dying woman in her last few months of life?

I told Dora, “You brought me into your life and helped started mine in Australia. I wouldn’t be able to do that without you.” She looked at me intently, dissatisfied. I knew I should look for a better answer.

She was always the first to everything. The eldest daughter, the first child to get a degree, the first one in the family to make a living overseas. She was infinitely resourceful, she would always find a way to make it work. Just over five years ago, when I got married, she said she was going to make my wedding cake and handle the decorations. I will always remember her hunching over watching Youtube videos on how to make flower arrangements and three-tiered wedding cakes.

When she came to Sydney, she was penniless and without relatives. She became an accountant, held down three jobs to make ends meet. In the 70s, when it was unheard of for women to hold mortgages, she bullied her way in to hold down two. And she made it work juggling all those jobs, and a toddler to boot. She was constantly learning and was constantly evolving.

If she was given another decade to live she would have become a writer. She had spent the last few years unravelling the stories of when the Chinese first landed in Australia, four generations ago. A story that had filled her curiosity for the last decade ever since we visited her husband’s great great great grandfather in Young, who arrived from Malaysia by boat as an interpreter.

Most people overestimate what they can do in a year but underestimate what they can do in a decade.1 She would always find a way to make things work. Would that put a dying woman’s mind at ease? Maybe I should find a better answer. Maybe it was about always getting what she wanted?

Dora knew what kind of mould she was meant to fit into. But she broke the rules and smashed them to pieces. Again and again and again. It happened when she went to med school, most girls at the time only had high school as their highest education. It happened last December when the kitchen was accidentally burnt down. Dora was told by her insurance agency that she wouldn’t have a kitchen for Christmas but within two weeks after the accident, we acquired a fully functional kitchen. It was amazing to watch her relentless focus to call and email people to get what she wanted.

Her willpower was the most evident when she was faced with medical issues. She had her knee reconstruction surgery several years back to be able to travel more after she retired. Most people took three months to walk normally, whereas she started hobbling out of her room by the first week. Being allergic to morphine and all other opioids didn’t stop her, she managed the pain with just panadol!

I believe her willpower was just an extension of her productive routine. The saying went, if you wanted something to be done, you had to give it to the busiest person. This person was obviously Dora. It was a habit, and her habit was to achieve the goal she had set out for herself.

She would always get what she wanted. Would that be enough for the woman I so respected? Maybe I should look for a better answer. Maybe it was about her way of doing things?

It was her way or the highway. When I told her that I couldn’t swim, she said I would learn it in Willougby Leisure Centre the week after. She didn’t ask why I haven’t been able to, or about a drowning incident I had when I was 10. Those were simply excuses. She thought it was important for me to learn how to swim because I needed to clean the swimming pool at home. It wouldn’t be funny if her niece died of drowning in her own backyard, she thought. Amazingly enough, six weeks later, I was able to swim at the age of 17.

She was fixated on doing things her way. She had strong opinions and she didn’t always rub people the right way. But she had always had an opinion, she taught me to always decide consciously what was best for myself first before external events dictated my situation. George Bernard Shaw said, and I’m *definitely * paraphrasing here, “The reasonable woman adapts herself to the world: the unreasonable one persists in trying to adapt the world to herself. Therefore all progress depends on the unreasonable woman.”

And she made a lot of progress. Even two months ago, when Min’an and I just arrived in Sydney, she told us to get a third mortgage, after we already had two. “Killara or Gordon, good areas to buy.” My first thought was “Is she just being unreasonable?”, but the market would probably prove her right.

At the end, I still didn’t have a better answer that evening. I continued with the back rubbing though. I did her favourite massage on her spine. I ran my fingers down the left side of her spine, and up the right side immediately afterwards. She let go a sigh of relief. Then she said, “Ah, you do it best”. I realised that the long flights from Sweden was worth it just for that moment. It was a moment I would cherish forever.

P.S. This script formed a part of my tribute for Dora’s funeral on 19th Jan 2017, just shy of two months before her 70th birthday today. Rest in peace Theodora Widianti Winata, I miss you.


  1. A famous quote from Bill Gates. [return]

Author image Martha Winata on #Family

Marty’s round-up for June

June was the last month of the quarter and here in Stockholm, it was a hot one. We had a lot of parties, with a lot of people in it.

Swedish summer weather is so lovely – not dry, not too hot, just lagom.. Summer is what makes Swedes stay despite so many months of hail, ice and snow in winter

Despite the wonderful weather, sadly SI Toastmasters, a public speaking club that I usually go to, ran its last meeting before the summer break. The club will start again mid-August, and it will be run by a different group of people. I am very excited about this because I volunteered for the VPPR role. I think there are many things the club can do to get more people benefit from Toastmasters.

The new board of SITM for this year.

If you have never heard about Toastmasters, here is a taste of how a Toastmasters speech is like.

Throughout the year, the club introduced me to plenty of like-minded people and we hang out with them outside the club. One of them invited M&M (me and hubsy), to play VR on HTC Vive. It was released only recently, and although it was expensive, with a price tag of over 1000 USD in Sweden, the variety of games was already impressive. The gaming industry really know how to be productive. The quality on some of the games are far from beta, they are very very immersive.

Hubsy's shooting some virtual zombies.

It took a short time to get used to the goggles, and though at first it felt weird having a large video cable hanging onto my head, I got used to it surprisingly fast and maybe more importantly, I didn’t trip over it.

I am excited for the release of Sony PlayStation VR in October this year. With price half of HTC Vive and Oculus Rift, and with a large game developer community, it looks to me that Sony has won the first round of VR already.

Talking about winning, let me jump to another thing very different to VR. I like winning games (who doesn’t?) especially in badminton, but it’s hard to do with my current stamina. It’s common that I would win the first set, only to lose the second, sweating and panting, my heart beats over 180. As if I have a stamina of a four-year-old. A marathon-runner friend of mine convinced me that I should try out interval run to increase my stamina.

So, I did a “speed run” event, organised by Nike. And it was sooo tiring. I hated running, and after doing it, I realised why I hated running in the first place. I couldn’t breathe, and at one point of the 1.5 hour session, I thought I was asthmatic. My nose started to make sounds like a broken party horn. Oh no.

Majestic sky over the stadium.

Nonetheless, the event was held nearby at the Stockholm Stadium. Little did I know that Stockholm held the 1912 Olympics, and just like every other buildings in Sweden, the stadium looked new despite its age. From the outside, it looked a bit like a medieval castle. Inside, the track went for about 400 m each lap, and the ground was soft and spongy. I loved the feeling running on it.

If only I don’t need to breathe when running.

P.S. If you enjoyed this article, please subscribe to this blog. It takes only a few seconds and it will motivate me to write more, big time.

Are you talking about software kitchens?

This is a cop-out because it’s a rehash of my previous post, but as an added bonus, here’s a video of me delivering it as a speech at my Toastmasters club.

Toastmasters is a club for improving your public speaking skills. You give speeches and take on speaking roles, and get feedback about what you did well and areas for improvement at the end of the session. The club I go to is full of amazing people and certainly one of the reasons we’re still here in Stockholm! Of course, as you might expect, there’s an evaluation to go along with the video.

And my actual speech draft. When you’re up on stage, some things just don’t go the way you plan, and even from the beginning things started out slightly different 🙂


I work in IT as a software developer, but it’s hard for me to explain what that means to anyone else. A few years ago, to work in IT meant you were “good at fixing computers” or “installing antivirus”. Nowadays it means you’re “making the next facebook” or “about to become a billionaire”. There’s just so many facets to being a software developer that it’s sometimes easier to just grin and nod sagely rather than to explain exactly what I do.

One analogy I’ve recently found useful is a kitchen in a restaurant. No one knows how a software company works (unless you work in one), but everyone has some idea of how a restaurant works, even if they haven’t worked at one. You have waiters, you have the cooks and of course you have the customers. In such a setting, I’m one of the guys in the kitchen.

But this is where it gets interesting. Every kitchen is different. I work in a small kitchen where I have to share my tools, ingredients and space with other cooks. Everyone chips in for a dish, someone does the chopping, someone does the tasting and someone does the frying. Mostly. Some kitchens cook without tasting. Some kitchens have only one cook. Some kitchens have the best tools. Some kitchens have the best cooks. Sometimes the cooks are overwhelmed and overworked. Sometimes the cooks aren’t even from the restaurant, but from the pizzeria across the road. cough outsourcing

Many of the struggles I face are more easily explained as soon as I talk about a restaurant. When I tell people about how users of our software have unrealistic expectations of how it should work, or what can be changed, rather than empathy sometimes I get “but it’s just software, can’t you just change it?”

But when I tell people about unreasonable customers at a restaurant they go, “yeah, I understand”
Imagine a restaurant where customers walk in, and they tell the waiter what they’d like to eat. “Can I have this but vegetarian?” “Can I have truffles on the side?” “Can I have the pecan pie, but no nuts?” “Can I have fried rice, but without the rice?”

We’re more familiar with the idea of an unreasonable customer at a restaurant than an unreasonable user of some software application. In both cases, the customer has no idea how hard their request actually is. They think they have an idea of how hard it is, but without actually having worked in a kitchen, they haven’t got a clue. Of course they might have been chefs before, or formed their estimate based on visits to other restaurants, but that’s kind of irrelevant because there’s someone between the customer and the cooks.

It’s the waiter.

Most of the time the waiter says “sure we can do that”, sometimes he says “that is impossible Madam”, but it’s really up to how well he understands what’s being asked. Often he has other agendas. Maybe he would like to please a really important customer, sometimes he is wildly optimistic about what his kitchen can produce. Whatever the case, he converts a customer request, into a slip for the kitchen.

And this is where I come into the picture.

The slip arrives at the kitchen and everyone scrambles. We look at the slip and go “What the? How could we possibly make this in time?” There’s a deadline to meet, sometimes you’re still dealing with the fallout from the last dish and what sometimes ends up being put on the plate is something thrown together in a rather haphazard manner. Along with prayers that all of the stuff went in. No one likes a meat pre without the meat. Unless they asked for it of course….After all no one likes a meat pie without the meat…unless they asked for it of course. Sometimes it’s so bad the waiter simply rejects it outright.

Assuming that it’s decent enough to be served, and the waiter has written the slip correctly (certainly not taken for granted in many places! sometimes what you asked for is not what you get…), you eventually receive your dish. Sometimes when you see it on the plate it looks delicious, but you bite into it and you find an eggshell or bits of plastic (remember the haphazard assembly?). Sometimes it tastes fantastic but when you arrive home, you spend the next week camped out in front of the toilet.

You might think there are food inspectors that go around restaurants, making sure something like this doesn’t happen, or that offenders get punished and blacklisted…. but there are areas where the analogy becomes a little more absurd. All that for the next speech.

In the meantime I hope I’ve helped provide better context into how a software developer fits in to a software company, and the kinds of challenges we face. How about you? Do you work in a hypothetical restaurant? Are you a cook? A waiter? Or perhaps the person standing outside the restaurant, touting customers and trying to get them in. I’m looking forward to hearing about your restaurant stories.

Author image Min'an

This isn’t the restaurant you’re looking for…

This is part 2. Part 1 is here.

So this is where the software development as a restaurant analogy starts getting a little weird. To be fair, these examples are more quirks of the industry more than the profession itself.

A customer at a restaurant

Customer: “There’s a fly in my soup”
Waiter: “Oops, that must mean there’s a fly in everyone else’s soup”
Customer: “What are you going to do about it?”
Waiter: “Well, if it’s a big enough fly, tomorrow’s soups will not have it. Otherwise everyone will have to live with it for a few months.”
Customer: “Eh?”
Waiter: “Well, even after a few months, it’s a Maybe. Depends on if there are also roaches in the soup”

If you’ve ever watched a restaurant service challenge on Masterchef (try the Australian one, it’s much better :P), producing dishes for a bunch of people is back-breaking work. Even if it is the same dish over and over again. If we think of software as food, producing a copy of the software requires little-to-no effort. One consequence of this is if there’s an eggshell in one dish, all versions of that dish probably have the eggshell too. The exact same one.

Not all eggshells are created equal though, a single dish has a unique combination of flies and eggshells. Some are known, and some are yet to be discovered. There’s an ongoing struggle in the kitchen between removing the undesirables, and adding more flavour to the dish. Or some other dish variation…

A customer arrives at a restaurant.

Waiter: “Welcome Madam, we have the clam chowder, Florentine steak and vegetarian lasagne available today”.
Customer: “That sounds interesting. I’d like a clam chowder, but I’m actually lactose intolerant. Can you do something for me?”
Waiter: “Certainly Madam, but you will have to come back later. Maybe we will have it on the menu by then”
Customer: “How much later?”
Waiter: “Maybe a few months. Maybe a year. It depends. In the meantime, maybe you can try removing the cream yourself.”

If you’re in a restaurant, you’re expecting some flexibility. Small variations are taken for granted. In a software restaurant, since you’re getting copies of stuff, you’re not getting changes until the “master” copy is updated. When does the “master” copy get updated? Remember that we’ve already got flies to squash and eggshells to remove, in addition to flavours to add. And that’s not the only problem.

In the kitchen

Waiter: “We have 100 more orders of the clam chowder coming through.”
Cook: “The clam chowder from last month is the one you want. Just make a 100 copies of it. You know where the food cloning machine is.”
Waiter: “Guys, there’s lots of flies in that one…”
Cook: “We’re trying to fix the recipe. We only have the old one to work with. It’s a hundred pages long, full of corrections and hard to know what’s needed for what taste anymore.”
Waiter: “Do we have something for lactose intolerance?”
Cook: “Erm… maybe in a few months. Could they take out the cream themselves?”
Waiter: “Seriously?”

Software developers aren’t really cooks. They “cook” the “master” copy of the dish, but really, they spend most of their time refining recipes. Software developers are more like recipe authors than cooks. Except the recipes are hundreds of pages long, often passed down from generation to generation without much explanation; and steps interact with each other in strange and wonderful ways, where it can magically give rise to eggshells and roaches along the way.

Just think about what kind of process someone refining recipes has to go through to “test” their recipes! Say you’re trying to refine a recipe. Maybe make it more spicy, for your friends from Indonesia. How would you go about doing it?

If you’ve tried to put a dish together, and had to improvise, you know how hard it can be to work your way back to what went into that one amazing dish. When you’re trying out different things, sometimes it can be hard to keep track of what taste was the result of what magic ingredient you added. And you can never create that one amazing dish. Ever again.

In the kitchen

Waiter: “Someone’s found a roach in the lasagna”
Cook: “Did it come from the bechamel sauce?”
Waiter: “Maybe. How would they know?”
Cook: “If it did we may have a bigger problem. That bechamel sauce is used in the fish pie and croquettes as well.”
Waiter: “So they’ve all got the roach?”
Cook: “Yessiree. Actually if they don’t have it, it means it’s a problem only with the lasanga recipe, not the bechamel”
Waiter: “Seriously?”

In any normal kitchen, if a batch of sauce is bad, you just make a new one. In a software kitchen, if a sauce is bad, everything it’s gone into is bad. Every single dish with it. And there’s nothing to be done till the sauce recipe is fixed.

It also highlights a problem common to both kitchens. It’s sometimes pretty hard to figure out what caused a problem! (Think masterchef taste test… what went into a dish to cause a particular taste?)

Surely this can’t be the way software is made! There’s got to be food inspectors coming in occasionally right? Well… tune in next time to find out why, despite what seems like a pretty crummy state of things, more established software kitchens have their own secret sauce recipes … for making secret sauces

Author image Min'an

What kitchen do you work in?

I often have trouble explaining what I do to someone outside of IT, especially for the first time. Don’t get me wrong, I’m not embarrassed to be a Software Developer (certainly not a Software Engineer, but that’s another topic for another time), but more getting across all the nuances of what I do across. Anyone who’s worked in say databases or devops knows what I mean, just saying you work in IT is much easier than explaining what is it you do.

One analogy I’ve used in the past is a kitchen in a restaurant. Most people have some idea of how a restaurant works, even if they haven’t worked at one. There’s a difference between a small mom-and-pop operation and a michelin star restaurant though, from the food itself right down to where the ingredients come from. The supply chain and the processes involved in turning the raw ingredients into an amazing dish are quite different. The interesting part is how far you can really stretch the analogy, and get across the nuances of your workplace 😉 An interesting exercise is to compare what you do to the appropriate area of the restaurant.

Imagine a restaurant where customers walk in, and they tell the waiter what they’d like to eat. Most of the time they’re familiar with the menu, and they want the same thing, but with a little twist. “Can I have this but vegetarian?” “Can I have truffles on the side?” “Can I have the pecan pie, but no nuts?”

Now the customer has no idea how hard their request actually is. They think they have an idea of how hard it is, but without actually having worked in a kitchen, they haven’t got a clue. Of course they might have been chefs before, or formed their estimate based on visits to other restaurants, but that’s kind of irrelevant because it’s now the responsibility of the waiter.

Most of the time the waiter says “sure we can do that”, sometimes he says “that is impossible Madam”, but it’s really up to how well he understands what’s being asked. Often he has other agendas. Maybe he would like to please a really important customer, sometimes he is wildly optimistic about what his kitchen can produce. Whatever the case, he converts a customer request, into a slip for the kitchen.

Every kitchen is different. I work in a small kitchen where I have to share my tools, ingredients and space with other cooks. Everyone chips in for a dish, someone does the chopping, someone does the tasting and someone does the frying. Mostly. Some kitchens cook without tasting. Some kitchens have only one cook. Some kitchens have the best tools. Some kitchens have the best cooks. Sometimes the best cooks are overwhelmed and overworked. Sometimes the cooks are from the pizzeria across the road.

The slip arrives at the kitchen and everyone scrambles. In many software kitchens, particularly the small ones, everyone is pretty good at making the dish, but no one wants to know how to put the dish together. It’s often seen as “not interesting” or “not as glamorous” as doing the actual cooking. Consequently, the dish assembly is usually thrown together in a rather haphazard manner. Sometimes it’s so bad the waiter simply rejects it outright.

Assuming that it’s decent enough to be served, and the waiter has written the slip correctly (certainly not taken for granted in many places!), you eventually receive your dish. Sometimes when you see it on the plate it looks delicious, but you bite into it and you find an eggshell or bits of plastic (remember the haphazard assembly?). Sometimes it tastes fantastic but when you arrive home, you spend the next week camped out in front of the toilet.

You might think there are food inspectors that go around restaurants, making sure something like this doesn’t happen, or that offenders get punished and blacklisted…. but there are areas where the analogy becomes a little more absurd. That, and how developers aren’t really cooks in the next instalment…

Author image Min'an