Speaker at Codemotion@Madrid 2013

The Codemotion conferences will be held in October the 18/19 in Madrid and i will be one of the speakers talking about the release, integration and development process of Tuenti.

Check this out:


In a nutshell, the talk will briefly summarize a blog post series i’m writting for our company developer’s blog regarding the development, integration and release workflows, how they were in the past and how they evolved to now be fast, reliable and with almost no human intervention.

These are the blog posts (3 so far, the 4th will be very soon)


The Tuenti release and development process blog post series

It’s time to announce a blog post series i’m publishing in the Tuenti developers blog.

It’s about the release and development process and i’ll try to explain how we work internally in our company, since a developer starts programming till the code goes to the production servers, passing through the development environment, Jenkins, the continuous integration and delivery and some internal tools we’ve developed to automate and ease the process.

This first part of the series just makes an introduction of what will come further on and shows the differences of how Tuenti was in the past (4 years ago approximately) and how is now.

In a nutshell, before there were many manual and error prone tasks the ended up in bugs in the site and now, everything is fast, reliable and automatic, with no manual intervetion at all.


I will announce the forthcoming posts here.


Nginx as reverse proxy for RabbitMQ MochiWeb server

Hi all,

I’ve suffered a hard day trying to find the solution to a problem that apparently has no a clear solution in the internet, at least, i couldn’t find it. So, i made mine.

RabbitMQ offers several plugins to enhance its usability, like the RabbitMQ management plugin (provides an HTTP-based API for management and monitoring of your RabbitMQ server, along with a browser-based UI and a command line tool) among others. Every plugin that requires any HTTP interaction works over a MochiWeb server automatically installed once installing the plugin. This server offers the 55672 port (default one) to interact with the API. For example, you can ask for the current RabbitMQ queues.

curl -u guest:guest http://localhost:55672/api/queues

In my case, i had to use Nginx web server as a reverse proxy for the MochiWeb server in order to have the management plugin web interface along with the default domain name, something like:


Therefore, i configured Nginx in this super easy way:

location /rabbitmq/ { 

But the problems started when i tested the full web interface and there were some parts not working, like consulting the queues: go to the queues tab and click in a queue, you will get this:

Not found

The object you clicked on was not found; it may have been deleted on the server.

Continue reading

Looking for a Devops Engineer / Release Manager @tuenti.com

We are looking for a Devops Engineer / Release Manager here at http://www.tuenti.com.

Join our amazing Devops team to improve the development workflow of more than 150 engineers, to write tools to automate EVERYTHING within this company like a single button to push code to live or a tool to merge branches automatically and to manage the releases we do almost everyday pushing code to more than 14 million users.

Enjoy this company: international environment ( people from more than 20 countries ), football table, ping-pong, beer+pizza every friday afternoon, trips, young and very talented people, etc.

Check the offer out or contact me!! http://corporate.tuenti.com/es/jobs/opportunities/offer/69