🕐 Posted 6d ago

Senior Java Developer

VMetrix

RemoteFull-timeMid LevelRemote

Job Description

VMetrix es una empresa SaaS que desarrolla una plataforma financiera integral utilizada por bancos, fondos de pensiones, gestoras de fondos, corredoras y asset managers en Chile y América Latina. Nuestra plataforma cubre el ciclo completo de gestión de inversiones: desde la captura de operaciones y gestión del ciclo de vida transaccional, hasta la valorización, contabilidad, riesgo de mercado, compliance regulatorio y reporting.

Propósito del Cargo

Como Senior Java Developer, construirás y mantendrás servicios backend y módulos de plataforma que impulsan operaciones críticas de negocio. No necesitas experiencia previa en el dominio financiero — nosotros te enseñamos. Lo que necesitamos es un desarrollador que escriba Java limpio y performante, domine patrones de diseño, entienda sistemas distribuidos y use herramientas como Claude Code para moverse rápido sin sacrificar calidad.

Responsabilidades Principales

Desarrollo Backend

  • Diseñar, construir y mantener servicios backend en Java 8+/Spring Boot: APIs REST, jobs de procesamiento batch, pipelines de transformación de datos y capas de integración.
  • Escribir código limpio, bien probado y listo para producción, aplicando principios SOLID, patrones de diseño (Strategy, Factory, Observer, Builder, Template Method, entre otros) y las guías arquitecturales del equipo.
  • Ser dueño de features end-to-end: desde el diseño técnico hasta la implementación, testing, code review y despliegue en producción.
  • Optimizar el rendimiento de aplicaciones: identificar y resolver cuellos de botella en queries, llamadas a servicios, uso de memoria y throughput.
  • Aplicar correctamente patrones de concurrencia y manejo de hilos en Java para operaciones paralelas y asíncronas.

Diseño y Arquitectura

  • Participar en decisiones de diseño de software: selección de patrones, definición de contratos entre componentes, separación de responsabilidades y modelado de dominios.
  • Aplicar principios de diseño orientado a objetos (encapsulamiento, herencia, composición, polimorfismo) y diseño por contrato en la construcción de módulos.
  • Contribuir al diseño de arquitecturas limpias: separación de capas (controller, service, repository), inyección de dependencias, inversión de control y bajo acoplamiento entre módulos.
  • Evaluar trade-offs técnicos entre diferentes enfoques de diseño, documentando decisiones y sus justificaciones.

Base de Datos e Integraciones

  • Trabajar con Oracle Database: escribir y optimizar consultas SQL, stored procedures y packages PL/SQL para operaciones intensivas en datos.
  • Construir y mantener integraciones con sistemas externos vía APIs REST, cubriendo ingestión, transformación y sincronización de datos.
  • Diseñar patrones de acceso a datos eficientes usando JPA/Hibernate o JDBC, con atención a gestión de conexiones, caché de entidades y límites transaccionales.
  • Implementar estrategias de resiliencia en integraciones: reintentos, circuit breakers, timeouts y manejo de fallos graceful.

Infraestructura y Despliegue

  • Desplegar y gestionar aplicaciones en Kubernetes (OKE) con contenedores Docker y servidor de aplicaciones WebLogic.
  • Trabajar con pipelines CI/CD (GitLab CI o similar) para flujos automatizados de build, test y deployment.
  • Diagnosticar problemas en producción: analizar logs, métricas de aplicación y comportamiento del sistema para resolver incidentes.

Desarrollo Asistido por IA

  • Usar Claude Code como herramienta principal de desarrollo: generación de código, refactorización, debugging, escritura de pruebas y exploración de codebases desconocidos.
  • Escribir y mantener documentación técnica en Markdown que sirva como contexto de alta calidad tanto para herramientas de IA como para el equipo.
  • Aplicar habilidades de ingeniería de prompts: descomponer problemas complejos en prompts claros y accionables, evaluando críticamente las salidas generadas por IA.
  • Contribuir a las prácticas de desarrollo con IA del equipo: compartir patrones efectivos, identificar limitaciones y ayudar a establecer mejores prácticas.

Colaboración y Crecimiento

  • Participar en revisiones de código con feedback constructivo y riguroso, enfocado en correctitud, legibilidad, patrones y mantenibilidad.
  • Mentorear a desarrolladores junior a través de pair programming, discusiones de diseño y transferencia de conocimiento.
  • Contribuir a discusiones técnicas sobre arquitectura, herramientas y mejoras de procesos.
  • Grado en Ciencia de la Computación, Ingeniería de Software o áreas afines.
  • 5+ años de experiencia profesional en desarrollo Java.
  • Dominio sólido de Java 8+ (streams, lambdas, concurrencia, colecciones, Optional, API de fecha/hora) y Spring Boot 2.7+ (inyección de dependencias, REST controllers, seguridad, Spring Data, pruebas).
  • Conocimiento sólido de patrones de diseño GoF (creacionales, estructurales, comportamentales) y capacidad de aplicarlos correctamente según el contexto del problema.
  • Dominio de principios SOLID, DRY, KISS y YAGNI en la práctica diaria de desarrollo.
  • Experiencia con diseño orientado a objetos: modelado de dominios, composición vs herencia, encapsulamiento, manejo de excepciones y diseño de APIs internas claras.
  • Habilidades sólidas en SQL y bases de datos relacionales: optimización de queries, estrategias de indexación, joins complejos, gestión transaccional. Experiencia en Oracle es un plus fuerte.
  • Experiencia con estrategias de testing: pruebas unitarias (JUnit, Mockito), pruebas de integración, test doubles y TDD o BDD como práctica habitual.
  • Experiencia con despliegues containerizados: Docker, Kubernetes (cualquier distribución), pipelines CI/CD.
  • Familiaridad con flujos Git (Git Flow o trunk-based), Postman/OpenAPI para desarrollo de APIs.
  • Experiencia práctica con herramientas de desarrollo asistido por IA — especialmente Claude Code. Esperamos que uses IA diariamente como multiplicador de productividad, no como muleta.
  • Comunicación escrita sólida: capacidad de producir specs técnicos claros, documentos de diseño y descripciones de PR.

Requisitos Deseables

  • Conocimiento de patrones de arquitectura: caching (Caffeine/Redis), arquitectura event-driven, diseño metadata-driven, CQRS.
  • Experiencia con arquitecturas de microservicios o modular monolith: estrategias de comunicación entre servicios, gestión de transacciones distribuidas, contract testing.
  • Familiaridad con Clean Architecture, Hexagonal Architecture o Domain-Driven Design (DDD).
  • Experiencia con herramientas de observabilidad: Grafana, Prometheus, métricas de aplicación, agregación de logs.
  • Familiaridad con servidor de aplicaciones WebLogic o runtimes Java empresariales similares.
  • Experiencia trabajando en plataformas SaaS o sistemas multi-tenant.
  • Certificación Java (OCA/OCP) o certificaciones técnicas equivalentes.

Lo que Valoramos

  • Calidad sobre velocidad: preferimos entregar código limpio y bien testeado un día después que debuggear un desastre por una semana.
  • Fluidez con IA: ves Claude Code y herramientas similares como partes esenciales de tu toolkit, no como novedades. Sabes cuándo confiar en el output y cuándo cuestionarlo.
  • Criterio de diseño: no aplicas patrones por inercia — sabes cuándo un Strategy simplifica y cuándo un if-else es suficiente. Priorizas claridad sobre cleverness.
  • Pensamiento sistémico: consideras los efectos downstream de tus decisiones de diseño en rendimiento, mantenibilidad y velocidad del equipo.
  • Ownership: llevas tus features desde el diseño hasta producción y te importa cómo se comporta tu código en el mundo real.
  • Curiosidad: te mantienes al día con herramientas y prácticas de desarrollo, y te interesa genuinamente mejorar en tu oficio.
  • Comunicación clara: escribes documentación que tus compañeros de equipo (y las herramientas de IA) realmente pueden usar.

#J-18808-Ljbffr

Posted 6 days ago

Related Jobs

Related Searches

Apply Now