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.
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.
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.
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.