Product Developer

La cultura del equipo de ingeniería

🚀
Desplegamos pronto
y a menudo
📦
Nos centramos en un proyecto
a la vez
🧪
Hacer tests son un problema de primer orden
🙋🏽
Siempre buscamos talento
📨
Nos comunicamos de forma abierta y frecuente



Síguenos en el Twitter del equipo de Ingeniería para estar al tanto de novedades

Audiense es una empresa que ofrece igualdad de oportunidades, y sabemos que son nuestras diferencias las que nos hacen grandes, por lo que queremos dar la bienvenida a personas de todos los orígenes a nuestra familia. Animamos a las personas de diferentes etnias, LGBTQ+, a personas con discapacidad, madres y padres a presentar su candidatura.

Durante el proceso de solicitud, por favor, no dudes en compartir los pronombres que utilizas (ella/su, él/ella/él, ellos/ellas/ellos). Y haznos saber si necesitas alguna adaptación razonable para la solicitud o la entrevista.

En Audiense procesamos más de mil millones de perfiles sociales. Los enriquecemos aplicando diversos algoritmos de clasificación y segmentación para ayudar a clientes como Twitter, Telefónica, DHL o Puma a definir sus campañas de marketing, identificar influencers y descubrir nuevos nichos de mercado.

Nuestro reto es optimizar la ingesta, el enriquecimiento y el almacenamiento de ese creciente activo de datos y conseguir que la computación de los insights sea lo más cercana posible al tiempo real.

Para ello, contamos con un canal que consume datos de un sistema de enriquecimiento escrito principalmente en Node.js. Este sistema consume datos de muchas API de terceros y aplica algoritmos para inferir nuevas características. Este pipeline es capaz de mantener actualizado un lago de datos de más de 100TB que se utiliza para generar informes para nuestros clientes utilizando Spark y Scala.

La mayor parte de nuestra base de código es un monolito escrito en Node.js. Lo estamos desacoplando y este es uno de los mayores retos a los que nos enfrentamos actualmente. Algunas partes de la plataforma dedicadas al procesamiento de datos se están reescribiendo en Scala y la lógica de negocio se está migrando a Typescript.

Estamos siguiendo los principios de Domain Driven Design, SOLID y Hexagonal Architecture, por lo que buscamos personas que los conozcan y los hayan aplicado.

Uno de nuestros principales retos a nivel de front-end y UX es representar, de forma más procesable y comprensible, una gran cantidad de información compleja sobre las audiencias objetivo. Para ello, contamos con un stack de React.js, Typescript, Redux, Webpack y Styles Components.

Además de los retos visuales, tenemos otros interesantes: mejorar nuestra base de pruebas end2end, desacoplar nuestro código front-end del monolito, desarrollar un sistema de notificaciones robusto (CQRS) que permita desacoplar la lógica del arranque inicial de la app y las llamadas a la API, añadir un sistema de métricas para mejorar el rendimiento aplicando mejores estrategias de caché, migrar código legacy a Typescript aplicando SOLID y Arquitectura Hexagonal.

Pero nuestros usuarios no son sólo nuestros clientes directos. Tenemos un sólido programa de colaboración que potenciamos a través de una API privada. Esta API aún está en fase beta pero ya cuenta con más de 200 clientes y mucho potencial de desarrollo.

Toda nuestra pila está alojada en AWS, utilizamos principalmente Docker (ECS), EC2 y Lambda para ejecutar nuestro código fuente y una amplia gama de servicios como SQS y SNS para la comunicación a través de eventos.

Tenemos una cultura de trabajo de estilo remote-first, y llevamos más de 8 años trabajando 100% a distancia. Aunque tenemos oficinas en Córdoba, nuestros equipos (dirección, ventas, atención al cliente, producto, marketing e ingeniería) están distribuidos por diferentes ciudades: Londres, Italia, Málaga, Barcelona, Madrid, Córdoba, Vigo, Sevilla, Granada, Cuenca...

Nuestra mentalidad, flujos de trabajo y comunicación asumen que todos somos remotos. Casi todo está documentado en Github: planes de crecimiento, learning path, arquitectura, protocolos, onboarding, playbooks, sistema de diseño, directrices UX, etc. Invertimos todo lo que está en nuestra mano en automatizar nuestras rutinas diarias para ser lo más autónomos posible y poder trabajar en remoto de forma eficiente.

Te unirás a un equipo cohesionado (más de 4 años de media juntos) en un entorno muy colaborativo en el que te sentirás cuidado desde el inicio de tu onboarding.

Cada equipo aplica metodologías ágiles diferentes pero todos siguen unos principios básicos. Damos prioridad a las features que aportan más valor a nuestros clientes y, en lugar de fijar plazos, entregamos pequeñas mejoras para tener siempre una versión funcional y entregable de la feature. Intentamos que el número de tareas en paralelo sea el mínimo posible. Tenemos pocas reuniones programadas, pero no faltamos a las reuniones diarias, a la planificación quincenal de sprints ni a las revisiones. Tenemos reuniones regulares 1:1 con el director y el CTO, y no dudamos en saltar a una videollamada si un hilo de Slack o de correo se está alargando.

Creemos en el extreme-programming como técnica de desarrollo, así que la mayor parte del tiempo hacemos pair-programming (sí, a distancia) y TDD es nuestra principal herramienta para escribir código robusto y comprobable. El pair-programming siempre nos ayuda a confiar en nuestro código permitiendo iteraciones constantes. Una vez por sprint dedicamos tiempo a la revisión conjunta del código para detectar posibles fallos a priorizar. Hacemos integración continua y estamos en proceso de extinguir los diversos brsanches para hacer trunk-base development, aquí también hay un reto.

El código que escribimos hoy intenta seguir los principios de SOLID. Se trata de código limpio, la aplicación de la arquitectura hexagonal y el diseño impulsado por el dominio cuando la complejidad lo requiere. La prueba de nuestro enfoque puede verse en nuestras colaboraciones como profesores de varios cursos DDD para Typescript. Para una total transparencia, (un valor de Audiense) durante los últimos 6 años hemos escrito nuestra parte justa de código "malo" y creado una serie de antipatrones, pero lo consideramos una oportunidad para ver ejemplos reales de lo que no se debe hacer y técnicas de refactorización que no se deben practicar.

Tenemos una cultura de aprendizaje continuo y fomentamos que esto ocurra durante las horas de trabajo. Como equipo hemos hecho un pacto de seguir un camino de aprendizaje, así que al unirte a Audiense, te estás comprometiendo a ello también. Si has seguido un camino similar, estamos deseando conocerte y aprender de tus experiencias, si no lo has hecho, estamos deseando apoyarte con recursos, tiempo y mentoring para que estemos alineados.Puedes saber más sobre nuestra cultura en nuestro blog de ingeniería y en nuestra cuenta de Instagram.

¿Qué buscamos?

Buscamos personas con una fuerte mentalidad de producto y que valoren las buenas prácticas de origen técnico.

Utilizamos la tecnología para crear una experiencia de producto sin fisuras, por lo que colaborarás con el diseño, la gestión de productos y otros ingenieros para desarrollar esta experiencia. Como empresa nos estamos alejando de la cultura de silos y acercándonos a una mentalidad en forma de T, por lo que esperamos que seas lo suficientemente versátil como para participar en tareas tanto de front-end como de back-end.

Como parte de nuestro día a día y a pesar de trabajar en remoto,  llevamos a cabo pair-programming, y buscamos personas que se sientan cómodas con esta práctica y otras prácticas de programación extrema: TDD, DDD y código limpio. Cualquier experiencia previa en estas áreas es siempre valorada.

Tenemos un stack variado: Node.js, React, MongoDB, MySQL, RabbitMQ, Redis, AWS... sin embargo, dominarlos todos no es un requisito. Nos interesan más los principios que hay detrás. Lo más importante es tener la experiencia para aplicar domain driven design, la arquitectura hexagonal y entender el reto de desacoplar un monolito es esencial. Dicho esto, para proyectos inminentes, algo de experiencia con Node.js, Typescript, React, MongoDB, MySQL le ayudará a poner en marcha la producción antes.

Invertimos nuestro tiempo y apoyo en ayudarnos unos a otros a aprender continuamente, por lo que es muy importante que tengas ganas de aprender y seguir practicando las habilidades necesarias para dominar nuestra profesión. ¡Practica, practica, practica!

Trabajar a distancia tiene muchas ventajas, pero también exige un esfuerzo extra de comunicación y de asumir de responsabilidades, por lo que la autogestión, la comunicación fluida, el respeto y la inclusión son habilidades que consideramos esenciales.

¿Qué ofrecemos?

Proceso de contratación

Acerca de Audiense

Audiense permite a las organizaciones innovadoras comprender y aplicar el poder de la segmentación de audiencias y los insights reinventando el uso de los datos sociales conformes para hacerlos más estratégicos y conectarlos con la estrategia de negocio/marketing para ser relevantes y ofrecer resultados.

La avanzada plataforma de ciencia de datos de Audiense ha atraído a muchos clientes premium como Twitter, Telefónica, Puma y DHL. También hemos desarrollado importantes asociaciones con Twitter e IBM. Somos uno de los dos únicos socios oficiales de Twitter certificados tanto para el análisis de datos como para la publicidad, lo que garantiza que nuestros clientes puedan recopilar información detallada y, a continuación, sacar el máximo partido de su inversión en Twitter con un micro-targeting avanzado.

También estamos asociados con IBM Watson, que ayuda a enriquecer nuestra base de datos con análisis cognitivos, incluida la inteligencia de personalidad, imagen y sentimiento. Fundada en 2011 por Javier Burón y Alfredo Artiles, Audiense tiene oficinas en Londres (Reino Unido) y Córdoba (España), y actualmente cuenta con más de 50 empleados, de los cuales más de la mitad trabajan en ingeniería y producto.

Comparte esta oferta de trabajo