Clients have very similar requirements for Ruby on Rails projects. After going through 150 job posts at different sites, it is striking to see how similar these requirements are. Here are the common requirements of Ruby on Rails clients:
1. Experience in Ruby on Rails
Experience in Ruby on Rails is number one requirement of Ruby on Rails clients. Most RoR clients are startups. Some of them are venture-backed and eager to build the next big application as fast as possible. They look for Ruby on Rails experts. Some of them require experience in specific version.
When we approach clients we mention that we have in-depth expertise in Rails 3.2 and Ruby 1.9 and we have also worked with Rails 4.1 and Ruby 2.0.
Open source relational database management systems are a key requirement of Ruby on Rails clients. Three Database Management Systems that are most mentioned by the clients are MySQL, MongoDB, and PostgreSQL. MongoDB is used as backend software by popular sites like Craigslist, eBay, Foursquare, Sourceforge, Viacom, the New York Times and so on. Each of these three databases are very popular and widely adopted. Sometimes clients ask for expertise in LAMP stack in addition to MySQL. LAMP is an open source web application software stack that stands for Linux, Apache, MySQL, Perl/PHP/Python.
The next requirement is about APIs. APIs are required to transmit data between server and web application. Clients tend to prefer experience in JSON and REST APIs.
Mobile is the natural extension of a web application. Like us, if you have previously developed mobile application consuming APIs, it is smart to mention to clients.
4. Cloud Server
Web applications require servers. Ruby on Rails clients normally prefers Amazon web services and Heroku. Amazon AWS is a cloud computing platform. Amazon has positioned the service as a platform that provides large capacity at a low cost. Heroku is another popular cloud platform that supports multiple programming languages. Initially, Heroku had support for ruby only, now it supports Java, Python, PHP, Scala, Node.js, and Perl. Experience in Memcached often requested by Ruby on Rails clients. Memcached is a memory caching system that reduces the number of times a website needs to read a database.
We have worked with different profiling tools like newrelic, slim, rails footnote. Based on performance profiling, we provide a specific solution to applications. This varies from case to case basis but using caching with Memcached and auto-scaling using Amazon EC2 are few of them. We have been working with Heroku since 2009.
5. Linux Distribution and Git
Experience in Linux based distribution is a common requirement by Ruby on Rails clients. So is code samples in Git. Clients often want to see the coding quality and consistency of their prospective developers.
We have an expert team who are capable of setting up any Linux based distribution. Once the server is ready, we deploy those using Capistrano (code is pulled from Git). One problem that we, as a development company, face is that we cannot disclose the codes to other clients. We sign NDA before starting development which prohibits us from disclosing confidential information (i.e. codes written for other clients).
Experience in automated testing is a common requirement of Ruby on Rails clients. Frequently, they ask for experience in RSpec, Capybara, and Cucumber. RSpec and Cucumber are both testing frameworks that simulate actual application. Capybara is a tool that interacts with a website the way a human would (like visiting a URL, clicking a link, typing text into a form and submitting it). It is used to emulate how a user would flow through a website.
Agile is a software development style that allows clients to work as partners. It results in greater collaboration and therefore, better product. Agile also allows the developer to ensure a maximum match between clients’ requirement and final software. We have two Certified Scrum Masters in our team. Our COO, Fuad Omar, and CTO, Fattahul Alam.
8. Project Management Tools
Clients generally do not ask for any specific project management tool experience as a mandatory requirement. They mention which tools they use and expect you to have experience in that.
We use Trello, Basecamp, Pivotal Tracker, Scrumpad and Unfuddle Trajectory for project management. These are the main tools used for Ruby on Rails application development.
9. Front-End Experience
10. Mobile Application
A natural extension of the web application is mobile apps. Experience in mobile apps is a bonus requirement of Ruby on Rails clients most of the times.
When approaching client, we mention that we have built native iOS and Android applications. Besides, we have also worked with an open source platform – Titanium for building mobile applications.
These are the main client requirements I have found analyzing our previous records and job posts on different websites. I have also found that all clients put heavy emphasis on communication, collaboration, and creativity. If you think there are other expertise that RoR clients frequently require, feel free to add in the comment section.
You can check out my others articles here: