Derrick Ko

Builds Kicksend. Product guy. Founded a startup.

Page 5


What’s Next

I’m excited to say that I’ll be joining Kicksend as their first addition to the team. After having a really interesting chat with Pradeep and Brendan, I had a nagging feeling that these were guys I wouldn’t want to miss out working with.

Kicksend

Kicksend was founded just last year to solve the increasingly relevant problem of helping people send large files to each other, easily. And we’ll be doing whatever it takes to make that happen.

It’s great to be back at a startup. Apart from tackling interesting technical problems, I really look forward to getting my hands dirty with product design, customer acquisition and even talking to users.

Joining a company so near its beginnings is going to be an awesome journey. Let’s get cracking.

Continue reading →


Thank you, Pivotal

As one of Pivotal Labs Singapore’s first hires, I was fortunate to have been there since the days of desks in a co-working space. I first met Carl at a coffeehouse outside hackerspace, only to end up interviewing for the position a week later in his apartment.

Before I joined Pivotal, I had both started a startup and worked at one too. Pivotal gave me a great chance to double down technically, while keeping touching distance from startups, albeit from a different angle.

And sadly, my journey at Pivotal Labs has come to end, for now. I’ll be stepping back to the startup side.

I’ve had a fantastic time at Pivotal. There’s probably no better place to learn the art of software engineering, while changing the world one project at the time. My perspective of engineering surely has changed for the better.

Method to the madness

Process can make a difference between...

Continue reading →


How a Design Bet Gave us a Splash Page

We were stuck. With the rise of Google Web Fonts and Typekit, we wanted to check out alternatives to the ever dependable Helvetica for our bartop.co splash page.

We came up with a few versions of our splash page, with different fonts and different tweaks. I had my opinion which one would win. Z had his. Two engineers/aspiring designers would never be able to settle this objectively.

So we made a bet.

Here’s how it went down: 1) We put the designs up on forrst.

2) The design that got the most votes in 24 hours wins.

3) The loser buys beer.

Design bet Enlarge.

Within an hour, we had an overwhelming result. Z’s design won and I got schooled with some design tips. But that wasn’t it.

The responses kept coming in, including critiques and suggestions of both designs. Then it dawned upon us. We had a live design A/B test by an incredible community on our hands. It was just great....

Continue reading →


Ideas are Cheap: “I Feel Like..”

This is a series featuring ideas I came up with during my spare time over the years. These weren’t as compelling as the side projects I worked on, so I didn’t get a chance to develop them further. But hey, ideas are cheap.

From late 2010:

"I Feel Like"

Enlarge.

Continue reading →


Using Twitter Bootstrap with Rails 3.1 and SASS

Twitter’s Bootstrap is a pretty awesome toolkit to kickstart your next web app. But it uses Less. And that’s unfortunate for the Rails community as Sass (SCSS) is pretty much defacto now.

So what should we do if we want to use Bootstrap in a Rails 3.1 project, and make it co-exist with Sass?

Here’s how I do it.

1) Add Less to your Gemfile.

2) Submodule Bootstrap into your assets/stylesheets folder.

3) Create a bootstrap.less in assets/stylesheets to import the Bootstrap stylesheets you need.

4) Add that bootstrap.less to your application.css.

As for Sass files, I keep my main SCSS file (where I do all my @imports) in sass_main.scss, and add it to my application.css as well.

I’ve laid out the steps above in a gist.

This way of handling Bootstrap works a lot better than ports like sass-twitter-bootstrap and twitter-bootstrap-rails, and the less.js method:

  • You...

Continue reading →


Don’t Prematurely Optimize

When performance wasn’t a consideration from day one, inefficiency becomes endemic, corrupting every square mibbibyte of the project. Why not iterate a giant array instead of using hashes? Why not use LINQ everywhere, repeatedly and inefficiently filtering a massively excessive superset of the needed data?

Source: Yafla

I disagree.

Firstly, I feel that the array vs hash and LINQ examples are fairly contrived. In reality, a good engineer shouldn’t even consider those approaches in the first place. There’s rarely a compelling reason to do so.

A decent solution of either example would take marginally more time and produce way better code. And that’s a trade-off a good engineer makes in a heartbeat from experience.

Engineering is about making business goals/optimization trade-off decisions. Constantly. One of the many traits of good engineers is how quickly and...

Continue reading →


Google Analytics' Open Secret

Those stats on your Google Analytics dashboard may not be real.

I developed an analytics system for a project I worked on a while back. We always compared our numbers to Google Analytics as one of our benchmarks. But our system kept reporting lower numbers, consistently.

So after diving into the deep end, here’s what I discovered:

  • Your Google Analytics numbers for the past month are an approximation. Especially if you have high traffic.

  • Google revises your numbers towards the real ones gradually.

  • You’ll only see your real numbers only about a month later.

And unfortunately, all this was confirmed by AWS' big spring crash of 2011.

For all the great features that Google Analytics provides us, I can see why they approximate the way they do.

Practical analytics systems are a game of pick two out of the three:

1) Generic collection

2) Multi-dimensional slicing

3) Real...

Continue reading →


Ideas are Cheap: Moodtrak

This is a series featuring ideas I came up with during my spare time over the years. These weren’t as compelling as the side projects I worked on, so I didn’t get a chance to develop them further. But hey, ideas are cheap.

From 2009:

MoodTrak

Continue reading →


Three Buckets of Startup Ideas

I had a chat with a friend yesterday. We started throwing startups into “business model buckets”. And eventually, there were three.

1. Brains. Aka returning users meaningfully contributing to your site and your treasure trove of data. These are behavioral change/shoot for the moon/change the world kind of ideas.

Monetization: Not immediately. Get the brains, hit critical mass, then your monetization strategy kicks in.

Style of product: Quora, Hunch, Likealittle, group chat applications.

Fundraising: Would be great.

Hiccups: Hard to get right. Need funding, unless you have enough to bootstrap the runway.

2. Sales. There’s a demand for your product, and most likely from the long tail. You have to reach out to them and make sales. Your initial revenue is directly proportionate to your sales effort.

Monetization: Built right in. Most likely a tiered or freemium...

Continue reading →