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 nuestro equipo de backoffice,
al cargo de las herramientas internas de gestión de contenido y
catálogo, de gestión de pedidos e incidencias, integraciones con
servicios de terceros (emailing, gestión de pedidos, couriers…)... un
area clave para asegurar nuestra calidad de servicio de cara a los
clientes, y para favorecer la eficiencia en el trabajo de nuestros
compañeros en otras áreas, mediante la automatización de procesos.
¿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, y nos apoyamos en SemaphoreCI y Ansible + Ansistrano la integración y deployment.
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! Y nuestro día de cumpleaños de vacaciones.
¡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. ;-)