Saltar al contenido

Santiago, Chile

José Luis Martínez

Ingeniero de Software, Backend, Cloud y Datos

Más de 4 años construyendo APIs de alta disponibilidad y arquitecturas en AWS. He gestionado código expuesto a bases de datos con miles de transacciones por minuto, y he levantado aplicaciones enteras desde cero, backend, frontend, arquitectura en AWS y configuración de DNS.

De un proyecto propio, todavía sin lanzar.

Un árbol que mide el esfuerzo

En el proyecto del que viene, este árbol no es un adorno, cada rama es un desafío cumplido y cada hoja es una sección del desafío. Cuanto más largo el desafío, más larga la rama. Se puede mirar de lejos y saber, sin leer una sola etiqueta, cuál costó más.

Lo de aquí es una demo simplificada, el mismo motor sin los datos que le dan sentido. Sin librerías de 3D, solo segmentos con coordenadas, proyección con perspectiva y el algoritmo del pintor. Arrástralo para girarlo.

Ene 2021

People Analytics Trainee en Banco de Chile

Dic 2025 a Jun 2026, 7 meses

Infraestructura para proyecto de visión computacional

Desarrollador Full Stack y DevOps en Oddness AI

Arquitecté el backend de PalletVision, un sistema de visión computacional que corre en dispositivos Jetson dentro de bodegas. Con red restringida.

  • Arquitecté e implementé el backend, con servidor OAuth2 RS256 propio, APIs REST en FastAPI y comunicación MQTT con SAP EWM, operando en redes edge sin conexión estable.
  • Diseñé el pipeline cloud en AWS (IoT Core, SQS, Lambda, DynamoDB y S3) para sincronizar eventos y almacenar keyframes.
  • Construí los endpoints de gestión de productos y variantes sobre DynamoDB con boto3, con carga de maestros desde Excel usando pandas.
  • Diagnostiqué y resolví las caídas de conectividad entre los Jetson y AWS (DNS rotativo, HTTPS, MQTT) con reintentos y sondeo paralelo.
  • Python
  • FastAPI
  • MQTT
  • AWS IoT Core
  • Lambda
  • DynamoDB
  • S3
  • SQS
  • Docker

Mar 2026 a Jun 2026, 4 meses

Visualización de datos con gráficos de hasta 5 dimensiones

Frontend Developer freelance en cipycs

Migré y rediseñé toda la capa de visualización de una plataforma de benchmarking de KPIs.

  • Migré la visualización entera de Chart.js a Plotly.js, con siete funciones de trazado y un hook con ResizeObserver para el redimensionado.
  • Implementé el contexto global de KPIs activos, con toggles por gráfico y filtros que sobreviven a la navegación.
  • Diseñé un bubble chart con slider de tiempo Play/Pause, sombreado de cuadrantes y tamaño de burbuja dinámico por KPI.
  • Construí la exportación a PDF integrando gauge, sparklines y barras de desviación mediante refs tipadas.
  • Implementé la gestión de usuarios Super Admin con edición en línea, protección de roles y cuenta administradora permanente.
  • React
  • TypeScript
  • Vite
  • Plotly.js
  • Headless UI
  • Tailwind CSS
  • Flask

Auditoría de conteo, freelance, Dic 2020 a Jun 2021

Contar peces que no se dejan contar con tracking ni IA

Un cardumen no se cuenta detectando peces uno a uno, porque se solapan, se tapan, y a partir de cierta densidad ni una persona sabe dónde acaba uno y empieza el siguiente. La salida fue dejar de contar objetos y predecir una densidad. La red no dice «aquí hay un pez», dice cuánta masa de pez hay en cada punto, y el conteo es la integral de ese mapa. Sale un número aunque el cardumen sea una mancha.

La pieza que lo hizo funcionar fue un solo pez medido a mano, usado como densidad de referencia. Esa densidad se resta del fotograma con operaciones de matrices, así que un pez ya contado desaparece de la imagen y no vuelve a contarse. Lo que en un detector normal exige seguimiento entre cuadros, aquí lo resuelve una resta.

Se etiquetó con un punto por pez, no con cajas, que es lo que hace viable anotar miles de peces sin morir en el intento.

  • Python
  • PyTorch
  • OpenCV
  • NumPy
  • Mapas de densidad
Pantalla partida: a la izquierda el CSV de etiquetas, a la derecha el mapa de densidad predicho junto al fotograma de entrada, y abajo la terminal ejecutando el conteo.
El recorrido completo, puntos etiquetados, mapa predicho y el número que sale de integrarlo.
Tres mapas de densidad predichos, cada uno con un punto brillante sobre fondo oscuro y su barra de color.
Un pez es un montículo de densidad, no una caja. Sumar el mapa da el conteo.
Secuencia de fotogramas de sonar con su predicción cuadro a cuadro.
Cuadro a cuadro sobre una secuencia real.
Comparación antes y después de restar el fondo estático del sonar.
Restar el fondo del sonar, porque lo que no se mueve no es pez, y quitarlo es lo que deja ver los que sí.
Muestra con el cardumen denso, donde las siluetas se solapan.
El caso que rompe cualquier detector, aquí ya no hay siluetas que separar.
Terminal con cinco ejecuciones seguidas, cada una informando cuántos datos procesó y cuántos peces encontró.
Cinco corridas sobre cinco muestras, con su conteo.

Mar 2023 a Nov 2025, 33 meses

Dos años y medio sosteniendo lo que vende

Desarrollador Full Stack con integración Cloud en Ordenes Group

Dos años y medio sosteniendo los sistemas internos de ventas, del frontend al DNS.

  • Desarrollé las APIs de los flujos internos de ventas con NodeJS y Express, reduciendo los tiempos de carga en un 20%.
  • Administré la infraestructura AWS (EC2, S3, Route 53, CloudFront) manteniendo disponibilidad sobre el 99%.
  • Integré Zoho Mail, Asana CRM y Google AppScript para automatizar el flujo de ventas de extremo a extremo.
  • Implementé CI/CD con GitHub Actions y containericé los servicios con Docker.
  • Optimicé el sitio en Firebase, 25% menos de peso en estáticos y sin vulnerabilidades críticas.
  • NodeJS
  • TypeScript
  • NextJS
  • AWS EC2
  • S3
  • Route 53
  • MongoDB
  • Docker
  • GitHub Actions

Dic 2021 a Mar 2023, 16 meses

Cien mil registros al día, en un banco

Desarrollador Backend en BCI MACH

Backend de una billetera digital con base de usuarios grande y los requisitos de una entidad financiera.

  • Desarrollé APIs REST en NodeJS que procesaban más de 100.000 registros diarios de usuarios.
  • Participé en la migración de cuenta vista a cuenta corriente para el 100% de la base de usuarios, sobre arquitectura de microservicios.
  • Integré los controles de seguridad del onboarding con la API de Onfido.
  • Mejoré el monitoreo con AWS CloudWatch, reduciendo los incidentes críticos en producción en un 35%.
  • NodeJS
  • TypeScript
  • Python
  • AWS EC2
  • CloudWatch
  • SNS
  • SQS
  • MongoDB
  • Docker
  • MochaJS

Jul 2024 a Jul 2024, 1 meses

Un mes, de extremo a extremo

API y NLP Engineer freelance en Siena Connect

Un mes, de extremo a extremo. Modelo, API y despliegue para clasificar documentos tributarios.

  • Lideré end-to-end un clasificador NLP sobre Microsoft Phi-2 para documentos tributarios, más rápido que todas las alternativas evaluadas.
  • Lo desplegué en AWS EC2, reduciendo el costo operativo en un 80% frente a las APIs de terceros que se estaban usando.
  • Python
  • FastAPI
  • AWS EC2
  • Microsoft Phi-2

Sep 2021 a Nov 2021, 3 meses

Facturación desde cero

Desarrollador Backend en The Dog Company

Un sistema de facturación desde cero, en tres meses.

  • Diseñé e implementé el sistema de emisión de facturas completo con Django Rest Framework, con más de 20 endpoints para la gestión financiera interna.
  • Python
  • Django Rest Framework
  • PostgreSQL
  • Git Flow

Ene 2021 a Mar 2021, 3 meses

Donde empezó todo esto

People Analytics Trainee en Banco de Chile

Primer contacto con datos en producción, en People Analytics. Cuatro proyectos de analítica sobre la base de personas del banco, del análisis a los modelos.

  • Construí un recomendador de candidatos que estima el desempeño comercial de una persona para un puesto a partir de su comportamiento histórico en la compañía.
  • Desarrollé un clasificador que separa perfiles de alto y bajo desempeño por sus patrones de comportamiento, y devuelve un porcentaje de adecuación al perfil buscado.
  • Identifiqué a los líderes informales de la organización con análisis de redes, para construir un mapa de sucesión y contrastarlo con quienes ya ocupaban jefaturas.
  • Modelé la fuga de talento, prediciendo qué personas clave tenían alta probabilidad de irse.
  • Automaticé el 99% de la lectura de informes psico-ocupacionales con un clasificador NLP.
  • Python
  • Pandas
  • Plotly
  • Dash
  • Scikit-learn

Tesis y paper, IEEE CHILECON 2021, Jul 2020 a Feb 2021

Detectando dónde mirar, con un modelo entrenado solo para clasificar

Una red que clasifica una radiografía como COVID no dice dónde está mirando, y esa es justo la parte que le interesa a quien tiene que diagnosticar. Localizar exige normalmente cajas dibujadas por un especialista, y en 2020 no había ni especialistas de sobra ni tiempo.

La propuesta fue quitar del medio esa exigencia. El sistema se autoentrena, parte de regiones candidatas, entrena un detector con ellas, y usa la confianza de la clasificación como señal para mover las regiones. Se repite hasta que dejan de moverse. La etiqueta nunca dice dónde está la lesión, solo si la radiografía es COVID, neumonía viral o normal, y aun así las regiones convergen a zonas del pulmón.

Lo interesante del resultado no es el acierto, que ya era alto incluso con regiones al azar, sino la confianza. Ahí aparece la diferencia, y es lo que demuestra que hay posiciones mejores que otras y que se pueden encontrar sin que nadie las señale.

10.000
radiografías, en tres clases
88%
menos pérdida que el punto de partida
0
cajas dibujadas a mano
IEEE
CHILECON 2021, publicado
  • Python
  • PyTorch
  • YOLOv4
  • OpenCV
  • ResNet

«A Proposal for the Deep Unsupervised Identification of Relevant Areas in X-Rays for Covid Detection». José Martínez, Orietta Nicolis, Luis Caro y Billy Peralta. IEEE CHILECON 2021.

Con qué trabajo

Lenguajes
  • Python
  • TypeScript
  • JavaScript
  • Dart
  • Go
  • Bash
  • Java
  • C
Backend y APIs
  • FastAPI
  • NodeJS
  • Express
  • NestJS
  • Django REST
  • MQTT
  • OAuth2
  • JWT RS256
Cloud (AWS)
  • EC2
  • S3
  • Lambda
  • IoT Core
  • SQS
  • DynamoDB
  • CloudWatch
  • Route 53
  • CloudFront
  • API Gateway
Datos y bases
  • PostgreSQL
  • MongoDB
  • DynamoDB
  • SQLite
  • Pandas
  • NumPy
  • Scikit-learn
Frontend
  • React
  • Next.js
  • Vite
  • Tailwind CSS
  • Plotly.js
  • Flutter
DevOps
  • Docker
  • GitHub Actions
  • Git
  • Jira
  • Prisma
  • Vitest

Hablemos

Estoy abierto a backend, cloud, datos y automatización.

Santiago, Chile. Construido con Next.js, NestJS y un árbol hecho a mano.