Senior Backend developer

Valencia, VC, Spain

Developer experimentado, capaz de elevar aún más el nivel en el backend. Queremos a alguien con ideas claras, que haya probado, haya acertado... y haya fallado, y con todo ello, aprendido qué es lo que quiere y le gusta, y también lo que no. Es decir, que tenga criterio propio bien informado. Debe sentirse cómodo con nuestro stack actual, aunque luego evolucionemos: AWS, servidores asíncronos full non-blocking Kotlin/Java (JVM) , PostgreSQL. Actualmente tenemos un monolito y estamos en proceso de migración a microservicios (en Quarkus, pero podríamos ir a Spring Boot u otras opciones a valorar).

¿Qué voy a hacer? Durante el primer mes te incorporarás al equipo de producto, conocerás a todo el mundo, y recibirás formación tanto de los procesos propios del equipo y sus herramientas, como de la organización y su cultura y visión en general. En este mes queremos que te sientas como en casa y que empieces a organizar tu propio puesto, herramientas, etc. Por supuesto, es el momento para conocerte y que puedas empezar a aportar ideas propias, que estaremos encantados de escuchar. Durante el segundo mes el objetivo es empezar a rodar ya de forma normal como un miembro más del equipo a plena capacidad, aportando ya esas características únicas tuyas por las que nos has convencido de que eres el candidato idóneo para el puesto. Es un mes de consolidación de la vorágine que supone cambiar de empresa, cultura, equipo, etc. Pero te sentirás tan a gusto dentro del equipo, que te va a resultar muy fácil la adaptación. ¿Y en adelante?

A partir del tercer mes estarás ya a tope llevando el desarrollo backend al siguiente nivel, como parte del departamento de IT/producto, en el que creemos en un modelo auto organizado sin fuertes estructuras jerárquicas: tu responsable directo será el CTO, pero también es un compañero más del equipo y todos suman para alcanzar los retos a los que la compañía quiere llegar.

FUNCIONES

Pues en ocasiones harás cosas más de arquitectura y estrategia como: Selección de mejores frameworks y tooling para el desarrollo de backend El diseño y mejora continua de la arquitectura de backend, para que todo sea lo más limpio y mantenible posible (solemos dedicar los viernes a mejora continua) Definición y mejora continua en procesos de testing del backend ...pero no nos olvidemos de que somos una startup y necesitamos crecer, así que también: Conceptualización, diseño técnico, e implementación de modelos de datos relacionales (PostgreSQL) para nuevas funcionalidades. Posibilidad de emplear motores no relacionales si la funcionalidad lo precisase. Diseño e implementación de algoritmos para nuevas funcionalidades. Es un sistema muy orientado a datos y su análisis automatizado, y gran parte del valor que ofrecemos proviene de esos algoritmos que dan un “plus” inteligente al sistema. Desarrollo de nuevas funcionalidades en backend sobre lenguaje Kotlin/Java. Servidor asíncrono basado en corutinas Kotlin. Tests unitarios y de integración para las nuevas funcionalidades Scripts DDL/DML de actualización de esquema y/o datos Gestión de los servicios hospedados en AWS, en especial Elastic Beanstalk y RDS (PostgreSQL) Builds y subidas de versiones en los distintos entornos (test, preproducción, y producción) Monitorización y análisis de los logs del servicio en producción, así como de los reportes generados por herramientas de CI (GitHub Actions) Corrección de bugs que deriven desde Atención a Cliente e incorporación a ramas de hotfix Tests de regresión que prevengan volver a cometer los mismos errores ...y, por supuesto, no puede faltar: Gestión del flujo de trabajo en Git sobre Github, con creación, eliminación, pull requests, y merge de sus ramas Participación en los procesos de revisión de código y sesiones de mejora continua Uso adecuado de las herramientas de gestión del trabajo colaborativo de la empresa (GSuite, Github, Kanbanize)

REQUISITOS


  • Dominio senior de Java (idealmente Kotlin) y la problemática de tener servidores corriendo sobre JVM en entornos de producción e mucha carga

  • Conocedor de los patrones asíncronos, paradigmas reactivos, y modelado basado en eventos

  • Acostumbrado a hacer testing automatizado en el backend (idealmente con aproximaciones TDD)

  • Debe saber modelado de negocio (idealmente conocer los principios DDD)

  • Dominio de herramientas de building estándar en el mundo JVM como Maven/Gradle.

  • Experiencia creando logs útiles y acostumbrado a políticas de 0-error-logs (i.e., revisión habitual y frecuente para asegurar que está todo controlado) y uso habitual de Git.

  • Debe haber trabajado con entornos CI (idealmente también CD), que nosotros tenemos vía Github Actions.