Concurrency in Ruby

During my journey as a Ruby developer, I have listened multiple times that Ruby is single-threaded. However, for a long time it has been confusing to me what does it really mean and how threads work in Ruby. This post aims to share some of my findings about this subject during my career. I hope it … Continue reading Concurrency in Ruby

Asynchronous Jobs Backward Compatibility

It is a very common practice to use asynchronous jobs for executing long and time consuming tasks, such as sending emails, batch imports and image resizing. These jobs run in the background and are key to building scalable web apps. Although background jobs are easily implemented and configured, specially in Rails, there is one aspect I … Continue reading Asynchronous Jobs Backward Compatibility

Using rake to automate heroku tasks

One of the cool things that I've learned at ThoughtWorks is automating stuff. Automating daily tasks is pretty cool and important. For instance, all the teams that I've worked in the past 3 years create scripts to automate builds, deploys and database backups between other tasks. At Motonow we try to do the same. Because we use Heroku infra-structure we have to … Continue reading Using rake to automate heroku tasks

Extending Devise – Registrations Controller

Introduction In this post, I want to share my experiences in using Devise as an authentication solution for my company's Web app. While building Motonow, the team had to make a couple of though decisions and choosing the right authentication solution was one of them. To be honest, most of the projects I've joined had already overcome this phase … Continue reading Extending Devise – Registrations Controller