3 Lessons From My First Ruby on Rails Freelance Experience

A few months ago I signed up for Matchist, a new startup that matches up freelancers to clients. A few weeks ago, I finally got matched up to a client, and was excited to freelance as a Ruby on Rails developer for the first time. Here is what I learned along the way:

Include Extra Time For Setup and Research

When I started my freelance gig, the client asked me estimate how long it would take me to fix each bug, since I was working hourly. I did my best to give a rough estimate, but I completely forgot to include any time for setting up their project on my local dev environment.

It took me some time to clone the project from github, install the right version of ruby as specified in their .rvmrc file, install all the gems, setup my local database, and get familiar enough with the project setup to start researching how to approach fixing the bugs. You know the drill, so make sure to include the project on-boarding time in your estimation!

Be Conservative In Your Estimations

It’s really hard to estimate how long something will take in web development, especially if you’re not yet that familiar with the code base at the time of the estimation. So if you think a task will take only two hours, add on an hour to your estimation. The client will be a lot happier if the task takes you two hours instead of three than if you estimate for 2 hours and take 3. I told my client that my estimations were very rough, but once the estimate numbers are on the table, it’s much harder to re-negotiate up.

Communication Is Key!

For the bugs I was fixing, once I figured out the source of the bug, I usually thought of a few solutions, some of which involved significant changes to the existing product. Communicating with my client about these solutions and how long each solution would take me was the key to my success as a first-time Ruby on Rails freelancer.

If something needed extra time, the client was the one who chose the more lengthy solution, and it was a much better situation than if I just decided which solution to implement myself and that didn’t match to what the client actually wanted. I made sure to keep in contact with my client throughout the experience, making sure they understood what I was working on and how long it takes me. Yet, there still was a slight mis-communication about two hours of my work. So next time, I will be even better at my communication!

Have you ever freelanced as a developer? Please share any additional tips in the comments!

Enjoy the article? Join over 14,500+ Swift developers and enthusiasts who get my weekly updates.

  • Hello,

    I’m an aspiring Web Developer with a few concerns regarding the direction of this occupation. Are content management systems replacing the demand for frameworks such as Rails?

    Thanks,

    Adrian

    • Hi Adrian,

      I’m not sure what content management systems are. Do you have an example?

      • markphd

        Really Natasha?! I’m surprised. WordPress, Joomla, Drupal, etc are examples of CMS. Anyhow, I bet you don’t know them since you started with Rails. I’m sure you know Jekyll and Octopress. 😀

        • I know the platforms, just not the term “CMS”. That’s why I asked for an example…

  • Lawrence

    Adrian,

    No, content management systems are not replacing Rails. They are actually two different things. Content Management Systems, such as Drupal or WordPress, simply allow an admin to update content themselves. Rails, on the other hand is a Ruby framework for building web applications. They aren’t mutually exclusive either since a Rails app can have a CMS in it. Let me know if that helps.

    • Adrian

      Hi Lawrench, thank you for your reply! That clears it up for me.

  • Natasha, great blog post! I’ve been wanting to start free lancing as a RoR developer too – this was a nice, quick little read to come across. Best of luck to you in your freelancing endeavors.