Running a Rails Consultancy- a year in


Today marks the completion of our first year as a consulting business. It’s been a nice and steady year for us.

Why

I have been consulting since 2013. Most of it being remote. Last year, when I decided to look for something new after my previous gig, I had discussions with various past and current colleagues.

We settled on doing what we knew best - Consulting. But we didn’t want to be just another consulting like before. A thing which I see lacked in previous experiences from my friend companies is how to sustain employee growth over the years.

Product vs Consulting

A bigger part of Product companies that attract employees is how

  • It can be interesting work
  • There is a sense of ownership
  • There is vested employee interest by means of stock/options

As a consultancy for us to be different from others, was to bring this sense of ownership to our employees. We work with some amazing Clients and interesting problems, which takes care of the interesting work part.

I have seen these experiments in the past when running Consultancies:

  • Traditional business, run by a few people or a person
  • An Employee run software co-operative

Both of these approaches have their pros and cons, One can be too opaque and less trustworthy over time and other too-transparent sometimes(Yes!).

Not necessarily how it always is, but just a general experience.

Growth in Consulting

With the above in mind, we wanted the best of both worlds. We try to be as transparent as possible(Share our revenues and profits with employees), while still having the traditional structure, so that we can leverage and get the more administrative tasks away from others.

Let’s look at a traditional employee salary growth at a consultancy, that is high performing:

  • Year one starts at 15 LPA(Lacs per Annum)
  • Performs really good, so salary increased by another 5 LPA mid-year
  • Year two increased to 25
  • Year three, still high performing so we bump to 30
  • They are now vital for projects and we would like to retain them, let’s increase to 40 or even 50?

And now we start hitting our ceiling with increments.

As a consultancy, this ceiling really depends on

  • X(the rate at which a person is being billed), vs
  • Y(what they are being paid)

With the Company(at least in India) having to keep a profit margin of 20% by law, and other administrative expenses(Office rent, Conference Sponsorships, Team outings, etc), part of this also gets factored into Y.

The X part of this cannot really increase too much, in comparison with Y, as we work with longer-term clients, where bumping rates ever so often is not so feasible.

This brings us to our little experiment of- profit sharing.

We cannot proportionally always keep increasing salaries per year and not in a fair manner. Typically there are higher chances of whoever asks gets paid higher in the longer run, as goes with general salary negotiations. Instead, we would like to rely on profit sharing.

You can expect to earn 50 LPA, and then if it proves that- hey, we’ve hit our ceiling there, we’d like you to expect more returns from profit sharing.

Ownership

This has a couple of effects:

  • There is an increased sense of ownership.
  • Brings stocks/profits philosophy from Product companies to a Consulting business.
  • More relatable career growth.
  • The company’s success is your success!

We will report next year, how our experiment looks like :-)

Our Team

A company is as good as the team gets. I’ve been lucky to have been joined by the best team I could ask for as we began!

A bit of background on how I was introduced to our current team:

  • Prajakta: I have known Prajakta since I was doing my Diploma in Computer Engineering (since 2006!). She has worked with me in all of my previous companies and was one of the first people I talked to about this experiment.
  • Narendra: Same as Prajakta, I have known Narendra from my Diploma. He is one of the best people I have worked with in the last couple of years.
  • Puneet: Puneet is our second partner(other is Prajakta), and I couldn’t have asked for a more explorative one. Puneet is liked by most of the clients he works with and helps us get more work from people who know how good he is!
  • Sonam: When we started, I was swamped trying to scale with 3-4 clients. Sonam was a welcome relief from all the administrative and HR work, Invoices or other things that took up my time.
  • Alkesh: Alkesh like Puneet has been a friend from Engineering and an excellent addition to our team.
  • Aditya: Aditya was the first person I was introduced to outside of my immediate circle by a friend.
  • Romil: And he referred us Romil!
  • Prateek: Who then referred us Prateek :-) Both Romil and Prateek are amazing developers helping us out.
  • Rohit: Rohit too was one of the first people I talked to when starting up. I’d like to think of him as one of our Moral Compass ;-). He’s one of the most sincere and hardworking person I’ve ever worked with. While he is an excellent Engineer, his best quality is being outspoken to any and all BS, which keeps me and everyone else in check. Probably one of the qualities I would like all of my employees to have or improve - to keep me and the company in check, and ask questions!
  • Karthik: Karthik was a referral to us from our mutual friend, same as Aditya.
  • Aditi: Aditi came to know about us from Remote Year. Puneet has been a part of Remote Year and has been traveling and working remotely for the past 5+ years.

Conferences

This year we spoke at these conferences:

  • Fragments Conf, 2019
  • RubyConf Taiwan, 2019
  • RubyConf Thailand, 2019
  • ReactFoo, 2020

and made it as an attendee or a sponsor to:

  • RailsConf, 2019
  • RubyConf, 2019
  • DeccanRubyConf, 2019

Given the COVID-19 situation, all future speaking or attending plans seem to be canceled for now.

Blog Posts

We have been really prolific with our blog posts. Every week, all the team members try to spend 3-4 hours as feasible on blog posts or non-billable work.

At this time of writing, we have published around 104 articles in total. These were the topics we wrote about the most:

  • Ruby 2.7, in preparation of the latest release
  • Rails 6, before and after this major release last year

We continue to write about these and our experiences from working with our Clients.

New Pune Office

We have always been and will be a remote-first team. Starting December last year, as we grew, we started seeing the need to have an office in Pune, where most of our employees are located. On March 7th, we opened up our new office in Viman Nagar, Pune. Although being remote can be more productive or a free atmosphere for many, it can also get boring over time. Having an office where employees can hang out when they are bored, or just in general, to work out of for good internet or amenities, was our main motive behind the new space.

Unfortunately, a mere 10 days later, we had to close the office according to government orders for curfew in Pune. We hope to spend more time with our colleagues and host meetups in the future!

Being Lean

One of the things we have tried to strive for since starting is to be lean. We hire when we are really backlogged with work. Our hiring is slow as such.
Our hiring process involved our candidates working with us on paid projects. This process again can be a week or two long.

Traditional advice I have seen from most of my consulting company friends is to have a capacity of 10% or more workforce free to pick up new projects. Without this, we are being hit by an opportunity cost in many cases. Clients asking for more help, while our vetting/hiring process being slower to allow that.

We hope to balance being lean and avoiding the opportunity cost as we grow more.

What the future looks like- fiscally

I consider us lucky to have survived our first year. When we started, I spoke with most of our new team members of our first and hopefully second year completion being vital. With one down, we continue onto the next year of this experiment.

As the world reels into the inevitability of recession due to COVID-19, we are trying to continue to be more stable and survive the current weather.

We were hit by the Yes Bank Moratorium, earlier this year. This also helped us get some perspective on how our cash flow was affected and how we could respond to it.

Some lessons from that and how we have been trying to already save some money aside for our first year, we now have over 3 months' salary in savings at all times. As we grow, I keep trying to increase this number to accommodate new employees. We would like to take a safer approach and have a runway for 6 months to a year with just our cash savings.

So that we keep growing on this stability, I do not draw a salary, until we reach some savings milestones. In the event of Yes Bank Moratorium type scenario, the partners and higher paid employees are the last to draw salaries, as we address cash flow concerns.

While we do all this, we note that not growing as a team, can also hinder us long term. We add new team members to our team every month or so, and are currently looking for Rails Developers to join us!

Non-fiscally

Here are some of the things we would like to branch out apart from just consulting:

  • Internal Products - Developer tools for use for our own team.
  • More open-source contributions by our team.
  • If conferences open up, being able to get more of our team members access to the conferences.
  • Consumer Products- Which seems suspended right now, since we can’t really explore in the current isolated environment.
  • Our first team outing, and being more frequent about it!
  • Podcast from our Rails performance at scale work.

Summary

I have been lucky to be able to work with some of the most amazing projects we get to work on for our clients, with one of the best teams I could ask for.

We hope to report back next year, on how our little experiment is doing.