“¿Pero que tontería dices?”

“Toda la razón”

Cualquiera que sea tu respuesta creo que te interesa esto.

En ShuttleCloud como en casi todos los sitios tenemos fuegos, tenemos más trabajo del que podemos hacer y mucha presión. Creo que se puede entender estando en producción en Gmail y moviendo 6 TB por día…. de hecho salimos a producción en Abril y desde entonces nuestra API ha estado up todo el tiempo. Y no solo tenemos Gmail, tenemos clientes bastante grandes como Time Warner, Comcast, hemos sacado un API que ya están usando clientes grandes y que tiene un mucho de experimentar e investigar.

En ShuttleCloud intentamos potenciar que la gente aprenda y crezca profesionalmente, lo hacemos poniendo a su alcance herramientas e intentando que la cultura anime a hacerlo. Entre las cosas que damos o hacemos están:

  • Cualquier libro relacionado que se quiera leer, se compra.
  • Se paga la asistencia eventos. No solo las entradas, viaje, hotel, comida, etc
  • Organizamos eventos y damos todas las facilidades para organizarlos.
  • Realizamos lightning talks y talleres cada semana, o casi cada semana :D.
  • Se anima a la gente a asistir a cursos que pueden ayudarles a mejorar, y claro los paga la empresa :D.
  • Promocionamos que la gente dedique tiempo en su día a día a leer, investigar, etc.
  • Hay un seguimiento individual para intentar que la empresa conozca y ayude a la gente a que crezca profesionalmente.

Con todo eso, el viernes tuvimos una charla todo el equipo para intentar que la gente aproveche más estas oportunidades porque habíamos detectado que no estaba ocurriendo. La cuestión es que cuando tienes mucha presión y mucho trabajo la tendencia es ver solo eso y olvidar que el trabajo que no deja de crecer y que hay que entender que no se puede hacer todo. Sí, ya sé pero que metodología usáis? hacéis prácticas ágiles? ese no es el problema. El problema es que siempre hay cosas que mejorar y que haciendo integración, mover datos en la nube es de lo que va, pues requiere de mucho trabajo no planeado. También que en la cabeza de la gente están todas las cosas que hay en el backlog.

Para mi hay dos problemas uno en la empresa y otro en cada uno de nosotros. Empiezo por el segundo, como developers creo que debemos ponernos como parte de nuestro día a día leer e investigar. Ya no solo leer los avances del framework, lenguaje que usas, sino también prácticas, nuevos lenguajes, frameworks, conocimiento base, etc. Y esto va a parte de la empresa, lógicamente deberías trabajar en una empresa en la que estén alineados, pero esto tienes que entenderlo como parte de tu rutina. Si no puedes hacer esto porque el trabajo diario te lo impide, deberías poner medidas, como quejarte y ser muy pesado :D

Desde el punto vista de empresa, el problema es que se debe intentar poner medidas para que la gente entre en esa dinámica de querer aprender, crear una cultura en la que la gente comparta su ilusión y lo que aprende. Y estar vigilante para que si alguien está en la dinámica de dejarse ahogar por el trabajo, cambiar esa situación. Para eso lo mejor en mi opinión es hablar con la gente, bueno el verbo no es hablar es escuchar. Por eso es importante tener reuniones individuales con la gente para ver como se sienten y como quiere evolucionar. Aunque no hay nada como trabajar codo con codo durante un tiempo.

Siento el ladrillo ;)

Hoy he ordenado mi armario y han salido como 15 camisetas de diferentes eventos de los últimos 2 años o así.

En mi caso estas camisetas acaban casi siempre como pijamas y finalmente como trapos. Recuerdo un tweet (no lo he encontrado por eso no pongo link) que decía algo como que las conferencias cumplían una función social que era dotarnos de pijamas para el resto del año.

Tengo tantas que ya no sé que hacer con ellas, así que las voy a llevar a caritas. Entiendo que allí les darán mejor uso que yo y eso me ha llevado a preguntarme, ¿por qué no hacemos esto directamente en los eventos?.

Cuando te registras en un evento estaría bien marcar una opción parecida a esta:

– No quiero merchandising, prefiero que ese dinero se done a alguna causa benéfica.

No creo que sea mucha pasta pero algo es algo, y es posible que en muchos eventos las camisetas sean baratas por el hecho de hacer muchas, así que simplemente no tiene sentido hacer menos, pero bueno incluso en ese caso los del evento podrían quedarse las camisas y donarlas a alguna ONG, donde seguro hay gente que las necesita más que nosotros.

Revisión anual

diciembre 26, 2014

Llega final de año y como es tradicional la gente hace una revisión de lo que ha sido su año, no suelo hacer esto, pero he tenido un año tan memorable para mi que espero que esto me sirva como un lugar donde volver y mirar la suerte que tengo.

Empecé el año trabajando mucho mucho en el libro que íbamos a sacar. Finalmente salió en Febrero y 11 meses después no me puedo quejar de como va, llevamos según la editorial exactamente 999 copias vendidas xD. Muchos me han preguntado que tal fue mi experiencia escribiendo y la respuesta es sencilla, mala :D El trabajo que lleva es muchísimo y eso que estamos hablando de un libro muy pequeño, también es cierto que no es en mi idioma nativo. De todas formas, mis respetos a la gente que escribe libros de calidad y con una buena amplitud de contenidos.

Poco tiempo después salimos a producción con Gmail, este proyecto es sin duda el proyecto más grande en el que he trabajado nunca. Por si alguno no lo conoce, algo muy probable teniendo en cuenta lo mal que nos vendemos xD, Gmail ha integrado nuestra tecnología dentro de su web para que los usuarios puedan migrar sus emails y contactos de otros proveedores a Gmail ( https://support.google.com/mail/answer/164640?hl=en). Estos son algunos de los datos de este proyecto a día de hoy:

  • Hemos migrado:
    • 1.3 millones de cuentas de contactos, lo que significa 400 millones de contactos.
    • 1.2 millones cuentas de email. 7000 millones de emails.
  • Movemos 170 GB/h, lo que es más de un 1 terabyte cada 6 horas 24/7
  • Nuestro sistema está up 99%
  • Somos la única empresa integrada en Gmail, para evitar problemas como éste, es mejor decir que somos la única empresa en la que Gmail se ha integrado con nosotros.

Poco después de esto me seleccionaron para entrar en http://insightdatascience.com/ el simple hecho de que te elijan es para mi suficiente para estar contento, pero bueno además de eso, pasé las entrevistas, de la que más orgulloso estoy es de la prueba de código, había que programar un black jack. Supongo que será por ser developer :D 

Al final no salió, principalmente por un problema con el visado y la fecha en la que el curso tiene lugar, me pidieron que volviera a pasar el proceso para evitar este problema en la edición de Febrero pero la verdad la entrevista final me decepcionó completamente, a mi que alguien evalúe a una persona en base a una de esas típicas preguntas técnicas de entrevista me dice mucho y malo de ellos.

Después de esto me invitaron a dar una charla para contar nuestra arquitectura en Dallas en la SpringOne  (http://www.infoq.com/presentations/data-migration-rabbitmq-spring?utm_source=infoq&utm_medium=QCon_EarlyAccessVideos&utm_campaign=SpringOne2GX2014)

Para mi esta experiencia es una de las mejores de mi vida. La charla surgió gracias a @old_sound,  él fue quien movió todo para que se hiciese realidad. La experiencia fue espectacular, me tocó currar mucho para preparar la charla, es un evento que atrae mucha atención y quieres hacerlo bien. Pero la experiencia fue increíble sobre todo por @old_sound, como la charla era conjunta con él pasamos toda la semana juntos y me dio tiempo para conocerle bien. Álvaro es una de esas pocas personas que sorprende tanto por lo que sabe como por su forma de ser, he conocido muy poca gente en este sector (y llevo más de 13 años) que tengan el ego más pequeño que el conocimiento y él es uno de ellos.

Por último, estos dos últimos meses han supuesto un gran win en mi vida profesional, siempre he tenido gente a mi cargo pero estos dos últimos meses me he echado a la espalda a todo el equipo técnico de ShuttleCloud, su forma de trabajar, de interactuar con el resto de la empresa, etc.

Esto ha llevado a un cambio importante en mi role en la compañía que espero poder comunicar oficialmente pronto.

Estamos trabajando en muchas cosas muy chulas con compañías muy importantes que esperamos que salgan pronto, aunque nuestro objetivo como podéis ver en nuestra web http://shuttlecloud.com/ es que todos los developers puedan usarlo.

A 2015 solo le pido salud, del resto ya me encargo yo.

Saludos

Update (6/3/2014):

Visto que este post ha creado un poco de polémica  en la mencionada lista matizo unas cosas de cosas:

  1. No crítico la lista, sino a los trolls que la pululan.
  2. Mucha gente me ha dicho que simplemente ignore a estos personajes. Prefiero intentar cambiar las cosas y decir lo que no veo bien.
  3. “Deberías quitar el post”. Prefiero pensar que vivimos en un mundo donde podemos opinar libremente.
  4. Me llama la atención que cuando empezó el trolleo a la oferta, nadie de los que ahora se rasgan las vestiduras dijera nada de nada.

Y ahora el texto de la polémica:

Hoy publicábamos una oferta para Junior , decidimos publicarla en la lista de correo de python porque aunque no requerimos experiencia, la gente que provenga de esta lista puede que ya este familiarizada con el lenguaje. Un camino menos que recorrer.

Publicamos la  oferta más honesta que pudimos, intentando dejar claro qué hacemos, qué ofrecemos, qué esperamos del candidato y todas las condiciones que damos. Sinceramente creo que la oferta es muy muy buena, ya me hubiera gustado tener una oferta así cuando empecé.

Hemos recibido bastantes candidatos y de mucho nivel, de hecho algunos tienen demasiado :D Pero me quedé con muy mal sabor de boca, la primera respuesta que recibimos en la lista de python fue una crítica absurda, intentando desmontar nuestra integración con Gmail, con el argumento simple e infantil de yo no lo veo. La verdad es que me lo pensé tres y cuatro veces antes de publicar la oferta porque de todos es sabido que este tipo de personajes pululan por las listas.

No paro de darle vueltas a lo absurdo de la situación, a lo absurda que se está volviendo la comunidad.  De verdad es necesario estar intentando todo el día dejar a otros compañeros mal, estar todo el día intentando demostrar lo inteligente que eres, lo hipster, hacker o lo que sea? en serio? No hay nada mejor, nada que puedas aportar? Ni tan siquiera tomarte una birra? llamar a un amigo?

Por desgracia mi tiempo lo tengo muy limitado y será por eso que lo valoro tanto, antes de meterme en una lista a atizar a otros, prefiero leer un artículo, tocar la guitarra, bueno destrozarla :D, leer, tomarme una birra, un té, un café, hasta leche joder!

La verdad es que cansa mucho que siempre haya gente dispuesta a dar lecciones con cada sentencia que sale de su boca, yo ya ni lucho, me agotan demasiado estas luchas sin sentido.

Esto también viene a colación con dos podcast (uno y otro) que escuchaba hace poco sobre si estamos haciendo algo como Developers para mejorar la sociedad.
Sinceramente, no somos tan importante como pensáis algunos, no estamos cambiando la vida de nadie. El software en conjunto si lo es, pero los developers de forma individual NO, un médico hace mucho más que nosotros por la sociedad, es mucho más importante. Un activista de una ONG hace mucho más, se involucra en hacer cambios mucho más. Seguro que habrá algunos que sí, pero estoy seguro que no son los del ego gordo. Conozco muy poca gente que haga software que sirva para algo que realmente mejore la sociedad. Y por el contrario después de muchos años currando en esto, conozco a mucha mucha gente con un ego enorme.

Algunos os habéis aferrado a la etiqueta developer y habéis perdido por el camino las etiquetas más valiosas: empatía, compañerismo, humildad….

Equipos 4×4

noviembre 22, 2013

Recientemente en la empresa ha surgido el debate de si en un equipo (Scrum) todos los componentes deben saber hacer todas las tareas que surjan. Nuestros equipo está formado por 6 personas pero por distintos productos o partes de productos. Hay frontend, varios backends, dentro de los backends hay muchas matices, tenemos un plataforma que su punto fuerte es que es distribuida, otros que son meramente endpoints que integran servicios, etc. hay mucho de devops, etc. En tecnologías tenemos ruby, python, java, Spring Integration, Django, RabbitMQ, redis, couchdb, mysql y seguro que me dejo alguna.

De primeras para mi esto no es un equipo 100% scrum, sino que debería haber equipos separados por producto, proyecto, pero siendo tan pocos acabaríamos teniendo reuniones con nosotros mismos :D

Veo muy complicado que un equipo pueda ser productivo en todo, llevo más de 11 años trabajando en esto y todas las veces que lo he intentado ha fallado. Para mi, el problema es que una persona puede adquirir conceptos e ideas de otros proyectos y tecnologías pero si son demasiadas cosas, básicamente lo que se consigue es tener a una persona que no es productiva y que esta frustrada, más si pensamos que a una persona no le guste o no se encuentre cómoda en una tecnología o producto. 

Los que defienden este enfoque suelen decir que con el tiempo la gente ganará soltura y podrá ayudar y que haciendo pairing eso se consigue. Pero yo veo muy complejo que alguien llegue a ser tan productivo en algo como otro que lleva tiempo en eso y que le gusta, además de las aptitudes de cada uno. Me parece mucho presuponer pensar que alguien pueda ser igual de productivo que otro sin más. En mi opinión se corre el riesgo de acabar siendo aprendiz de todo y maestro de nada. 

Para mi es raro, por ejemplo imagina que tienes a Guido (http://www.python.org/~guido/) y le tienes haciendo frontend, si le gusta y quiere ir hacia ese camino perfecto, pero sino… estás desaprovechando demasiado lo que tienes en el equipo.

Además el tema del pairing, para mi ya se parece a las curas milagro,  es otra cosa que hecho en todas las empresas, y creo que funciona pero no es nada mágico ni nada para hacer a todas horas. Muchas de las veces que estoy haciendo pairing sé que los dos que estamos haciendo pairing podríamos avanzar más y mejor por separado y luego hacer pairing al final, para mergear o implementar las partes que se tocan.

La idea del post es básicamente conocer otras experiencias para intentar cambiar un poco mi forma de verlo, cambiar mi experiencia negativa para construir algo más productivo, así que ¿Cual es vuestra experiencia?

Cuántas veces has presenciado o protagonizado una escena como esta?:

  •   Sujeto A. Sabes, Pepe ha conseguido/aprobado/abierto/montado/organizado/etc X la semana  pasada?.
  •   Sujeto B. Bueno pero es que eso es fácil, tú o yo también podríamos hacerlo. O claro es que él/ella lo tiene más fácil porque X……

Incluso si lo que se ha conseguido es una partida de trivial, valga la palabra trivial doble aquí :D. Ha conseguido bastante más que tú, ha aportado más que tú y sobre todo no ha sido negativo ni destructivo como tú.

De primeras, mientras tú estás poniendo peros a las acciones de los demás, los demás están haciendo cosas importantes o no (eso depende de ellos por cierto). Es decir, mientras tú destruyes otros construyen.

Y ese comportamiento en mi opinión va de la mano del “a ver si hacen algo con la crisis porque todo está fatal”, es decir, que me resuelvan los problemas los demás, si me viene bien aplaudo y sino critico.

Learning Machine Learning

febrero 17, 2013

Llevo un tiempo intentando meterme en el mundo de Machine Learning, el año pasado hice un máster en el que se tocaba el tema de soslayo y me quede bastante intrigado sobre que algoritmos habría detrás. Así que una vez acabado el máster me puse a leer sobre el tema. Lo primero que hice fue comprarme un libro http://www.manning.com/pharrington/ pensando, iluso de mi, que sería capaz de tener una visión bastante consistente del tema, como lo había hecho con otros temas (no pondré ninguno para no herir sensibilidades, pero puedes coger 4 al azar de http://pragprog.com/).

Lo cierto es que no es un campo que puedas aprender leyendo un libro, tengo comprados varios sobre machine learning, no sabría decir lo que tardo en leer un libro de estos porque creo que no he acabado ninguno. Me suele pasar que empiezo a leer un libro, los primeros capítulos siempre son de cosas más o menos básicas a modo de resumen sobre lo que es machine learning, después empiezan los contenidos de verdad y en estos es donde me “pierdo”, no en el sentido literal de no saber donde estoy sino que las ganas de profundizar en ese tema me llevan a un montón de artículos, a otros libros, a hacer pruebas (flopezluis.github.com/MachineLearning o https://github.com/flopezluis/MachineLearning) y al final me encuentro que estoy leyendo el mismo tema en 4 libros diferentes y que llevo 4 meses con ello. No sé si es que los libros técnicos que leía hasta hace bien poco eran muy sencillos o si estos son demasiado complejos.  Tener tantos libros empezados me genera mal rollo, como si necesitará leerlos ya todos, como si tuviera prisa por leemos xD .

Después de 6 meses empapándome sobre Machine Learning todavía tengo la sensación de que no sé prácticamente nada :). Pero bueno algunas conclusiones si que puedo sacar después de este tiempo.

– No es un tema que puedas dominar rápidamente (o al menos yo), es una carrera de fondo.

– Se constante.

– Necesitas matemáticas y estadístcia, pero no te dejes acojonar por lo que se ve en las reviews de muchos libros, no son tan tan complejas. El problema está en que la mayoría de libros dan por hecho que deberías saberlas.

– Machine Learning es muy muy muy grande, céntrate en un tema primero, a ser posible simple, por ejemplo kNN y luego pasa el siguiente más simple.

– Si lo necesitas aplicar algún algoritmo para un caso concreto no necesitas profundizar en casi nada, hay un montón de software que te permite hacer todo sin pensar mucho en que estás haciendo. Hay libros que tocan bastante métodos de una forma muy general que te pueden ayudar, por ejemplo Machine Learning in action.

Por si alguien tiene curiosidad estos son los libros que tengo sobre el tema:

– Machine Learning in Action http://www.manning.com/pharrington/

– Learning from Data http://www.amazon.com/Learning-From-Data-Yaser-Abu-Mostafa/dp/1600490069

– Machine Learning  http://www.amazon.com/Machine-Learning-Tom-M-Mitchell/dp/0070428077/ref=sr_1_1?s=books&ie=UTF8&qid=1361100724&sr=1-1&keywords=Machine+Learning

– Data mining http://www.amazon.com/Data-Mining-Concepts-Methods-Algorithms/dp/0470890452

– Introduction to the Math of Neural Networks http://www.heatonresearch.com/book/introduction-neural-network-math.html

– Statistics in plain English http://www.amazon.com/Statistics-Plain-English-Third-Timothy/dp/041587291X/ref=sr_1_1?s=books&ie=UTF8&qid=1361100845&sr=1-1&keywords=statistics+in+plain+english

Hay alguno más que he usado a modo de consulta alguna vez, pero no los “tengo”.

BTW: No es que lleve 6 meses a piñón con esto, el trabajo me absorbe el 99% de mi tiempo libre, así que hay semanas enteras que no puedo ni leer una página. Que veo que se desanima la gente :D

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.