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

Use ActiveRecord bang methods in your tests

I've been working with Rails for more than 5 years now and during this journey I've learned the importance of building a reliable and maintainable test suite along with your development code. There are lots of resources on the web with advices on how to write tests in Rails applications. This blog post talks about one specific … Continue reading Use ActiveRecord bang methods in your tests

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

Lessons Learned From My First ThoughtWorks Project

Hey Guys, It has been a while since my last post here. Lots of things changed in 2011. The big change happend in March when I joined ThoughtWorks Brazil and moved to Porto Alegre. From March to November (8 months) I worked in a distributed team between Brazil and EUA. During the project, we as … Continue reading Lessons Learned From My First ThoughtWorks Project