We've come a long way since that evening in December 2009 when a handful of colleagues spent an evening drinking Highland Park and trying to figure out what they should be doing with their lives. Everyone wanted to do a start-up; nobody had any big ideas. We also knew that raising money for a product startup in India is quite hard at the best of times, so we figured we'd do this by the book - start and grow a nice, stable services firm and bounce off it to build a product division. We'd take more time to get there, but we were less likely to crash and burn because we couldn't raise funding.
At that point, only two members of the group were actually in a position to do something about it and they took the first, difficult step of quitting a comfortable job and trying their hands at something they'd never done before - setting up a boutique Ruby consulting firm, offshore.
By early January both Srushti and Niranjan had quit ThoughtWorks and begun actively studying the market. Of the others, most returned to their usual routine; I was the exception. Starting January 1st, I was on unpaid leave to look after my mother who was in the last stages of her battle with soft-tissue sarcoma, a virulent form of cancer. I stayed on as a nominal ThoughtWorker because I was still peripherally involved in organizing the first edition of RubyConf India which was scheduled for late March that year.
Thus began what I later realised were the toughest six months of my life thus far. My mother was in and out of hospital for most of that period, and January was especially trying because my father over-extended himself on a trip and wound up briefly in hospital too. I had a fair idea what Niranjan and Srushti were up to with the company as they were at this point working out of my aunt's house, which is on the floor just below my own. My family'd been using it as a store-room for the ten years since my aunt passed away, and boy was it a mess. I'd make it a point to drop in for a few minutes every day and hang out with them among all the old newspapers, furniture and dust to see what was going on. They'd usually be sitting at the dining table on some truly ancient chairs hacking code, or as likely, playing World of Warcraft. We'd talk for a bit - if it was a Friday or weekend I'd bring my laptop down and we'd all three of us do a raid or three.
By late January they'd managed to sign up a client on a fixed-bid Rails project. Four weeks later when they did the numbers, they realised that their hourly billing rate hovered somewhere between $3 and $5. Lesson learned, they then started bidding only on projects that paid by the hour and soon signed up a client at $15 per hour that would stay with them for the next six months. C42 Engineering had found it's first 'boulder' - a steady, long-term project that the company could depend on.
With the end of March came RubyConf India, and a few days later I quit ThoughtWorks. March was also notable because during RubyConf we met Niranjan's childhood friend Aakash and shortly thereafter he decided to move to Bangalore and join Niranjan and Srushti. Thus, when I joined C42 Engineering at the end of April after serving my notice period, I was the fourth person to sign up.
My first act after joining was to take a leave of absence that was to last two months. I stayed home looking after my mother and C42 Engineering moved on without much involvement on my part and signed up another client for an engagement that lasted three months. At this point we had two projects and had two people billable full time, but we hadn't yet registered a company and weren't even paying salaries yet. Niranjan and Srushti were effectively working as independent contractors, with Aakash shadowing first one, then the other. I saw little of them in this period - both Niranjan and Srushti were working on separate projects, and by the end of May C42 had moved out of my aunt's place and had started working out of a room at Srushti's dad's office in Cooke Town (less dust and better power backup).
My mother passed away on June 11th 2010, just under two years after she was diagnosed with cancer; I started work at C42 full time shortly thereafter.
Things started heating up at around the same time. First off, we registered the company. We then proceeded to execute two key parts of our strategy for that year. First, we started billing in pairs instead of as individuals and second, we moved away from sourcing projects via online brokerages like elance.com and started generating leads and selling projects ourselves. Shortly thereafter we started hiring, and over the next five months had four people join us. We had a second pair become billable, then our third. Ultimately, the last quarter of 2010 generated more revenue than the first three combined, and this despite December having terrible utilization numbers because we were all off in Goa watching Nigel get married.
The other event of note in 2010 was Niranjan's and my talk being accepted for RubyConf X, New Orleans. This was a calculated risk on our part because the cost of the trip was non-trivial for a business as young as ours was, and we weren't sure if there would be any immediate returns we'd have in terms of projects (or even leads). In hindsight, however, I realise that these were relatively unimportant things. What speaking at RubyConf X really brought us was a degree of credibility, something that you otherwise earn the hard way over a period of months; once the video of our talk went online, there was a noticeable change in quality of our leads. Sales didn't necessarily go up, but conversations with prospective clients that had already watched the video had a much more positive tone.
Things have been pretty upbeat since then - we remain sold out more or less all the time, our rates have steadily risen to the current USD40 per hour per developer. Our open source initiatives have seen considerable progress - we added RFC 2616 compliant caching to Wrest, saw a remarkable number of pull-requests on Goldberg, and contributed any_instance support to RSpec.
If I had to highlight a key learning from all that we've learned in the last year, it would be that executing consistently is tough because the way you need to evaluate your priorities changes as your revenue grows. Three guys hacking in a room and eight people working as a part of a business are two fundamentally different kinds of organisations that behave very differently. It seems like this should be obvious and not a 'key learning', but we were blind-sided by how far reaching its impact was on the way we worked and how hard it was for us to start thinking differently. I've read about this kind of stair stepping where a $10k business works differently from a $100k business which in turn is different from a $1000k business and so on, but seeing it happen has been... educational. Tracking time accurately, invoicing your clients correctly and on time, making payroll on time - these things seem simple on paper, but are quite hard to do consistently in practice.
There are plenty of things that we're still struggling with and don't have good answers for. Scaling people up technically is one - we're heavily dependent on pairing for our training, which means we can at any point only hire as many people as we have experienced Ruby developers in the company. Developing skills to the point that we consider acceptable takes months, and then more months until that person is at the point where they can in turn mentor someone else. We're still trying to figure out if there is a way to train people in a shorter duration without compromising on quality, but for now we're cutting back on growth to maintain quality.
In conclusion, I think we've been very lucky in some ways this last year. A boutique, offshore Ruby consultancy would have been much harder to establish if we'd started a little earlier, or if we'd tried to do so without a core team of experienced Rubyists; we've been in the right place at the right time with the right people on board and we've benefitted enormously from this. Now we have to work on the real challenge, which is creating a successful product division while continuing to grow our services arm. I'll try to make it a point to keep posting updates - at this point, I suspect we'd definitely benefit from any advice we can get.