Extreme Testing at kaChing

May 21, 2010

A few months ago, I was invited to give a tech talk at Google about our testing practices. I finally got around to posting the slides, see below! During the talk, I presented how we achieved our extreme iteration cycle of 5 minutes commit-to-production cycle. Starting at a high level, we looked the two fundamental… Read more

SAM SIG: Applied Lean Startup Ideas: Continuous Deployment at kaChing

May 17, 2010

Next week we’ll describe how kaChing is applying lean startup ideas, specifically Continuous Deployment. The talk will be an SDForum’s Software Architecture & Modeling Special Interest GroupĀ event. We will start by about why continuous deployment is so crucial to operating lean and how that applies to a growing financial company like kaChing. Then, we will… Read more

MySQL and CSV to Python Objects (Made Easy)

So, I like nice, clean code as much as the next guy, and probably even more. Good code is elegant like poetry. Bad code is gross and offensive. I’ll be honest, I’ve written my share of gross code (I’m certain there’s a special place in software development hell for people like me). Unfortunately, sometimes for… Read more

Opera takes the cake

In Firefox, Chrome, and Safari, timeouts passed to setTimeout are subject to signed 32-bit integer arithmetic overflow. For instance, the following code shows an alert immediately, as if zero or a negative value had been supplied. setTimeout(function() { alert(‘hi’) }, 2147483648); Internet Explorer has the same problem, except they use unsigned 32-bit integers. Try this… Read more

Instantiators, a Data Driven IoC

May 10, 2010

We’re working on a new library which will be part of kawala and wanted to share our initial thoughts. The full design doc is available on the wiki. Below, you can watch our design review session. An instantiator is meant to instantiate objects from string representation of its constructor arguments. In addition, instantiators can produce… Read more

A Better Option for Java

May 04, 2010

If you are somewhat familiar with Scala or Haskell, you are probably used to Option[T] or Maybe a, the neat way to pass around “partial values” – values that may be missing. Maybe a in Haskell represents either Nothing or Just x for some x of type a. In Scala Option[T] is either Nothing or… Read more