Answering My Own Contractor Questions

In a previous post I talked about some of the common questions I ask contractors in order to understand who they are and what kind of work they enjoy. I thought it would be a good idea to post my own answers here, so you can get an idea about who I am and how I work.

1. What’s your experience with Ruby on Rails?

I’ve been working with Ruby on Rails since early 2005 (February I think). I was working in PHP and I got tired of having to build everything from scratch so I started searching for alternatives. At the time I was comparing Ruby on Rails (and Ruby) with all of Python’s different frameworks. Even with some previous Python experience, I decided to give Rails a try because I had a hard time comparing all of the different Python frameworks.

I’ve done some brief stints in PHP and C# since then, but I took Rail’s ideas (and opinions) into those projects.

  • Reimplementing part of Test::Unit in PHP? Check!
  • Setting up a MVC distributed system in C#? Check!
  • Building a Rails url router and controller for a WordPress plugin? Check!

2. What kind of projects do you enjoy?

I enjoy working on backend business applications. A lot of developers shun them because they think they are boring, but I love them. Even though most businesses use the same general workflow, there are enough subtle differences that keep the project interesting.

3. Thinking about all the projects you’ve worked on, which did you have the most fun writing/producing/doing?

One of my favorite projects was creating the Redmine Kanban plugin. It was built to have a simple user interface for a complex workflow system. What really made the project fun through was that my client really embraced using my Redmine to manage the project. That made it easy for us to communicate and iterate through several designs in a short time. Since then, I’ve noticed that every project that really uses my Redmine has gone smoothly. The projects that don’t use my Redmine, or any other system, tend to stumble and get close to failing.

4. What are your strengths?

My strengths are:

  • Project communication
  • Automated testing
  • System architecture
  • Deployment / system administration

5. What are your weaknesses?

My weaknesses right now are:

  • Graphics/UI – I know CSS well but it’s difficult for me to build a user interface or layout from scratch.
  • Scaling – Most of my projects are deployed to the customer’s intranet and handled by their IT department so I haven’t needed to scale beyond two servers yet.

6. Where do you want to grow?

One area I’m getting into is performance and scaling. I’ve gathered a bunch of tools to do some performance work on Redmine.

7. How much lead time would I need to subcontract you? A week in advance, a month, etc.

It depends on my availability and the size of the project. My schedule is typically full 1-2 months out but sometimes I have openings earlier than that for smaller projects.

8. Do you bill by the hour or project?

I bill by the hour on most of my projects. I’ve found that gives my clients the most flexibility to change the scope of the project and adapt to new information as it comes up. With a fixed bid, changes have to be postponed and that can cause a client to lose an opportunity.

9. What are your rates?

You’re going to have to contact me privately for that.

10. What’s one question I didn’t ask but I should have?

“Why did you start your business?”

I wanted to get experience with how a wide variety of companies are using web technology. Being an entrepreneur since college, I decided to start a software consulting company.

I hope this gives you a better idea of me and how I work. If you have any questions, I’d be happy to answer them in the comments below.