Current Location: USA, New York Current Work: founder & CEO at CodeClimate.com
How would you explain to your grandparents what you do for a living?
Hah, that’s a good question! I’m not sure have I ever tried. Explaining it to my parents is tough enough! Code Climate is a service that helps programmers do the job more effectively and it does that by providing them feedback about the work that they’re doing and giving them information about how the code that they’re writing is either getting better or getting worse. By doing that we give programmers the information they need to make sure their projects stay on track.
One-man shop or a team work?
I’m the only one working on Code Climate full time but we have a great designer who’s been helping me out for a long time. Also we’re just starting to get some help on the programing and operation side from a friend of mine. Fortunately we’ve been able to be small enough that everybody who’s worked on it is basically a friend of mine. So at this point CC is just 3 NYC based guys.
Toolset is important - what kind of tools do you use?
As for building the product, it’s pretty simple stuff. The app is a rails application that runs on ruby 1.9 and I personally program in Sublime Text 2.
As for the project management: we used to be so small and so much about it was just living in my head, that it would be my brain plus a whiteboard that I’ve installed in my tiny apartment (6 feet wide! It takes up most of my wall space!). Now as we’re doing more stuff we use Trello - one for the marketing tasks, and one for the product work.
What’s the story behind the name?
There’s not really much story behind, except that we went through about 50 bad ones before we ended up with the Code Climate. So I have a very large number of domain names that are now starting to expire. The origin idea was that we’re going to focus on a weather metaphor - if your code is doing well is would be all sunny and rainbows. If it was messy - it would be big thunderstorm or a tornado. When we started building the actual user experience, we kind of get away from the weather metaphor and stayed with the ratings (from G to F, or from A to B) which are not weather related at all. But as climate is not a super concrete idea, by the nature of the type of analysis that we do, I think that still fits.
What is the biggest challenge of running a company?
Building a business - particularly a SaaS business - from scratch is a process that takes pretty much amount of time, especially if your bootstrapped. As we haven’t raised any fundraising, it just been me putting in my time and money and getting some help. Code Climate is pretty successful but even now we haven’t got to the point where we would have full time employees. Those constraints have been great but it’s taken a lot of patience to get it to where it is right now. Things just take time to develop.
What has triggered the idea to set up the Code Climate?
I’ve been working on something that would eventually become a CC for all over 2 years now. Before I knew I wanted to build something for developers but I wasn’t sure what would be the most useful thing that I could develop. It was fits and starts, playing with ideas, drawing stuff out, building small prototypes. Eventually the idea evolved and crystallized from there to what is currently a CC. When we finally got to the point “ok this is what we’re gonna do - we’re going to build a website with code metrics” it was maybe 3-4 months until we had something that we’ve launched.
We don’t do much long time planning exercises.The biggest thing we’re focusing right now is something we just started talking publicly within last couple of weeks - our Security Monitor feature (UPDATE: Security Monitor feature just went live! blog.codeclimate.com/launching-security-monitor).
If you think about CC as an umbrella for automated code review - when we’ve started we were just reviewing your code for quality but now we’re adding the ability to get your code reviewed for potential security issues as well, all through the same interface.
Beyond that, probably the biggest feature that we really want to addressed is branch testing or support for pull requests. We’d like to make it possible to get metrics about your pull request before you merge it to your Github master branch.
What does your typical day look like?
I work most days from home. Some days I meet up with other guys at the office space or at coffee shops. Probably 3 days a week from home, 2 days a week from other places. I love mornings when I don’t have any meetings or calls scheduled and I just sleep in and don’t set an alarm.
First thing I usually do is check customer service emails. Usually in the morning when I wake up I have a handful of those to deal with. I do a lot of different things so my time is split up between interacting with existing customers, coordinating marketing - things like mundane or getting stickers printed to a conference, or working with a designer on the look of new features. Plus I still do the majority of the coding.
How do you keep yourself motivated?
That was really hard when it was pretty much just me - before I was getting help from any other developers. We started with no customer base and being a solo founder working on the product without customers supporting you is challenging. You feel a little bit like working on a cave by yourself with no one to talk to about it. I think the biggest thing is having the people to share the successes with. When the 3 of us can talk about some milestones that we hit or go for a beer and celebrate a launch of a new feature - that’s really energizing! Also talking with the people about the product has been great. I don’t think people realize for small product like CC how big of the impact simple things like sending out a tweet can have.
Developers seems to be a specific business target. Is it more difficult to make a product for devs?
It is pros and cons. I came from an engineering background so I feel I can communicate with them and understand their needs pretty well. I’m fortunate enough to have a lot of friends who are Ruby programmers and being able to get their thoughts on the product has been invaluable. The only con is that developers can be a tricky group to sell to - especially open source developers. Which at the end of a day is something that we have to do. We’re accustomed to having so much free technology available to us that’s been millon of dollars worth of engineering effort put into it. And we can just install in with our package manager in 30 seconds.
Right now we have a commercial product and a free for open source offering. Just like GitHub does. But we’ve started with a commercial product even though we always knew we want to do open source stuff. A lot of people struck the other way - with open source first. The reason we’ve started with commercial is I just knew if we couldn’t get people to pay for it, it was going to be very difficult to continue to invest time in it. Especially in a place like New York where the rent is … a big consideration very quickly. We just needed the project to make money to prove it’s going to be sustainable and to start paying for a little bit of the time that was being put into it. So we started there and we’ve launched the open source stuff later.
What’s the most important thing once building a team?
I think the biggest thing comes down to a mutual and shared respect across the whole team about whatever everyone else is doing. Some people are working on programming, some people are working on sales or marketing or HR. At the end of a day the best organizations are in a place where everybody feels that they’re having a lot of empathy and respect for the co-workers even if they are doing different things. Not to have clustering inside of the company by department - that’s the biggest key I’ve seen in organizations I’ve worked in the past .
The best programming advice you’ve ever got.
Getting out, meeting people and understanding of what are other people working on - both inside and outside of programming. One of the things that makes some developers so much more valuable than others is their ability to relate to context. If a developer can have a better understanding of how their work fits to the larger picture of an organization and how that organization fits into the larger ecosystem that triples all the way down into the very fine-grained decision that they have to make on daily basis - how I’m going to code it.