Dos “Migueles” que me hicieron llorar en TEDxRíodelaPlata

El sexto TEDxRíodelaPlata fue un evento de primer nivel mundial, hecho en Argentina. Lo viví intensamente desde la platea junto a personajes como @runixo@ebrenman y @santisiri. Imposible no felicitar al equipo organizador: Santiago Bilinkis, Gerry Garbulsky, Diego Golombek y el impecable conductor, coach, charanguista aficionado y amigo personal Max Goldenberg.

Dos “Migueles” me hicieron emocionar mucho, por motivos bien distintos.

Miguel San Martín

Miguel San Martín es argentino. Pasó los últimos 35 años de su vida trabajando en la NASA. Luego de años de esfuerzo, finalmente le asignaron la enorme responsabilidad de diseñar e implementar el sistema de aterrizaje del Curiosity, una misión de exploración a Marte. Quizás, el proyecto de su vida.

El 2 de Agosto de 2012, Miguel descubrió que el sistema que había diseñado su equipo tenía un error de software y que por esa causa, el Curiosity corría riesgo de estrellarse al aterrizar. Esta noticia, que podría haberse descubierto en cualquier momento de los 8 meses que duró el viaje, se conoció a tan sólo cuatro días de amartizar.  Miguel tenía pocos días para decidir lo menos riesgoso: “vivir con el problema” o intentar corregirlo desde la Tierra. En T-2, la noticia del “glitch” ya había llegado a Obama. “No es exactamente el tipo de fama que quisieras tener”, dijo mientras arrancaba una carcajada a la audiencia.

Después de días sin dormir e infinidad de cálculos, decidieron corregir el software desde la Tierra y “mandarle el comando” al Curiosity. Imagínense la presión: La NASA es tu vida y sos el responsable de un error que no sólo cuesta 2500 millones de dólares sino que implica una vergüenza nacional histórica. El drama duró siete minutos. Los “siete minutos de terror”, donde el Curiosity entró a la atmósfera marciana y experimentó una brutal desaceleración de 20.000km/h a cero. Finalmente, Curiosity amartizó sin problemas provocando euforia y lágrimas en Miguel y en todo el equipo de “ñoños” que estaban detrás de los monitores:

Pude sentir algo de la presión de Miguel en esos momentos difíciles, y también su emoción al lograr sacar el problema adelante. A una escala completamente distinta, en MercadoLibre vivimos varias situaciones parecidas. Emoción nerd (como me cargaba Magdalena via Twitter), pero emoción al fin.

Miguel Savage

Miguel peleó en Malvinas. Pasó 60 días en un pozo húmedo, helado y sin comida sólida.

“Teníamos tres enemigos: los ingleses, el clima y nuestros jefes”

Un milagro hizo que la guerra termine antes de que lo mataran. Sacaron a Miguel de las islas en un transatlántico como prisionero de guerra, junto a muchos otros soldados argentinos. Lo custodiaba la misma gente contra la que días antes estaba luchando en el campo de batalla. Como Miguel era traductor, ofició de intérprete en varios intercambios y empezó a conocer más a aquellos “ingleses sin cara”.

“Es imposible odiar a alguien una vez que le pusiste cara, que lo humanizaste”

Después de 20 años de hacer una vida “normal”, Miguel fue acorralado por un fuerte stress post-traumático, y necesitó volver a Malvinas para cerrar viejas heridas. Llegó a las islas junto a algunos ingleses de los que se había hecho amigo luego de la guerra. Un lugareño lo alentó: “Miguel, estás tirando puentes”.

“Quizás tendríamos menos guerras si forzásemos a la gente de pueblos enemigos a humanizarse, a conocerse. Del enemigo sin cara nos separa una gran pared. Necesitamos construir puentes, no paredes”.

Nota personal: en un momento Miguel mostró esta foto del reencuentro con su madre, al volver de Malvinas:

Me pasó algo muy profundo, que charlaba después con @runixo: hace tiempo me hubiese identificado con Miguel, pero al ver esa foto me identifiqué con su madre. La paternidad nos cambia…

Daniel Rabinovich

La primera conferencia para desarrolladores de MercadoLibre

Se acerca uno de los hitos más importantes en la historia de MercadoLibre: la apertura de nuestra plataforma. El lanzamiento será el 31 de Octubre en el hotel Marriott Renaissance, San Pablo. El evento será gratuito y de día completo, donde desarrolladores de MercadoLibre explicarán los principios de diseño de la API, así como charlas funcionales sobre todo lo que se puede lograr con ellas. Además hablarán Marcos Galperín (Fundador y CEO), Helisson Lemos (VP Brasil) y como “bonus”, hemos invitado a un gran keynote speaker, por ahora sorpresa :-). Al final del día, dedicaremos dos horas a un espacio abierto con cinco “stands” simultáneos (uno por cada track funcional) donde los expertos en cada aspecto de la API responderán preguntas y harán “live demos”.

Minisitio del evento: devconf.mercadolibre.com


¿Por qué abrir nuestra plataforma?

Si bien MercadoLibreMercadoPagoMercadoClics y MercadoShops forman un ecosistema con fuertes “network effects”, si lo mantuviésemos cerrado su impacto quedaría limitado a lo que puede ejecutar nuestro equipo de tecnología. Al abrir la plataforma, permitimos que otras empresas creen negocios sobre nuestro ecosistema. Para estas empresas, integrarse a la plataforma de comercio electrónico más grande de América Latina (y una de las diez más grandes del mundo) es una excelente manera de crecer. Por ejemplo, una compañía llamada 00K ha integrado recientemente nuestras APIs con su producto de eCommerce. Esto hizo que BebeStore, uno de los retailers online más grandes de Brasil en su segmento, pueda publicar sus productos en MercadoLibre y gestionar sus ventas sin siquiera entrar al sitio.

Esta presentación explica el caso en más detalle. La gestión de ventas no es el único caso de uso de nuestra plataforma. Un ejemplo diferente es el de MercadoPin, que combinó nuestras APIs de búsqueda con nuestro sistema de afiliados para generar un negocio online.


¿Por qué ahora?

El boom de las APIs ocurrió a fines de la década pasada. Tras anunciar la apertura de su plataforma en 2010, Facebook se transformó en la plataforma más exitosa del mundo, con más de un millón de desarrolladores. Empresas como Zynga generaron negocios millonarios sobre el Facebook Platform. Las grandes plataformas de eCommerce abrieron sus plataformas todavía antes. ¿Por qué MercadoLibre esperó hasta 2012? La respuesta es simple: queríamos comer el pescado que vendemos. Léase: queríamos ser los primeros usuarios de nuestra plataforma. Antes de compartirla con otros, hemos invertido dos años en reescribir todo nuestro código para montar nuestras propiedades sobre la misma plataforma que ahora estamos abriendo.


¿No se había anunciado la apertura de la plataforma hace seis meses?

Lo que anunciamos hace un tiempo fue la apertura de la plataforma exclusivamente para socios seleccionados por MercadoLibre. Un ejemplo es Navita, quien armó nuestra aplicación de Blackberry. Desde el 31 de Octubre, cualquiera podrá ingresar al sitio de desarrolladores y empezar a escribir software que interactúe con nuestras APIs.


Lo que viene

Así como la apertura de sus plataformas cambió completamente la vida de compañías como Twitter, Facebook, Google, Apple, eBay o SalesForce, todos en MercadoLibre estamos ansiosos por ver cómo la apertura de la nuestra cambiará también nuestras vidas. Creo que las palabras de Marcos el día de nuestro IPO aplican perfectamente:

“Este hito marca el fin de un gran viaje y a la vez, el inicio de otro mejor”

¡Nos vemos el 31 de Octubre en San Pablo!

Daniel Rabinovich (@drabinovich)

HTML5 y los riesgos de seguir la moda ciegamente


Situémonos un año atrás. Facebook es la aplicación móvil más grande y exitosa del mundo. En la conferencia anual para desarrolladores, el gerente de ingeniería de Facebook Dave Fetterman anuncia que van a cambiar sus aplicaciones nativas por una única versión en HTML5. Gracias a esto, van a lograr:

  • Escribir sus aplicaciones una vez en lugar de cinco.
  • Hacer deploys diarios, en lugar de esperar los procesos requeridos por los appstores.

Parecería que hay que tener una mente de mosquito (chiste interno) para no copiar el approach de Facebook. ¿Quién puede querer escribir lo mismo cinco veces, o esperar una semana para poner en producción una nueva versión? La respuesta es simple: las aplicaciones nativas son sensiblemente más rápidas y producen una mejor experiencia. Es mérito del equipo móvil de MercadoLibre (y no mío) el haber resistido la tentación de copiar “a los que saben”.

La fragmentación es problema de los ingenieros, no de los usuarios. HTML5 quizás sea el futuro, pero definitivamente no es el presente.

Como explicamos hace seis meses en este post, decidimos resistir la moda y hacer lo que creíamos mejor para nuestros usuarios, aunque implique mayores costos. Más sobre nuestro approach a mobile a partir del slide 13 de esta presentación:

Link a la presentación si no lográs verla.

Hace unas semanas se hizo claro que Facebook había cometido un error cuando volvieron sobre sus pasos, lanzando una nueva y rapidísima versión para iOS. Hasta un ácido crítico como Arrington dijo “Facebook is back in the mobile game”.

Ayer el mismo Arrington entrevistó a Mark Zuckerberg en TechCrunch Disrupt. Palabras de “Zuck”:

“El mayor error que cometió Facebook en su historia fue apostar demasiado a HTML5. Perdimos dos años gracias a este error”

Creo que este caso encierra un gran aprendizaje para todos los que tenemos la obligación de observar la industria y decidir cómo invertir esfuerzos: la mayoría de las veces es una gran idea seguir a los que saben pero es necesario estar muy alerta, porque los que saben también se equivocan y… mal de muchos, consuelo de tontos.

Daniel Rabinovich (@drabinovich)

Speaking at Etsy

Last May, I had the honor to welcome Dave McClure and the Geeks on a Plane group at MercadoLibre offices in Buenos Aires. I gave a short talk and answered questions on  technology, e-commerce and Latin America. One of the geeks on that plane was Kellan Eliott-McCrea (CTO at Etsy), who kindly invited me to give an open talk in context of the Code as Craft Technology Talks series. It wasn’t until last monday when we found the opportunity to make this happen.

The talk
I’ve always hated the “success story” format, where somebody explains how well he figured out everything from the very beginning. In this talk I intended to share concrete examples of some mistakes we made, and what we learned from them.


Just in case you have an hour, here’s the video.

Etsy offices – A lesson on “design culture”

Etsy offices are located in Brooklyn, in a neighborhood called DUMBO, an acronym for Down Under the Manhattan Bridge Overpass. As soon as you step a foot in that office, the “design spirit” takes over your senses. It’s one of the coolest, quirkiest place I’ve ever been to. Everything looks hand made. Every desk is different, crafted by a different Etsy seller. Every “normal” object was an excuse to craft something beautiful. Here’re some pics:

If you work there it’s clear that you are expected to carefully “design” everything you do, no matter if you’re a designer or an engineer. No surprise Etsy is arguably the most “beautiful” marketplace out there. This experience triggered something in my head: we need more than a good design playbook to reach the next level. Now I have a challenging (and pleasant) homework to do.

Daniel Rabinovich.

Guinea pigs and cognitive biases

Some time ago, a friend asked for my help with a puzzle:

There are 1,000 buckets, one of them contains poison, the rest of them are filled with water. They all look the same. If a pig drinks that poison, it will die within 30 minutes. What is the minimum number of pigs do you need to figure out which bucket contains the poison within one hour?

Since I was familiar with similar problems, I quickly replied: the answer you’re looking for is 32 (the rounded square root of 1000). The procedure looks like this: the first half hour, split all 1000 buckets in 32 groups of 32 buckets. Have the first pig drink a drop from every bucket from group #1, and so on. Half an our later one pig will die, so we’re left with 32 candidate buckets (and 31 pigs) for the second half hour. Then, have all pigs drink from one bucket. This should find the poison (if none of them perish, the poison is in bucket #32). Proud at my problem solving skills, quickly rested my case and focused my attention in something else.

A few weeks later, I realized that I was wrong. 1000 buckets can be binary encoded with 10 bits (log 2, 1000) = 9,96 -> 10 pigs will suffice. The procedure is explained below for 8 buckets and 3 pigs (10 pigs solve 1024 buckets).

          Pig1   Pig 2   Pig 3
Bucket 1:  0       0      0
Bucket 2:  1       0      0
Bucket 3:  0       1      0
Bucket 4:  1       1      0
Bucket 5:  0       0      1
Bucket 6:  1       0      1
Bucket 7:  0       1      1
Bucket 8:  1       1      1 

There was a disturbing fact though: the procedure solves the problem in half an hour, and we have an entire hour to use. However, after finding a a solution to a similar problem in the comments section of the original post, I ignored this annoying fact and quickly jumped into the conclusion that the solution was actually 10.

Long story short, I was wrong, again. There are 2 better solutions:

Solution with 9 pigs: binary encoding, but in two “rounds” of 512 buckets.

Solution with 7 pigs: use ternary encoding instead of binary. The “trits” (as opposed to bits) represent 3 states: “dead in the first half hour”, “dead in the second half hour” and “survivor”. Using this technique, 7 pigs can solve up to 2187 buckets (3^7).

A dangerous cognitive bias

This sequence of failures have a common denominator: I tried to match the problem with the most similar pattern I knew, and quickly jumped into conclusions. As Daniel Kahneman says in his marvelous book Thinking Fast and Slow:

“A failure to check is remarkable because the cost of checking is so low”

In my case, I only had to check the comments section of the page! I almost answered by intuition. Since everything “looked right” the lazy left side of the brain failed to ring the alarm… 4 times.

To illustrate this point, Kahneman gives the following example. Don’t try to solve it but listen to your intuition:

A bat and ball cost $1.10
The bat costs one dollar more than the ball
How much does the ball cost?

They tested this simple puzzle on thousands of university students. More than 50% of students at Harvard, MIT and Princeton gave the intuitive -incorrect- answer: 10¢. The right answer is $1.05 and 5¢.

“A few seconds of mental work, with slightly tensed muscles and dilated pupils, could avoid an embarrassing mistake.”

This cognitive bias “force a situation into a known pattern and quickly jump into conclusions” is quite dangerous in a Technology team. Often the size of the inefficiency of a suboptimal solution is in the range of “32 vs 7 pigs”. In a large system, this cost could be huge, both financial and in terms of User Experience.

My first hand encounter with this dangerous bias made me tweak the “left side alarms” and strive to minimize the negative effects. After a while, it’s paying off. Hope you find it useful too.

Daniel Rabinovich

MercadoLibre’s approach to Mobile

We’re living in one of those moments in Tech History when everyone agrees on the upcoming standard but, at the same time, disagrees on how to handle the present.

The first MercadoLibre’s mobile app was launched last October. As explained in the Investor Day, it took us a long time to build a common layer of APIs, serving the desktop web, mobile apps, 3rd party apps, etc. The bright side of being late is that (if you’re still alive) you can leapfrog. We’re delighted by the fact we’ve reached 2,5MM downloads in just five months.

The app is 100% native, available for iOS, Android, Blackberry and Symbian. Although we’re enjoying the benefits of the native-apps world (better with slower data connections, great UI), we’re paying the price for it (lower deployment frequency, writing the same thing 4 times).

Why don’t we turn our apps into “native shells” for HTML5 applications? Last year Facebook did just that and they’re arguably the largest mobile app in the world. One simple answer: Native User Experience is still superior. I strongly emphasize “speed” as an integral part of the User Experience. At least in LatAm, where data connections are slower, this is a major issue. The second factor is that HTML5 doesn’t work that well on older mobile browsers, and we have a large installed base of those in LatAm.

Wouldn’t have been easier to just copy Facebook’s approach? IMHO, despite Facebook took the right long term approach, they may have made the move a bit too soon, at least in Latin America. Delivering a suboptimal User Experience is very cost-effective but it makes room for “beautiful” apps to emerge. The growth of Path might be a consequence of this. Ok, maybe uploading users’ address books without premission helped as well, but that’s a different story.

What about the mobile web? Mobile is not just about apps. The mobile web is also growing, and is quite relevant for e-commerce. We’re currently working on a web version of MELI, using the Progressive Enhancement approach. As soon as we achieve a good enough UX, we’ll start embedding the web into the native app. Here are a few screenshots of the Work-In-Progress MercadoLibre web version:

Daniel Rabinovich

Relative color

I’m amazed at how many people think that colors are absolute, meaning the same RGB value will be perceived as the same color in every condition. It’s definitely not like that. Lighting conditions and the proximity of other colors and shapes greatly affect our perception, and our brain performs an enormous amount of corrections.

Consider this optical illusion:

Despite squares A and B are the exact same color, they are perceived as black or white in the proximity of other colors. In Color Theory, this is called “color context”.

Lighting conditions are another source of relativity. When using our eyes, our brain learned what lighting conditions we’re on and automatically adjust perceived colors. Digital Cameras have a tough time understanding what our brain is automatically correcting. That’s why we’re asked to adjust white balance when taking pictures. The following pictures show the same object in the assumption of three different lighting conditions (tungsten, fluorescent, and sun):

Why is this relevant to an e-commerce company like MercadoLibre? Because we need to extract product colors from user-uploaded pictures with unknown lighting conditions and therefore, unknown colors. This is a non-deterministic, complex, and beautiful problem to deal with. We’ll keep you posted.

Daniel Rabinovich