Oferta de trabajo: Affiliates PHP backend developer
Uvinum nació en Barcelona en 2009 como un site de recomendaciones sociales de vino. Hoy es el mayor marketplace de venta de vinos y destilados de Europa. Desde agosto de 2018 hemos pasado a formar parte de la empresa líder en el sector de las bebidas alcohólicas: Pernod Ricard, lo que supone un espaldarazo magnífico para el desarrollo internacional y el crecimiento del proyecto, con un claro objetivo: convertirnos en el nº 1 mundial en la venta de vinos por internet. ¿Crees que puedes ayudarnos? 🚀
TL;DR:
Buscamos personas con conocimientos de PHP y experiencia en entorno LAMP principalmente (aunque el stack completo es algo más complejo).
Actualmente el equipo de desarrollo se encuentra en crecimiento y queremos reforzar nuestra área de afiliación, clave en un negocio como el nuestro: incorporación de los catálogos de nuestros más de 200 afiliados -más de 180.000 ofertas cada día-, reglas automáticas de transformación de contenidos, definición de patrones en la identificación automática de duplicados, integración con los sistemas de las tiendas y los couriers… y la preparación de todo ello para permitirnos escalar la plataforma para asumir aproximadamente un x5 de estos volúmenes durante 2019: migración a cloud público, distribución de los procesos de importación en colas, escalado flexible de la plataforma…
¿Qué buscamos?
Alguien con experiencia en PHP y MySql, conocimientos de principios SOLID y Clean Code, y motivado por temas como la arquitectura hexagonal y DDD. Con capacidad de análisis, crítico y con preferencia por las soluciones simples. Una persona con ganas de aprender y de compartir conocimiento en un equipo en pleno desarrollo. Con habilidades de comunicación y buen talante. Sobretodo: alguien que disfrute de su trabajo, como nosotros lo hacemos.
Entorno y herramientas
Cada desarrollador dispone de un Macbook Pro con su propio entorno de desarrollo, reproduciendo la infraestructura y las aplicaciones que tenemos en producción: HaProxy balanceando las peticiones entre los frontales, Apache como servidor web, PHP 7.2 como principal lenguaje de desarrollo, MySQL como principal base de datos, Redis para algunas caché y las sesiones distribuidas, Manticore Search (un fork de Sphinx) como principal motor de búsqueda y generación de listados, Memcached como caché de vistas y objetos, Beanstalkd como sistema de colas…
La plataforma corre en un entorno virtualizado con vSphere (de momento: estamos migrando a AWS) y gestionado de forma automatizada mediante Packer + Ansible (publicamos no hace mucho un artículo al respecto), para crear las plantillas de las máquinas que correrán en producción y Terraform, para crear y dejar listas las instancias de producción. Más aquí si te interesa »
Versionamos el código con GIT, siguiendo un flujo basado en feature branches, tratando de orientarnos a continuous deployment (todos publicamos código en producción, varias veces al día). Alojamos el código en Github, SemaphoreCI ejecuta los tests y avisa al servidor de deploy cuando detecta commits a master y el servidor de deploy despliega el código y ejecuta las tareas necesarias (estructura de carpetas, permisos, Composer, etc.) en los servidores de producción y staging con Ansible + Ansistrano.
Además tenemos una App móvil híbrida para iOS y Android desarrollada con Ionic, que encapsula la versión móvil de nuestra web, optimizada para comportarse de la forma más similar posible a una app nativa.
Disclaimer: Empezamos a trabajar en la plataforma hace ya 10 años, siguiendo MVC. Durante este tiempo hemos tratado de aplicar las buenas prácticas que en cada momento el equipo ha considerado oportunas. Eso significa que buena parte de la plataforma se basa hoy en código legacy, con el que trabajamos en muchas ocasiones. La forma en la que abordamos esto: nuevos desarrollos basados en las últimas convenciones (código desacoplado del framework, arquitectura hexagonal, DDD…), y regla del boy scout al trabajar con código legacy: dejarlo mejor que cuando empezamos. Eso implica refactorings incrementales para eliminar code smells o conseguir que ciertas piezas cumplan principios SOLID y puedan ser testeables. En definitiva: deberías poder sentirte cómodo trabajando con código legacy, teniendo siempre presente que cada oportunidad de trabajar con él pueda acercarlo un poco más a cumplir con los estándares más actualizados.
En cualquier caso, tratamos de cuestionarnos a menudo nuestra forma de programar, para intentar mejorar contínuamente. Especialmente durante este último año, hemos estado incorporando varias prácticas que nos ayuden en este sentido: Desde refactorings en parejas o Clean Code / SOLID, hasta ciertos aspectos del Domain-Driven Design como la arquitectura hexagonal. Necesitamos a alguien motivado por este tipo de conceptos para ayudarnos a seguir mejorando en el camino.
¿Cómo es trabajar en Uvinum?
Reservamos unas horas a la semana a formación interna, workshops, realización de katas, etc. según los intereses del propio equipo y cubrimos algunos eventos técnicos relevantes a lo largo del año.
Además de la formación periódica, el horario es flexible de lunes a jueves y los viernes trabajamos hasta el mediodía, durante todo el año, teniendo además la posibilidad de teletrabajar ocasionalmente. Tenemos seguro médico privado, y los jueves, cada 15 días, nuestro enólogo nos ofrece una formación relacionada con el mundo del vino, complementada con una cata de vinos. ;-)
¡Ah! Por si no te has dado cuenta… somos bastante frikis. Así que si te animas, prepárate para ser el Sheriff de los Miércoles™, aparecer en algún #UvinumSelfies, o ser víctima de algún que otro #ataqueHasselhoff cuando menos te lo esperes. ;-)
— -
Si crees que podemos encajar, estamos deseando conocerte: Envíanos un email a jobs+php@uvinum.com