16 septiembre 2016

Un mallorquín en la corte del rey Spolsky (y III)



Saludos a *.*, y bienvenidos a la tercera y última parte del relato sobre mis andanzas en "el Google de los programadores". Si en la primera parte os explicaba cómo conseguí el trabajo y en la segunda os contaba cómo fue la preparación para el mismo y el primer par de meses, esta suerte de epílogo versará sobre las características de Stack Overflow como empresa, desde el punto de vista de un miembro del equipo de desarrolladores. Vamos que nos vamos.

"Remote First"

De forma exageradamente simplificada pero que para el caso nos vale, lo único que un programador necesita para hacer su trabajo es su ordenador, su cerebro y una conexión a Internet. Por tanto, una empresa que necesite programadores debería poder contratarlos en cualquier lugar del mundo en el que haya ordenadores, Internet y cerebros. Sencillo, ¿verdad? Bueno, pues a día de hoy la mayoría de las empresas que se dedican a esto de la programación o no entienden esto del trabajo remoto o no lo aplican adecuadamente.


 Interneeeeet... y cereeeeebros...


Stack Overflow es una de las pocas empresas tecnológicas (aunque por suerte cada vez hay más) que han asimilado el trabajo remoto como parte integral de su cultura empresarial (qué bien hablo, me acaba de salir una corbata y todo), algo que yo ya sabía antes de formar parte de la misma pero ahora que estoy "en el ajo" puedo confirmarlo fehacientemente. La "salsa secreta" para que esto funcione tan bien consta de estos ingredientes:

En primer lugar, equipamiento. Tal como os conté en la anterior entrada, antes de que llegara mi debut como empleado recibí el paquete completo de ordenador, monitor, silla y unos cuantos adminículos más. La política de la empresa respecto a herramientas y espacio de trabajo es que todos los empleados reciben equipamiento informático completo y tienen su propio despacho en cualquier lugar del mundo: bien en alguna de las oficinas de la empresa para aquellos que vivan lo suficientemente cerca de (y quieran trabajar en) una de ellas, bien en su propia casa/espacio de coworking en caso contrario. Y esto implica enviar ordenador, silla y mesa a donde haga falta, además de sufragar el coste de la conexión a internet/alquiler del espacio de trabajo.

En segundo lugar, comunicación. Tenemos un canal de chat (bueno, en realidad varios, uno por equipo) al que estamos permanentemente conectados: desde que encendemos el ordenador por la mañana y decimos "buenos días", hasta que decimos "hasta mañana" al dar por terminado el día. Cada vez que tenemos que decir o preguntar algo importante a alguien del equipo o a todo el equipo en general, lo hacemos en el canal de chat... y esto lo hacemos todos, incluso los empleados que trabajan en una oficina, incluso aunque las personas que están chateando estén pared contra pared en la misma oficina. De esta forma todos nos enteramos de lo que pasa, estemos donde estemos (el chat es persistente, por cierto, de forma que al empezar el día podemos consultar "qué se ha estado cociendo" mientras dormíamos).


"...decir o preguntar algo importante..."


Aparte del chat, también usamos videoconferencia (Google Hangouts) cuando una conversación de chat "se nos va de las manos" y consideramos que será más rápido tratar el asunto hablando, y/o cuando hay más de un par de personas implicadas. Por cierto, como parte del equipamiento que acabo de mencionar todos los empleados reciben auticulares con micrófono y webcam - y no es por capricho, son herramientas de trabajo imprescindibles.

Y en tercer lugar, pero no menos importante, la metodología (o más bien filosofía) de trabajo. En Stack tenemos lo que el bonito acrónimo ROWE define: Results Oriented Working Environment. Una de las cosas que me dijo mi nuevo jefe en uno de mis primeros días fue (traducción libre del inglés, por supuesto): "No voy a controlar cuántas horas trabajas, no tienes que rellenar informes, da igual qué horario de trabajo quieras hacer. Pero quiero resultados, el trabajao debe salir adelante." Caramba, qué sorpresa: me contratan para ser productivo, no para calentar una silla - cosa que a priori parece obvia pero que en un trabajo clásico presencial puede quedar enmascarada. Trabajando remotamente, en cambio, o realmente trabajas o no tienes dónde esconderte.

La otra cara de la moneda queda pues clara: todo el que trabaje en Stack debe ser una persona altamente proactiva, capaz de encontrar (¡o inventar!) algo que hacer sin esperar a que venga alguien a decir "este es tu trabajo para hoy" (cosa que de todas formas sería muchas veces imposible debido a esa manía que tenemos los humanos de vivir en un planeta esférico con zonas horarias).

En resúmen: la filosofía es básicamente "Trabaja desde tu casa, pero si quieres venir a alguna de nuestras oficinas, eres bienvenido" y no al revés.


El trabajo remoto puede no ser tan bonito a veces, pero en promedio mola mucho. 



"Default Open"

La filosofía del código abierto es el requetefuturo, y hasta los más ateos al respecto se han acabado convertiendo. Pero cuando digo que Stack Overflow es una compañía Default Open no me refiero sólo a su generoso catálogo de proyectos públicos, sino a algo más amplio: cualquier pieza de información referente a la compañía es pública/publicable a no ser que explícitamente se diga lo contrario, desde las tripas tecnológicas hasta cómo se calculan los sueldos.

Por supuesto, los empleados debemos aplicar sentido común y no publicar datos personales y/o confidenciales como sueldos específicos (aunque esta información sólo la tienen RRHH y los jefes, claro) o información financiera (a la que todos tenemos acceso - "Default Open" también se aplica internamente), y en caso de duda siempre podemos preguntar. Pero por otro lado, se nos anima a publicar código, escribir en blogs, hablar en conferencias, participar en los sitios de nuestra red... la idea es que los empleados contribuyamos en lo posible a que la empresa gane visibilidad en los internetes - y ojo, ¡esto influye en nuestro sueldo!

En la primera entrada de esta serie ya publiqué una selección de enlaces a artículos/videos/hilos/*.* que de una forma u otra "desnudan" la compañía, pero a poco que busquéis no es difícil encontrar más.


- ¿Puedo publicar esa captura del chat en la que sale tu jirafa hinchable?
-... wat?
- Eso es un sí, ¿verdad?


"Work on whatever you want"

De acuerdo, esta frase no forma parte, así literalmente, de la cultura empresarial de Stack Overflow; me la he inventado yo... pero se acerca bastante a la realidad.

En efecto, los desarrolladores de Stack tenemos bastante libertad para trabajar "en lo que queremos", por supuesto con los oportunos y razonables matices, por ejemplo "tiene que ser algo útil y relacionado con los productos de la compañía" (ya ves, qué tiquismiquis, ¿no?). Pero voy a dejar que lo explique un veterano de la empresa (buscad a Nick_Larsen):

Hay tres tipos de tareas en las que trabajas [como desarrollador] en Stack Overflow.

La primera es bugs, que se asignan dependiendo de la estrategia de cada equipo. En algunos equipos una persona se encarga de TODOS los bugs durante un período determinado de tiempo, en otros equipos son asignados a la persona que conoce mejor la parte del código implicada. Este es el único tipo de tarea que se asigna directamente.

La segunda es ayudar a alguien con su proyecto. En este caso el jefe del proyecto pide ayuda y alguien viene a prestarla durante un período de tiempo, encargándose típicamente de continuar donde otra persona lo ha dejado o implementando características de una lista. Este tipo de tareas son "pseudo-asignadas": te comprometes a ayudar pero sueles tener cierta libertad de elección. Por ejemplo, "necesitamos a alguien que implemente la búsqueda para la sección de documentación", y alguien dice "hey esto suena bien, yo me encargo".

La tercera es implementar tus propias ideas. Tras más o menos los primeros seis meses casi todo el mundo emplea la mayor parte de su tiempo en esta zona. Dado que eres un usuario de Stack Overflow y sus productos, básicamente eres tú quien identifica los problemas, piensas en soluciones y las implementas (con la ayuda del "product team" para refinar las ideas, por supuesto). Básicamente estás haciendo "dogfooding" continuamente.

For supuesto hay ciertas tareas de alto nivel que vienen desde el equipo ejecutivo, tipo "necesitamos versiones localizadas de Stack Overflow" o "tenemos que mejorar el algoritmo de presentación de publicidad", pero esto es lo más técnico que viene desde arriba.

Es decir, libertad pero no libertinaje, o algo. De todas formas debo decir que esta explicación es algo antigua (un año, o sea una eternidad en tiempo internetero) y ahora estamos empezando a trabajar con más "rigor" en los proyectos grandes (con especificaciones, estimaciones de tiempos y demás); pero seguimos teniendo la libertad de elegir en qué queremos trabajar, e incluso cuando estamos en "bug duty", que es la estrategia de mi equipo (una semana en la que uno de nosotros, por turno, se encarga únicamente de corregir bugs) somos nosotros mismos los que elegimos qué bugs atacamos - que incluso a veces no son tales sino deuda técnica.

Oh, y no puedo dejar de mencionar la filosofía de la empresa en cuanto a la metodología de trabajo... de nuevo, en palabras de un veterano:

Odiamos las reuniones y los emails
No hacemos planificación de proyectos, ni sprints, ni estimaciones horarias.
No hacemos reuniones diarias o scrums.
No enviamos emails con informes de estado.
Las reuniones están desaconsejadas, debe haber una buena razón para convocar una.
Una reunión semanal para que el equipo esté al corriente de en qué está trabajando cada uno.
Los desarrolladores emplean típicamente 2-3 horas en reuniones.

No es tan anárquico-caótico como parece: sí que nos enviamos emails, tenemos reuniones y explicamos qué estamos haciendo y esas cosas; pero la clave está en que todo eso está reducido al mínimo estrictamente necesario. Además, como he dicho antes ahora sí estamos empezando a hacer planificaciones y estimaciones (para los proyectos grandes, los bugs y cosas pequeñajas se corrigen/hacen y punto), pero aún así... yo me quedé babeando la primera vez que aprendí cómo se trabaja en Stack, y puedo asegurar que sí, es tan bonito como parece.


"Treat your developers right"



Por último, pero no menos supermolón, no quisiera dejar de mencionar los beneficios que todos los desarrolladores de Stack (la mayoría de ellos se aplican también a los empleados en general) disfrutamos. Ya he mencionado el equipamiento completo vivamos donde vivamos, el despachito privado y la comida gratis (¡uooooh!) cuando podemos pasarnos por alguna de las oficinas de la empresa, y el avión+alojamiento pagados cuando viajamos. Pero es que además hay unas cuantas cositas más, por ejemplo:

  • 25 días de vacaciones al año, más 10 días extra para los internacionales (para que nos montemos los días festivos a nuestro gusto).
  • Cada cuatro años cuatro semanas extra de vacaciones que hay que tomar de golpe (o esperar cuatro años más y tomar ocho), para "recargar pilas" a base de bien.
  • Una semana al año para cuidar a un familiar enfermo, tres días en caso de fallecimiento de un familiar (todo esto es bastante flexible y en muchos casos puede ampliarse).
  • Tres días y un generoso presupuesto anual para formación (asistencia a conferencias y/o cursos, adquisición de libros). Esto incluye el caso de que queramos dar una conferencia.
  • Doce semanas de baja por maternidad (¡o paternidad!) o adopción. En caso de adopción hay también una ayuda económica para gastos legales.
  • Pago de las cuotas de gimnasio, club deportivo o similar.

...y alguna más que seguro que me dejo. Ah sí, pegatinas y camisetas de Stack Overflow, que no falten, por supuesto.


And little color, red colored...

Pues en una especie de mezcla de "podría seguir contando cosas durante eones" y "pues ya no sé qué más contaros" aquí se acaba el rollo. Dado el caso, preguntadme lo que queráis en los comentarios, y haré todo lo mallorquinamente posible por dar alguna respuesta medianamente coherente. Paz, amor y empleos fantabulásticos para todos. ¡Nos blogueamos!

09 agosto 2016

Un mallorquín en la corte del rey Spolsky (II)



Muy buenas a todos/todas/tod@s/todñs. Pues he aquí la segunda parte del singular relato sobre las aventuras de El Ingenioso Calvo Don Frikote de Mallorca escribiendo conjuros de software para sus señores de ultramar. En la anterior entrada os contaba cómo acababa de recibir un email en el que se me decía algo así como "Pues parece que nos molas, ¿te apuntas a echarte unas risas con nosotros?", y desde ese punto vamos a continuar. ¡Vamos que nos vamos!

La larga (y provechosa) espera

Nos habíamos quedado en el email que me confirmaba, a principios de febrero, que había superado todas las entrevistas. Comuniqué que mi intención era empezar a stackear en abril, a fin de dar tiempo suficiente a mi (pronto ex) jefe para encontrar un sustituto (cosa no trivial porque donde yo vivo hay poca gente .NETera, todo el mundo es javero). Y fue una buena idea: el susodicho ocupó mi silla sólo una semana antes de que yo la dejara (estábamos un poco estrechos pero bueno, el roce hace el cariño y tal).

Mientras tanto, aparte de "firmar" el contrato, hubo tiempo de ir informándome sobre las condiciones, los beneficios y demás cosas aparejadas al empleo. Entonces descubrí que eso de "crear la mejor empresa para un programador" se lo toman muy en serio; y por decirlo de forma sencilla, cada cosa molaba más que la anterior:

  • Dado que son una empresa estadounidense sin ningún tipo de infraestructura o representación en España, me iba a resultar necesario darme de alta como autónomo para poder cobrar mi sueldo mediante facturas. Y por ende, me convenía muy mucho contratar los servicios de una gestoría. Tras informarles de esto me dijeron que se harían cargo de la cuota de la misma.
  • Y hablando de sueldo: los empleados de Stack Overflow cobran en base a su valía y experiencia, con independencia de la ubicación geográfica. Eso significa que iba a cobrar lo mismo que un programador americano igual de hábil y experimentado que yo. Lo cual es un pelín más que de lo que cobra un programador españuelo equivalente.

- Esta es nuestra oferta. ¿Te parece adecuada?
- Pues no sé... déjame que lo piense un poco...

  • Dado que en casa convivo con un par de diminutos (cada vez menos) seres con tendencia a pasarse de decibelios durante sus comunicaciones e interacciones, decidí que me convenía ejercer mi nueva ocupación en un espacio de coworking. Pues sí, también se harían cargo del alquiler del mismo; si hubiera decidido trabajar desde casa me habrían pagado la conexión a internet en su lugar.

El espacio de coworking en cuestión es, por supuesto, Workize: lugar sobrio y elegante como pocos, decorado por prestigiosos interioristas de fama internacional y sazonado con obras de arte de incalculable valor.





  • No menos importante es el tema del equipo de trabajo. La filosofía de Stack Overflow a este respecto es simple: "Proporcionar a los empleados las herramientas que necesiten para realizar su trabajo". Así que yo pedí un Lenovo ThinkPad de 17", un monitor Dell de 30" (se extrañaron de que no pidiera dos o tres), unos auriculares Corsair H2100, un ratón Logitech MX Master y una Microsoft LifeCam Cinema. Teclado no pedí porque el año pasado ya había comprado uno bastante molón en Japón.


¡Y además es compatible MSX!


Pues eso, más vale que zozobre que no que "zofarte"


  • Y finalmente, tema mobiliario. A los empleados remotos se les paga el ídem necesario para que se monten la oficina en casa, normalmente una mesa ajustable en altura y una silla Aeron. Como yo iba a estar workizeando y la mesa ya estaba bien, gracias, me limité a pedir la silla. No la Aeron, porque importarla desde ultramar hacía que se doblara su precio (aunque aún así me la compraban si yo realmente la quería, pero ya me empezaba a dar vergüenza); en su lugar, encontré otra igual de chupiguay en Amazon por más o menos el precio de origen de las Aeron.


¡Y no tengo ni que salir a la calle para estirar las piernas!


Y así, entre whistles y flutes, pasó el mes-y-pico más largo de mi vida.

El principiante y el impostor

El 31 de marzo recibí las credenciales que me permitirían acceder a todos los recursos online de la empresa (correo electrónico, chat, wiki, Google Docs, Trello y alguno más). Tras cotillear un poco me acosté más tarde de lo que debía, y a la mañana siguiente me subí a mi bicicleta, me planté en Workize, encendí mi ordenador, me metí en el chat... y más nervioso que ya no sé qué analogía usar dije algo así como "Hola". Había llegado la hora de la verdad.


¡Entrada triunfal!


Poco después se conectó el que iba a ser mi mentor, es decir, un veterano del equipo que se iba a encargar de enseñarme cómo funciona la empresa en general y mi equipo en particular (que es por cierto el equipo "Core", el encargado de mantener/deserrorear/ampliar los sitios de la red Stack Exchange). No estaba él solo en tan ardua tarea: también tuve reuniones (por videocosa) con más gente del equipo y del resto de la empresa, que me explicaron desde cuáles son y cómo funcionan las distintas partes del código hasta cómo se piden las vacaciones. En total fueron como un trillón de reuniones durante el primer mes. Agotador pero necesario.

Al principio (y aún ahora, aunque bastante menos) sentía lo que después descubrí que se llama síndrome del impostor, y que de forma resumida consiste en pensar algo así como "Esta gente tiene un nivel estratosférico y yo no les llego ni a la primera capa de átomos de la suela del zapato" (llegando en mi caso incluso a "y en cuanto lo descubran me echan" a veces). Pero resulta que según me explicaron, eso es de lo más normal y le ha pasado a absolutamente todo el que trabaja en esta empresa, y seguro que hay algo en lo que soy el mejor del equipo (ah, pues sí, eso sí... ¡programar para MSX!)


Yo en el equipo de Stack Overflow, según mi psique (psi, ¿y qué?)


Pasó el primer mes, nadie descubrió nada raro de mí (que yo soy raro es otra historia, y un secreto a voces de todas formas), no me echaron e incluso comprobé que, en efecto, me pagaban el sueldo + la gestoría + el alquiler de Workize religiosamente a fin de mes. ¡Cosas veredes!

Niuyó, Niuyoooo...

Resulta que una tradición muy molona de la empresa es que todos los empleados remotos novatos visitan la oficina central en Nueva York algo así como un mes y medio después de empezar su singladura, durante una semana. Eso hice yo llegado el momento, así que a mediados de mayo me plantifiqué en La Gran Manzana (ni que decir tiene que con avión y alojamiento pagados).

Bueno, cómo lo diría. La oficina neoyorquina de Stack Overflow es la mejor oficina que he visto y probablemente veré nunca, un lugar en el que si hubiera camas y duchas casi se podría vivir. Ocupa dos plantas y media (a la altura del piso 28) de un edificio en el sur de Manhattan, a un tiro de piedra del puente de Brooklyn y a dos de Wall Street - lo que viene siendo una cosa céntrica, vamos. ¿Y qué es lo que la hace tan superchachiguay de la muerte? Lista al canto:

  • Para empezar, todos los programadores tienen su propia oficina privada. Sí, con puerta que se cierra y todo. Sí, con silla Aeron y mesa ajustable en altura. Y sí, casi todas con ventana desde la que entra luz natural... y con unas vistas de película (eso era un chiste, ¡reíd malditos!)

A mí me tocó el único despacho sin ventana por ser un visitante temporal (y por ser tan calvofriki, sospecho)


  • Cafetería "barra libre" con una máquina de cafetear profesional. No es la Nespresso de las capsulitas, no. Y con unas vistas de... bueno, ya sabéis.

La cafetera. Creo que es tecnológicamente más avanzada que mi coche.


Una de las tazas. Muy chula, pero lo malo es que nunca sabes qué hay dentro.


No es una postal. Es la vista desde la cafetería.

  • Restaurante con buffet libre diario para todos los empleados. Altamente gratis, por supuesto. Pero para quien se quede con hambre, o para quien quiera picar/merendar entre horas, también hay neveras repletas de comi-bebida, tarros con cuches, cestas con snacks... un lujo para un tragaldabas como yo.

Si me llego a traer a los nenes se arma una que ni los huracanes esos a los que esta gente está acostumbrada

  • Artilugios recreativos para "el reposo del guerrero": mesa de ping-pong, dardos, una Wii (sí sí) e incluso una recreativa de esas MAMEra (sí, también)

Mola


¡Mola!


¡¡¡MOOOOLAAA!!!

  • Los servicios. "¿Qué...? ¿Los servicios?" Pues sí, eso he dicho:




Y a todo esto vosotros diréis: "¿Es prudente que pongas todas esas fotos en los internetes? ¿Y si no quieren que los meros mortales vean cómo es la oficina?" Por eso no os preocupéis... la oficina completa está en Google Street View para quien quiera recorrerla de arriba a abajo (aquí la planta superior, donde están la cafetería, el restaurante y las neveras mágicas).

¿Y qué más?

Pues hasta aquí el relato de cómo conseguí colarme en Stack Overflow. En la tercera y última parte de este cuento os contaré cómo es trabajar en esta empresa y por qué la susodicha es diferente a la mayoría de las que se dedican a esto de generar ristras de ceros y uno (o al menos a la mayoría de las que conocemos por estos lares ibéricos). ¡Hasta eso!

11 julio 2016

Un mallorquín en la corte del rey Spolsky




La paz sea con vosotros, osados blogonautas. Pues sí, a estas alturas soy bastante previsible y sé exactamente lo que estáis pensando: "Si hay nueva entrada bloguera es que el calvofriki ha vuelto a estar en Japón junto al resto de la unidad familiar". Pues sí y no. Es cierto que ahora mismo me hallo en territorio nipón, pero no es de eso de lo que os voy a batallitear ahora. Por el contrario, sucede que ha acontecido un algo sumamente importante y de enormes repercusiones para mi vida laboral y en cierta medida también para mi vida familiar (tranquilos, no es nada malo, todo lo contrario), que bien merece una al final serán dos tres entradas blogueras de esas que yo solía escribir con cierta frecuencia en tiempos pretéritos.

Aviso con antelación que la parrafada que sigue a continuación será de interés (si es que realmente lo es) principalmente para aquellos de vosotros que seáis programadores/desarrolladores de software/rockstar-ninjas/gurús de la informática, o sea, los que disfrutáis y/u os ganáis los garbanzos escribiendo infinitas líneas de código para alimentar aparatejos con teclado y pantalla. Como es posible que algunos de vosotros seáis en cambio personas normales, daré antes un poco de información contextual que haga más digerible la cosa.

Un poco de contexto pretérito

Nueva York, Usamérica, septiembre de 2000. Un señor llamado Joel Spolsky, programador y a pesar de ello humano, decide crear con la ayuda de un colega su propia empresa de desarrollo softwarístico, Fog Creek software. El objetivo de tal emprendimiento era, según él mismo cuenta, "crear la empresa en la que ellos mismos querrían trabajar, una empresa en la que los programadores son los reyes del mambo y todo lo demás está para mantenerlos felices y productivos", porque "sólo así conseguirían reclutar a los mejores". Toma ya. Ahí es nada.



Un ratito después, en abril de 2008, se enfrascó en un interesante proyecto con la ayuda de Jeff Attwood, otro programador estadoumericano. Como este último explica, el objetivo era proporcionar a los programadores una plataforma realmente útil para resolver las dudas que surgen durante el desempeño de la susodicha profesión/hobby/obsesión/locura (suelen ser las cuatro cosas a la vez), dado que los recursos que existían en la época (blogs, foros y compañía) no daban la talla por ser muy heterogéneos, llenos de ruido y de difícil navegación y búsqueda - y el único sitio parecido a algo realmente útil era de pago. Así nació Stack Overflow, el sitio de preguntas y respuestas para programadores.

La cosa funcionó y a día de hoy Stack Overflow es con diferencia el recurso en línea más importante para los programadores que quieren despejar alguna duda relacionada con su actividad. Con el tiempo, además, la familia ha ido creciendo y la llamada red Stack Exchange consta ya de más de 150 sitios de preguntas y respuestas que tratan casi cualquier tema que os podáis imaginar (y si tu tema favorito no tiene sitio y puedes reunir a unos cuantos coleguis que te apoyen, puedes pedir que lo creen).

Yo descubrí Stack Overflow gracias al anuncio en el blog de Jeff Attwood, y abrí mi cuenta durante la beta privada (¡oh!). Vamos, que soy veteranillo en el sitio.




"Woof from home"

Así las cosas, damos un saltito y llegamos al año 2013, allá por la primavera. Tengo mi cuenta de Stack Overflow con un buen puñadito de puntos de reputación (que obtengo cuando otros usuarios votan mis preguntas y respuestas como útiles/molonas) y un buen día encuentro esto en un lateral del sitio:




Guiado por la curiosidad cliqueo en ello y descubro que Stack Overflow buscaba programadores... en cualquier lugar del mundo. Sí, trabajo 100% remoto. No, en serio: resulta ser una empresa plenamente convencida de las bondades del trabajo remoto.




En ese momento una idea loca me cruzó la cabeza: ¿podría yo llegar a trabajar en Stack Overflow? ¿En la empresa que a esas alturas de le película ya podía considerarse "el Google de los programadores" y de la que yo ya era bastante fan? Hummm... no era descabellado. Más o menos daba el perfil: unos cuantos años de experiencia, una cuenta activa en Stack Overflow, pasión por el desarrollo de software (eso que no falte nunca) y unos cuantos proyectos de código abierto publicados (para la maquinita obsoleta de tres letras, sí, pero por sorprendente que parezca eso era lo de menos).

Pero ¡ay! Estaba ese problema tan común entre los habitantes de la piel de toro: el inglés. No me sentía con la suficiente confianza como para comunicarme en la susodicha lengua de forma hablada, aunque sí escrita. Así que escribí un bonito email a team@stackexchange.com preguntando si ello podría ser un problema (quién sabe, quizá podría apañarme con chats y emails)... y la respuesta fue amable pero clara: sin inglés hablado, nasti de plasti, ya que buena parte de la comunicación del equipo se realiza por videoconferencia.

Así que decidí aparcar "el sueño americano" por el momento. Y poco después ocurrió un lamentable suceso: por una serie de tristes circunstancias achacables a la despiadada crisis económica perdí el empleo que había estado desempeñando durante los últimos ocho años. Sí, me quedé paradito como otro puñado de millones en no-se-dice-ese-país-se-dice-essspaña.

Haciéndome el sueco

Apenas un par de meses después de adquirir el status de vago-y-maleante encontré una oferta de trabajo sumamente interesante, publicada por un integrador turístico sueco cuya sede principal está situada en Mallorca (ya que como todo el mundo sabe, aparte de un par de ensaimadas y alguna que otra sobrasada lo único que hay en Mallorca son turistas). Y adivinad qué: un requisito indispensable para optar al puesto era hablar inglés, debido entre otras cosas a que buena parte del personal de la empresa (incluyendo el que sería mi jefe) eran suecos con pocos o nulos conocimientos de español.


Los suecos en cuestión


Dadas las circunstancias imperantes, agarré mi falta de confianza para hablar inglés y muy diligentemente la tiré por el retrete, tras lo cual envié mi curriculum a los amigos suecos. Una entrevista en inglés (a la que acudí más nervioso que un ternero a una parrillada argentina) y unas semanas después, el trabajo era mío, para mi alivio y aún más el de mi familia.

"Woof from home", la venganza

Dos años después y sin saber muy bien por qué, me dio por ponerme a pensar (cuidado: duele un poco pero suele dar muy buenos resultados). Desde que tenía el suequi-trabajo mi inglés hablado había mejorado considerablemente, así como mis conocimientos de programación web (anteriormente me había dedicado más bien a aplicaciones tipo escritorio). Además había ampliado mi "escaparate" de open-source-cosas con un simulador de Z80 y un emulador de MSX, así que... la verdad es que estaba bastante a gusto en compañía de los nórdicos, pero ¿y si ahora sí que sí tenía sentido intentar colarme en la plantilla de Stack Overflow?


Por suerte se me ocurrió que antes de lanzarme al ataque sería buena idea indagar un poco sobre la empresa (con el "producto" en sí ya tenía bastante experiencia) y resultó que hay un montón de información útil disponible para quien la quiera buscar. Con respecto a alguien que busca apuntarse a una de sus ofertas de empleo como programador, esto es parte de lo que encontré:


Además de deglutir información sin mesura, se me ocurrió que sería buena idea ofrecerme a colaborar con las traducciones y el testeo previo de Stack Overflow en español, que salió a beta pública el pasado diciembre... y como quien no quiere la cosa acabé siendo el primer moderador del sitio. Todo ello me permitió conocer un poco más los entresijos del funcionamiento interno de la red Stack Exchange.

Y con todo eso en mis alforjas decidí que era el momento de dar el salto al vacío. El 29 de diciembre de 2015 (sí, me acuerdo del día exacto, soy un tipo raro) redacté una carta de presentación nada modesta (la ocasión lo requería) y la usé, junto a mi curriculum, para apuntarme a la oferta de Full-Stack Web Developer.

Las siete pruebas de (obtener el) Job


¡Mirad mirad, he hecho un chiste "de proporciones bíblicas"! ¡Jo jo jo!


Pues resulta que el día 13 de enero (no, de esta fecha no me acordaba, he revisado mi correo) recibo un email de un señor que dice trabajar como RRHHero para Stack Overflow. Bastante antes de lo que esperaba, y encima disculpándose por tardar tanto en escribirme.

En dicho email me pregunta cuándo podríamos quedar para tener una charlita-entrevista por Skype o similar. La susodicha (a la que "acudí" N veces más nervioso que a la de los suecos) fue la primera de las seis (que acabaron siendo siete, no os impacientéis y seguid leyendo) que todo candidato a programador stackero debe superar. La cosa fue más o menos así:

  • La primera entrevista era de tipo introductorio y fue con el señor de RRHH. Esta entrevista es equivalente a la única que se hace normalmente para optar a empleos hispánicos, y consiste en preguntarme un par de cosas sobre mí y mi experiencia laboral, así como explicarme sucintamente en qué consiste el empleo al que opto.
  • En la segunda entrevista ya nos dejamos de tonterías, y un programador me pide que escriba una rutina que haga cierta cosa (no, no puedo dar detalles, lo siento). Se trata de una prueba relativamente sencilla, nada trivial pero que alguien con algo de experiencia programando debe poder sacar casi del tirón; el objetivo era simplemente comprobar que realmente sé programar (puede parecer una tontería pero no lo es tanto).
  • La tercera entrevista era otra prueba de programación, también del tipo "escribe una rutina que haga algo" pero esta vez un algo más complicado, y en la que ayudaba (sin ser realmente imprescindible) tener algo de base teórica/matemática/algorítmica. No del tirón, pero a base de pensar un poco (pista: recursividad) también la pude sacar. Aquí el objetivo era comprobar cómo me enfrentaba a un problema más o menos complejo.
  • En la cuarta entrevista nos adentramos en el fantástico mundo de las bases de datos. Se me pidió que diseñara una estructura de tablas para almacenar los datos relacionados con cierta cosa (jo, cuesta describir algo sin poder dar los detalles), cosa que hice sin mucha dificultad. A continuación debía diseñar una consulta SQL un pelín complejilla relacionada con esos datos, y yo... fallé estrepitosamente. Me quedé en blanco, así sin más. El entrevistador empezó dándome pistas y acabó escribiendo él toda la consulta.

Esta cuarta entrevista finalizó poco después, y en ese momento pensé que todo había terminado...




...pero resultó que no.

Para mi sorpresa, recibí un email en el que ¡se disculpaban! Parece ser que para ser un programador stackero realmente no se requiere un nivel de SQL tan elevado como el que era necesario para pasar esa entrevista (la persona que me entrevistó tenía un nivel algo superior a la media), así que decidieron hacer un "no hemos visto nada si tú no has visto nada" y repetir esa entrevista, esta vez cambiando radicalmente de tema. Y así es como llegué a...

  • ...la quinta entrevista, en la que se me pidió implementar (o más bien esbozar, claro, dado el tiempo disponible) una cierta característica que suele ser muy común en sitios web de todo tipo. Esto requería escribir un poco de HTML por aquí, un poco de JavaScript por allá, una pizca de código de servidor, y el diseño de un par de tablas de base de datos. Aquí lo que se pretendía era comprobar la parte "Full Stack", es decir, que realmente soy capaz de trabajar en cualquier parte del sistema.
  • En la sexta entrevista ya no tuve que programar, era de más "alto nivel". La hice con el Director of Product Management, nada menos, y el enunciado del problema a resolver era algo así como "Imagina que trabajas para la conocida empresa-web X y tienes que implementar la famosa característica Y. ¿Cómo lo harías? ¿Qué habría que tener en cuenta?" Aquí se trataba de comprobar que no soy simplemente un "picacódigo" que implementa ciegamente lo que le mandan, sino que también soy capaz de tener una visión global del producto, pensar cómo va a ser usado, razonar, dar ideas... vamos, todo lo que no es estrictamente programar pero hay que saber para poder programar.
  • Y por fin, la última entrevista, con -atención- el VP of Engineering, lo que en otros sitios se llama CTO o simplemente director/jefe de IT. Contrariamente a lo que pueda parecer, esta entrevista fue bastante más relajada que las anteriores; recuerdo que tuve que hablar de algún proyecto importante en el que he trabajado en el pasado, elegir a qué equipo de trabajo me uniría en caso de ser contratado (había un par de vacantes para elegir) y poco más.

A destacar que cuando digo que en las entrevistas debía "programar" me refiero a escribir código en un documento compartido de Google Docs. Por supuesto, no se esperaba que el código realmente estuviera completo y funcionara: lo importante era la línea de razonamiento que seguía hasta llegar al resultado final - buscan gente que piense, no robots capaces de dar con el código correcto y óptimo a la primera (para bien o para mal, eso aún no existe).

Bueno, el caso es que tras la última entrevista yo estaba hecho un flan en un terremoto, pensando si sería que sí o sería que no... pero no tuve que esperar mucho. Al día siguiente recibí el email de la muerte:




Yo, contratado en Stack Overflow. Yo - contratado - en - Stack - Overflow.

No paraba de repetírmelo a mí mismo, de leer ese email, y aún así no podía creérmelo. Me invadió una sensación como de "haber ganado la lotería" que a día de hoy, cinco meses después, aún perdura. Y estoy firmemente convencido de que no es para menos.

¿Y qué pasó después?

Eso os lo contaré en otra entrada bloguera, que esta se está alargando demasiado. Espero no tardar un año en publicarla. またね!