Senior Backend Developer

El GoKoan buscamos un developer experimentado, capaz de elevar aún más el nivel en el backend del futuro GoKoan. 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).

¿Y cómo será el trabajo en mi día a día?

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

Soft skills

  • Acostumbrado a trabajar en equipos multidisciplinares: debe saber relacionarse con equipos de negocio, marketing, etc.

  • Sin miedo a participar, proponer, y a hablar con solvencia a un equipo amplio y cualificado, defendiendo sus puntos de vista de forma asertiva y correcta

  • Abierto al feedback constructivo, sin buscar excusas si no formas de mejorar

  • Disciplinado y riguroso con su trabajo, y gusto por la búsqueda de las causas raíces

  • Abierto al constante cambio que supone crecer (y hacer crecer) en una startup

  • Preocupado por estar actualizado en su campo, la autoformación está en su ADN

Hard skills

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

  • Capacidad para analizar, replicar y reparar bugs reportados por los usuarios.

  • 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)

  • Uso habitual de Git.

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

Requisitos opcionales y que suman

  • Experiencia migración de monolitos a microservicios, y las dificultades que ello conlleva. Experiencia modelando negocio dividido en microservicios.

  • Experiencia trabajando con Docker y Kubernetes.

  • Experiencia DevOps en general.

¿Qué voy a hacer en GoKoan?

Durante el primer mes

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.

¿Qué voy a hacer en mi segundo mes?

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

¿Qué te espera en GoKoan?

  • Equipo de perfiles senior auto organizado (jerarquía mínima), con proyección de crecimiento en los próximos meses

  • Horario completamente flexible.

    • En GoKoan trabajamos por objetivos y somos conscientes de las necesidades personales que puedan existir.

    • Existe la posibilidad de trabajar en remoto hasta 10 semanas al año. ¿Quieres vivir 2 mes en Tailandia? Con nosotros es posible hacerlo.

  • Trabajamos en el Espacio Arcade, un hub de creación digital en Valencia donde co-trabajamos con más startups con las que podrás compartir conocimientos y experiencias.

  • Buen ambiente de trabajo. Trabajar sí, pero con buen rollo y compañerismo.

  • Formación continua a cargo de la empresa.

  • Viernes de mejora continua: porque sabemos que la mejora continua (y la deuda técnica) hay que gestionarla

  • Tipo de contrato: contrato indefinido

  • Duración del periodo de prueba: 6 meses

¿Y cómo será el proceso de selección?

  • Filtrado de CVs

  • Llamada telefónica para contacto y validación mutua inicial

  • Entrevista con el CTO (Mike) y la CPO (Elena)

  • Prueba técnica (plazo de entrega 1 semana)

  • Entrevista final con CEO (Clara)

Prueba técnica

Elaborar un API de negocio (con Spring Boot o cualquier otro), sobre algo que conozca el candidato. Consideraciones:

  • Debe tener algo de lógica de negocio:

    • Un simple CRUD de una entidad es demasiado básico para entender las capacidades (no presentes esto… métele algo de cuerpo).

    • Si hay algún algoritmo y/o cálculo, mejor que mejor.

    • Aconsejamos emplear un dominio que conozca bien, para ser lo más expresivo posible a la hora del modelado.

  • Debe incorporar todas las buenas prácticas que conozca a nivel de arquitectura, código limpio, testing, etc. (si alguna no se incluye por ser muy costosa, explicar qué y cómo lo hubiera hecho).

  • Debe incluir un README.md con una explicación para poder construirlo, ejecutarlo, y probarlo.

  • También un documento ARQUITECTURA.md donde explique cómo está montado y por qué lo ha hecho así

¿Cómo me apunto a la oferta?

Escribe un email a mike@gokoan.com explicando por qué quieres unirte a GoKoan.