Menéame busca becario: aquí el punto de vista de un usuario de la web desde hace 13 años

Menéame ha publicado en Linkedin una oferta laboral. Tenéis el meneo original aquí, que apunta a esta oferta de LinkedIn.

Entré en 2008, con 16 años, sin saber cómo funcionaba el mundo y sabiendo que solamente quería estudiar algo de informática. He pasado en esta web el bachillerato, los tres años de ingeniería informática, los nervios de cuando dejé la carrera, la FP que estudié después y por supuesto mi primer trabajo, el intento de retomar la carrera... y los casi 6 años de experiencia en Java que tengo hasta hoy. Voy por mi quinta empresa, en mi octavo puesto de trabajo, y segunda ciudad distinta. He estado en empresas grandes, pequeñas, como interno, como externo, con proyectos en España y hasta alguno en inglés, para clientes extranjeros.

Me duele como programador y como usuario encontrarme una oferta de empleo así. Y los motivos los quiero exponer punto por punto.

La oferta

Comencemos. Tened en cuenta que algunas negritas son mías. Recordemos que el puesto es para Becario de desarrollo web. No lo digo yo, lo dice la oferta:

«Buscamos a un desarrollador capaz de construir un producto con millones de visitas al mes, y que aspira a crecer mucho más.

»Queremos perfiles con interés en el desarrollo web bajo el patrón MVC y con las tecnologías HTML5+CSS+JS, capaz de entender la plataforma actual y tomar decisiones sobre qué tecnologías adoptar en todos los proyectos nuevos que se irán creando: APIs para medios de comunicación, app móvil, modificaciones del algoritmo de Menéame, mejorar el sistema de subs…»

Decir que vas a montar una web con HTML5, CSS y JS es como decir que vas a montar un turismo con cuatro ruedas, motor y un volante. Sería la primera vez en mi vida que veo un sitio web al que le das a F12 y aparece algo que no es HTML, CSS o algo basado en JS.

La parte de buscar un becario capaz de tomar decisiones en cosas tan dispares como una API (puro backend), una app móvil (necesitarás algo de frontend), las modificaciones del algoritmo de Menéame (que ni Gallir en su día se fiaba de lo que hizo) o el sistema de subs que creo que no se ha tocado en lustros, ya da para pensar.

«También nos interesa que nuestro equipo sea el embajador de Menéame a través de la tecnología, acudiendo a congresos y eventos técnicos para poder explicar qué puede hacer Menéame de cara a los medios de comunicación y a los propios usuarios

Supongo que al becario le pagarán un plus por representar a la que no es su empresa y dar charlas. O que al menos le darán libertad de expresión de cara a los usuarios, que como se puede ver, son un poquito críticos. Confío es que no termine siendo el saco de boxeo de Menéame.

«Ofrecemos

  • Carrera profesional: estamos abiertos a distintos perfiles, desde alguien junior que todavía está estudiando hasta un recién titulado, pero sobre todo a una persona con ganas de dar un enfocar su carrera laboral hacia el desarrollo web sin perder de vista la comunidad, el producto y todo lo que hay detrás de Menéame.
  • Flexibilidad de horarios, días libres y teletrabajo.
  • Trabajar en una empresa con muy buen ambiente

El abanico como se ve es súper amplio de cara a una carrera profesional: buscan o alguien que esté acabando la carrera o alguien que justo acabe de terminarla. Que aun siendo un recién licenciado (si eso), se dedique a la parte técnica de su carrera pero que también baraje la parte de negocio. Cosa que es otro puesto de trabajo completamente diferente, el cual se lo quieren encasquetar al becario. Como si el pobre no fuera ya a tener suficiente trabajo. Y más con la comunidad que es Menéame.

Del teletrabajo hablamos más adelante, y lo del buen ambiente es como cuando estás en una app de ligoteo y alguien se describe a sí mismo como guapo, estupendo y buen chaval. 🚩🚩🚩🚩. Déjame a mí que opine cuando esté dentro, gracias.

«Stack tecnológico

»Actualmente la plataforma de Menéame está montada en diversos servicios de Amazon Web Services (EC2, RDS, …) con un sistema de autoescalado para levantar o apagar instancias dependiendo de la carga de los servidores. El código está en PHP y la base de datos en MySQL y el servidor web es Nginx.

»Algunos datos:

  • La base de datos de Menéame actualmente ocupa unos 26 GB
  • Durante el 2018 ha recibido 15,3M de usuarios y 268M de páginas vistas (unos 22,33M / mes)
  • Durante el 2018 se han votado 7.1M de noticias
  • Se usan dos bases de datos (un maestro y un esclavo). El esclavo lo usamos para hacer consultas pesadas como cálculos de karma, etc.
  • El crontab tiene sobre 35 tareas que habría que ordenar, revisar y optimizar.
  • Actualmente estamos extendiendo la API para dar soporte a la futura aplicación móvil.
  • Parte del reto es separar la parte lógica de la web que está en el frontend y orientarlo a la API.
  • La gran mayoría del tráfico se concentra en la portada de la web. Creemos que los subs tienen un potencial muy grande y hay que incentivar el uso de éstos.»

Becarios manejando dos bases de datos relacionadas entre sí, con consultas pesadas y 26 GB de datos. ¿Qué podría salir mal? ¿De qué van esas 35 tareas de crontab? ¿No debería llevarlas alguien de sistemas?

¿Por qué los datos son de 2018, estando 2022 a las puertas? ¿No hay una tabla con los usuarios activos? ¿Para qué tenemos que aceptar el aviso de las cookies con 800 terceros entonces?

«Imprescindible

  • Experiencia extensa y demostrable en PHP + JS
  • MySQL
  • Cuidadoso en el código, búsqueda de eficiencia y elegancia
  • Experiencia desarrollando API’s: versionado, consistencia
  • Conocimientos de git, todo el código de Menéame está versionado en Github»

Aquí yo ya me llevo las manos a la cabeza. Comienza la oferta buscando un estudiante o alguien recién licenciado para un puesto de becario, ¿de dónde van a sacar alguien con experiencia "extensa y demostrable"? ¿Creéis que es suficiente saber sólo MySQL para administrar dos bases de datos con consultas pesadas? ¿Cómo podéis esperar que alguien que probablemente tenga 0 experiencia haga un código elegante? ¿Qué es elegante? ¿Hay guía propia de estilo en Menéame o seguís los estándares que tenga cada lenguaje? ¿Experiencia en desarrollo, versionado y consistencia de APIs? ¿API SOAP o REST? ¿Qué pensáis usar para desarrollar la API? ¿Hay API, de hecho? ¿Os dais cuenta de que esto sería algo más bien deseable que imprescindible, y que probablemente el resto de compañeros (si es que hay programadores entre ellos) tendréis que invertir tiempo en formar al becario, o darle tiempo a que aprenda? ¿Cuál es la línea roja de lo que no se puede hacer? ¿Qué esperáis que use para programar, aparte de PHP y JS? ¿Hay alguna herramienta de calidad de código tipo SonarQube? ¿Hacéis test unitarios? ¿Tenéis algún juego básico de tests funcionales o un diseño mínimo de plan de pruebas? ¿Por qué huele a que toda responsabilidad va a recaer en las decisiones del becario?

«Deseable

  • Algo de experiencia y cuidadoso en frontend: javascript, css, html
  • Conocimiento de sistema de plantillas que utiliza Menéame Haanga, o algún sistema similar como twig
  • Conocimiento del código de Menéame y de su funcionamiento en general
  • Ganas de aprender administración de sistemas
  • Experiencia con algún framework tipo rails/django/symfony
  • Experiencia en equipos de desarrollo de proyectos con alto tráfico
  • Residencia en Santiago de Compostela o cerca (Valoramos la opción de 100% remoto, aunque sería bueno que te acercaras de vez en cuando por nuestra oficina)»

Resalto lo que más me escama porque por poner, pondría todo en negritas.

Punto uno: vuelta otra vez a poner que html, css y javascript. No vais a encontrar un desarrollador que no sepa html, css ni javascript, aunque sea lo básico. Lo enseñan hasta en los cursos del Sepe.

Punto tres: ¿Conocimiento del código de menéame? ¿El que está en github, sin actualizar desde hace 3 años y que no tendrá el frontend nuevo, por ejemplo?

Punto cuatro: ganas de aprender administración de sistemas. Total, sólo hay una FP entera de dos años dedicada a administración de sistemas. Pero vamos, el becario puede con todo.

Punto seis: experiencia en equipos de desarrollo de proyectos con alto tráfico. Para esto vais a necesitar, muy probablemente, un ingeniero. ¿En qué equipo de desarrollo ha podido trabajar un futurible becario siendo el proyecto un desarrollo con alto tráfico? ¿Somos en Menéame la nueva Deloitte llevando el proyecto de Renfe? ¿Por qué se espera calidad de código, pero en ningún momento se ha hablado de tests de carga, por ejemplo?

Y mi favorita para el final, que es el origen de toda la movilización que últimamente hay en el sector. Punto siete: Residencia en Santiago de Compostela o cerca (Valoramos la opción de 100% remoto, aunque sería bueno que te acercaras de vez en cuando por nuestra oficina). Hablad en plata: preferís que esté en la oficina, especialmente siendo becario, porque le vais a tener que ayudar sí o sí y os va a preguntar cosas sí o sí. El teletrabajo no es una opción viable, mucho menos al principio. No va a tener destreza. Y no tiene nada de malo. Estáis contratando una persona sin experiencia, y siendo becario, probablemente sin contrato laboral. No esperéis tenerlo atado en corto.

Y ya, la guinda del pastel:

«No olvides incluir:

  • Tu cuenta Github (si tienes)
  • Ejemplos de proyectos en los que hayas participado
  • Algo sobre ti (tus redes sociales, blog, tus intereses, etc)
  • Sobre todo envíanos aquella información que nos permita valorarte como programador (Github, Stack Overflow u otros foros, etc). Haremos una primera selección de candidatos en función de sus ejemplos de código, para posteriormente hacer entrevistas personales.»

Buena suerte buscando a vuestro futuro unicornio.