Contact Us
Login
Menu
Book a Call
Sign up for free
Audiense - oficina de Córdoba 2

PROCESO DE SELECCIÓN CERRADO

Software Engineer (Abril, 2020)

El reto

En Audiense procesamos a diario datos e interacciones de más de mil millones de perfiles sociales sobre los que aplicamos diferentes algoritmos de clasificación y segmentación, con ello ayudamos a nuestros clientes (empresas líderes a nivel mundial como Twitter, Telefónica, DHL o Puma) a definir campañas de marketing, identificar influencers o descubrir nuevos nichos de mercado.

Tenemos el reto de optimizar la ingesta, enriquecimiento y almacenamiento de esa creciente cantidad de datos y que su procesamiento para ofrecer insights sea lo más cercano posible a conseguirlo en tiempo real.

Para ello contamos con un pipeline que ingiere datos de un sistema de enriquecimiento y procesado escrito principalmente en Node.js. Este sistema consume diferentes APIs y aplica una serie de algoritmos para inferir nuevas características.

Este pipeline es capaz de mantener actualizado un data lake de más de 100TB que son utilizados para la generación de informes para nuestros clientes usando Spark y Scala.

La mayor parte del código es un monolito escrito en Node.js. Estamos en vías de desacoplarlo y este es uno de los mayores retos a los que nos enfrentamos actualmente. Algunas partes del sistema, más orientadas al procesamiento de datos, se están escribiendo desde cero en Scala, pero también estamos reescribiendo parte de la lógica de negocio en Typescript. 

Para todo ello intentamos seguir los principios de Domain Driven Design, SOLID, Arquitectura Hexagonal etc, por lo que buscamos personas que conozcan estos principios y los apliquen en su día a día.

Uno de nuestros principales retos a nivel de frontend y usabilidad es representar de la manera más accionable y comprensible posible una enorme cantidad de información compleja sobre las audiencias objetivo. Para ello contamos con un stack formado por React.js, Typescript, Redux, Webpack y Styled components.

Además del reto visual, tenemos otra serie de retos muy interesantes: mejorar nuestra base de tests end2end, desacoplar toda la base de código frontend del monolito, desarrollar un sistema de notificaciones robusto que permita mayor independencia del boot inicial y de llamadas a APIs, establecer un sistema de métricas frontend para mejorar la performance aplicando mejores y más robustas estrategias de caché, y migrar código a Typescript aplicando principios SOLID y de Arquitectura Hexagonal.

Pero nuestros usuarios no son solo nuestros clientes directos, también contamos con un potente programa de partnerships que ofrecemos vía una API privada, y aunque aún está en beta, ya tiene más de 200 clientes y mucho potencial y desarrollo por hacer.

Todo nuestro stack está alojado en AWS, usamos principalmente Docker (ECS), EC2 y Lambda para ejecutar nuestro código y servicios como SQS y SNS para comunicación vía eventos.

¿Cómo trabajamos?

Apostamos por una cultura “remote first” trabajando de forma 100% distribuida desde hace más de 6 años. Tenemos sedes en Londres y Córdoba pero los distintos equipos (directivo, comercial, atención al cliente, producto, marketing e ingeniería) están distribuidos entre distintas ciudades Londres, Málaga, Madrid, Córdoba, Vigo, Sevilla, Granada...

Nuestra mentalidad, flujos de trabajos y comunicación asume que todos estamos en remoto. Prácticamente todo queda documentado en Github: planes de crecimiento, learning path, arquitectura, protocolos, onboarding, playbooks, design system, UX guidelines, etc. Invertimos todo lo que está a nuestro alcance en automatizar para que podamos ser lo más autónomos posible y suplir esas consultas de girar la silla en la oficina, muy necesarias especialmente durante el onboarding.

Te unirás a un equipo muy cohesionado (más de 4 años de media juntos) en un ambiente muy colaborativo en el que te sentirás parte del grupo desde minuto cero del onboarding.

Aplicamos diferentes metodologías ágiles según el equipo pero todos siguen algunos principios básicos. Priorizamos las funcionalidades que más valor aportan a nuestros clientes y en vez de poner deadlines vamos haciendo pequeñas entregas intentando siempre tener una versión funcional y entregable de la funcionalidad. Intentamos mantener el número de tareas en paralelo al mínimo posible. Tenemos pocas reuniones programadas pero no faltarán los daily meetings, sprint planning y review quincenales así como 1:1s regulares con el manager y con el CTO, y tampoco en saltar a un hangout si un hilo de Slack o de correo se está alargando.

Creemos en extreme programing como técnica de desarrollo, por lo que gran parte del tiempo hacemos pair programing (sí, en remoto) y TDD es nuestra principal herramienta para escribir un código robusto y testeable. El pair programming nos ayuda a confiar más en nuestro código y a no bloquearlo porque necesite revisión. No obstante, una vez por sprint dedicamos tiempo a realizar una review del código conjunta para detectar posibles smells que queramos priorizar. Hacemos integración continua y estamos en vías de extinguir las ramas para hacer trunk base development, aquí hay reto también.

El código que escribimos a día de hoy intentamos que respete los principios de SOLID, clean code y aplicamos arquitectura hexagonal y domain driven design cuando la complejidad lo requiere. Pero no te vamos a engañar, en 6 años también hemos hecho muchas chapuzas y antipatrones, considéralo una oportunidad de ver ejemplos reales de lo que no hay que hacer y de practicar técnicas de refactoring.

Tenemos una cultura de aprendizaje continuo y fomentamos que ello ocurra durante el horario de trabajo. Como equipo hemos hecho un pacto de learning path, así que al unirte a Audiense estás aceptando dicho pacto. Si has seguido un camino similar estamos ansiosos por conocerte y aprender de tus experiencias; sino, estamos deseando poder apoyarte con recursos, tiempo y mentoría para que estemos alineados.

Estamos moviéndonos de una cultura de silos hacia una mentalidad más t-shaped. No buscamos fullstack developers pero si nos interesa que además de tu vocación principal, ya sea frontend, backend, sistemas, etc, seas lo suficiente versátil como para asumir las tareas que más valor aportan a nuestros clientes y no las que más se adapten a tus skills.

Puedes conocer más sobre nuestra cultura en nuestro blog de ingeniería y cuenta de instagram.

¿Qué buscamos?

Nos gustaría que tengas experiencia aplicando domain driven design, arquitectura hexagonal y que entiendas el reto de desacoplar un monolito. Ahora mismo estamos implementando algunos de estos servicios de forma distribuida, así que cualquier experiencia que tengas implementando arquitectura de eventos es más que bien recibida.

Esperamos te alinees con nuestro core learning path (extreme programming, TDD, DDD, Clean code, Clean architecture) y valoramos toda la experiencia previa en ese sentido.

Creemos en el pair programming y a pesar de estar en remoto pasamos gran parte del día haciendo pairing, así que esperamos que te sientas confortable con esta práctica.

Nuestro stack es amplio: Node.js (ES6 y Typescript), Scala, Python, React, MongoDB, MySQL, RabbitMQ, Redis, AWS (SNS, SQS, API Gateway, Cognito, Lambda, Redshift, Aurora, DynamoDB), pero no es requisito dominar estas tecnologías, ni siquiera conocerlas, nos interesan más los principios detrás de todas ellas. ara los proyectos inminentes te ayudará a avanzar más rápido algo de experiencia con Node.js, Typescript, MongoDB, MySQL y en menor medida React, pero siempre con mentalidad t-shaped y dispuesta a evolucionar en el stack de frontend también.

Apostamos por el aprendizaje continuo, por lo que es muy importante que tengas ganas de aprender y seguir practicando las habilidades necesarias para ejecutar nuestra profesión. Practice, practice, practice!

El trabajo remoto tiene muchas ventajas pero también exige un esfuerzo extra de comunicación y responsabilidad, por lo que entendemos que estas aptitudes son esenciales: capacidad de autogestión, comunicación fluida, respeto e inclusividad.

¿Qué ofrecemos?

  • Salario 35K€-50K€
  • Subvención mensual para co-workings.
  • Learning days. Puedes formarte en horario de trabajo.
  • Presupuesto para formación que incluye acceso ilimitado a los catálogos de SafariBooks y Coursera.
  • Trabajo 100% remoto con flexibilidad horaria.
  • Días festivos de la localidad que elijas.
  • Día libre el día de tu cumpleaños.
  • Quarterly engineering meetups, 3 días de sesiones de retrospectiva, hacking, team building y ocio en Córdoba. ¡No te imaginas lo bien que se come en Córdoba!
  • Yearly global all hands. 3-4 días con sesiones de team building y ocio para toda la empresa.
  • Portátil con posibilidad de elegir entre Mac o PC.
Audiense - oficina de Córdoba

¿Cómo será el proceso y onboarding?

  • Envía un email a jobdev@audiense.com presentándote y contándonos por qué encajas con el perfil que buscamos. Tu CV también nos será útil pero no es lo más importante.
  • Si pasas el filtrado inicial de aplicaciones o te contactamos directamente, tu primera entrevista será con nuestro CTO (Alfredo Artiles).
  • Tendrás una segunda entrevista con algunos miembros del equipo. Buena oportunidad para que preguntes todo lo que quieras a tus potenciales futuros compañeros.
  • Luego buscaríamos una forma de validar que tienes las habilidades y experiencia que buscamos. La mejor forma es haciendo pair programming con el equipo en alguna tarea real. Cuanto más tiempo quieras dedicar más podrás validar que te atrae nuestra forma de trabajar, el reto y el equipo, evidentemente te pagaremos las horas trabajadas. Si esta vía no te viene bien por tu disponibilidad o porque no te sientas cómoda intentaremos adaptarnos.
  • Si te logramos convencer de que te unas al equipo, este sería tu onboarding idea:
    • Durante los primeros días un miembro del equipo te ayudará a preparar tu ordenador para trabajar y será tu mentor durante los siguientes meses. Te explicara los flujos de trabajo que tenemos con los que te irás familiarizando.
    • Desde el día 0 te integrarás en el flujo de desarrollo habitual: resolviendo issues en equipo y desplegando código a producción varias veces al día.
  • Nuestro flujo de desarrollo está adaptado al pair programming asi que tu aportación será muy progresiva, y siempre tendrás a mano a alguien para plantear las dudas que tengas. 

Sobre Audiense

Audiense permite a las  organizaciones innovadoras entender y aplicar el poder de la segmentación de audiencias e insights reinventando el uso de los datos sociales acorde a las distintas legislaciones vigentes para hacerlos más estratégicos y conectarlos con la estrategia de negocio y marketing de forma que sean relevantes y aporten valor.

La avanzada plataforma de datos Audiense ha atraído a numerosos clientes de primera categoría como Twitter, Telefónica, Puma y DHL. También hemos desarrollado importantes colaboraciones con Twitter e IBM. Somos uno de los dos únicos partners certificados de Twitter en las categorías de análisis de datos y publicidad, lo que asegura a nuestros clientes la posibilidad de obtener detallados insights y aprovechar al máximo sus inversiones en Twitter gracias a una avanzada microsegmentación. También somos colaboradores de IBM Watson, que ayuda a enriquecer nuestra base de datos con análisis cognitivos, que incluye información sobre personalidad, imágenes y sentimiento. Esto da a nuestros clientes ventaja sobre sus competidores ya que pueden reunir una valiosa y detallada información, en tiempo real, sobre las audiencias que importan a su negocio.

Fundada en 2011 por Javier Burón y Alfredo Artiles, Audiense tiene oficinas en Londres y Córdoba (España) y actualmente cuenta con 25 empleados de los cuales más de la mitad son de los equipos de ingeniería y producto.

Audiense - oficina de Córdoba 1

Comparte esta oferta