Saltar al contenido
Foto de Elvis Quinteros

Santa Cruz de la Sierra, Bolivia·disponible

Elvis Quinteros

Ingeniero de Software Backend · Arquitectura de Sistemas Distribuidos

Ingeniero de software con más de 8 años diseñando y operando sistemas backend de alta disponibilidad. Especializado en arquitecturas orientadas a eventos, APIs (REST y GraphQL) y plataformas cloud-native sobre Kubernetes. Me interesa la intersección entre diseño de dominio (DDD), observabilidad y entrega continua: sistemas que se pueden razonar, medir y evolucionar con seguridad.

elvis@platform ~ zsh

❯

00 · showcase

Sistemas que se pueden
levantar y defender

Proyectos, patrones de arquitectura y el stack con el que los construyo. Cada tarjeta lleva a la historia técnica completa: problema, decisión y resultado.

01 · sobre mí

Historia y filosofía

Más de ocho años convirtiendo problemas de negocio en sistemas backend que aguantan producción.

Ingeniero de software con más de 8 años diseñando y operando sistemas backend de alta disponibilidad. Especializado en arquitecturas orientadas a eventos, APIs (REST y GraphQL) y plataformas cloud-native sobre Kubernetes. Me interesa la intersección entre diseño de dominio (DDD), observabilidad y entrega continua: sistemas que se pueden razonar, medir y evolucionar con seguridad.

Empecé entregando MVPs para startups y terminé diseñando plataformas: gateways con rate limiting, pipelines de eventos y clusters Kubernetes reconciliados desde Git. Cada etapa me dejó la misma lección: la arquitectura correcta es la que hace barato el próximo cambio.

Creo en la arquitectura como una disciplina de decisiones explícitas: cada dependencia, cada contrato y cada trade-off debe estar escrito y ser defendible. Primero el dominio, después el framework. Software simple por fuera, riguroso por dentro, y siempre observable en producción.
— filosofía de trabajo

Especialidades

APIs en Go y Python/Django, GraphQL, PostgreSQL, sistemas event-driven y plataformas Kubernetes con GitOps.

Cómo trabajo

Contratos primero, decisiones documentadas en ADRs y pipelines que convierten cada merge en un despliegue aburrido (en el buen sentido).

Objetivo

Diseñar plataformas backend que un equipo pueda evolucionar sin miedo: observables, testeadas y con límites de dominio claros.

02 · stack

Tecnologías

Herramientas que uso a diario, con nivel real y años de experiencia — sin inflar.

Go

6 años

Servicios de alto rendimiento, CLIs y workers concurrentes

Python

8 años

Backends Django/FastAPI, tooling y automatización

TypeScript

5 años

APIs Node y tipado de contratos compartidos

SQL

8 años

Modelado, tuning de consultas y planes de ejecución

03 · trayectoria

Experiencia

Roles, impacto medible y las tecnologías que lo hicieron posible.

  1. mar 2022 — Actualidad

    Arquitecto de Software Senior

    Nubeo Technologies · Remoto (LATAM)

    Responsable de la arquitectura de la plataforma de pagos y del programa de modernización técnica (12 ingenieros, 3 squads).

    • Diseñé la arquitectura event-driven que procesa +1.200 tx/s con p99 < 180 ms
    • Implanté ADRs y contract-testing como práctica estándar de los equipos
    • Reduje el costo de infraestructura 32% con autoscaling y right-sizing en Kubernetes
    GoKafkaPostgreSQLKubernetesTerraformPrometheus
  2. jun 2019 — feb 2022

    Ingeniero Backend Senior

    Andina Digital Labs · Santa Cruz de la Sierra, Bolivia

    Desarrollo de APIs y servicios para banca digital: onboarding, scoring y notificaciones transaccionales.

    • Lideré la migración del core de notificaciones a colas con reintentos idempotentes (99.98% de entrega)
    • Diseñé la API GraphQL de onboarding consumida por 4 clientes distintos
    • Introduje observabilidad con OpenTelemetry, reduciendo el MTTR de 3 h a 25 min
    PythonDjangoCeleryGraphQLRedisRabbitMQDocker
  3. ago 2016 — may 2019

    Desarrollador Backend

    Soluciones Tigre SRL · Santa Cruz de la Sierra, Bolivia

    Desarrollo de sistemas de gestión logística y facturación para clientes del sector retail y transporte.

    • Automaticé la facturación electrónica de 3 clientes grandes (de 2 días manuales a 1 hora)
    • Optimicé consultas críticas de inventario (de 40 s a < 500 ms) con índices y particionado
    PythonDjangoPostgreSQLLinuxNginx

04 · proyectos

Proyectos destacados

Sistemas reales con problema, solución y resultado. Cada uno tiene su historia técnica completa.

lab · realidad aumentada

Holo: tarjeta de presentación en AR

Pruébalo ahora: escanea el QR con tu teléfono y apunta la cámara a la tarjeta. Aparezco en 3D sobre ella, te saludo y respondo por voz sobre mi experiencia y mis proyectos.

1 · abre el visor

Código QR que abre holo.edqs.online/c/elvis
  1. Escanea el QR con la cámara del teléfono.
  2. Se abre el visor: pulsa «Ver en AR» y acepta la cámara.
  3. Apunta a la tarjeta de la derecha y aparezco en 3D.
WebARMindARThree.jsReactWebXRIA por voz

2 · escanea la tarjeta

Tarjeta marcador de Holo: apunta aquí la cámara del teléfono

¿Estás en el teléfono? Abre el visor aquí y apunta a la tarjeta en otra pantalla o impresa.

lab · llmops

Anime Recommender: RAG en producción

Pídele una recomendación como se la pedirías a un amigo. Combina búsqueda semántica sobre un catálogo de anime con un LLM que razona sobre los resultados, todo contenerizado y desplegado detrás de Nginx.

cómo funciona

  1. Describes en lenguaje natural qué te apetece ver, en español o inglés.
  2. Tu consulta se convierte en embeddings y se buscan los animes más parecidos en ChromaDB.
  3. Esos títulos, con su sinopsis y géneros, se pasan como contexto al modelo.
  4. El LLM (Groq) elige tres y explica por qué encajan contigo, sin inventar títulos.
RAGLangChainGroqChromaDBSentence-TransformersStreamlitDockerKubernetes

pruébalo con

  • “anime ligero con ambientación escolar”
  • “dark fantasy with strong action”
  • “algo emotivo sobre música y amistad”

La primera consulta puede tardar unos segundos mientras el modelo de embeddings se carga.

lab · full-stack

Stocknova: inventario multi-almacén

Sistema de gestión de inventario y ventas para negocios con varias sucursales. API REST en Laravel, panel en Vue y almacenamiento de objetos en MinIO, desplegado con Docker detrás de Nginx.

módulos

  • Productos con precios por tipo de cliente, imágenes e importación desde Excel.
  • Stock por almacén y sucursal, con umbrales y estado de existencias.
  • Ventas, cotizaciones, pagos parciales, compras y devoluciones.
  • Transferencias entre almacenes con control de salida y entrada.
  • Conversión entre unidades de medida de un mismo producto.
  • Kardex por producto y exportación de reportes a Excel y PDF.
  • Dashboard con KPIs de ventas, compras y pagos pendientes.
  • Autenticación JWT con roles y permisos granulares por módulo.
Laravel 11Vue 3VuetifyPostgreSQLMinIOJWTDockerGitLab CI

arquitectura

nginx (TLS) → contenedor frontend
/        → SPA Vue 3 + Vuetify
/api     → Laravel 11 (php-fpm) + worker de colas
/storage → MinIO (imágenes, S3-compatible)
Laravel  → PostgreSQL 16 (red dedicada)

cuenta demo · solo lectura

usuario
demo@edqs.online
clave
demo-stocknova

Puedes recorrer todos los módulos; las operaciones de escritura están bloqueadas en la API.

lab · full-stack

Blog full stack: Django REST + Next.js

Plataforma de publicación con autenticación completa, editor de posts, perfiles y analíticas. API en Django REST Framework, frontend en Next.js e imágenes en MinIO, desplegada con Docker detrás de Nginx.

funcionalidades

  • Registro con activación por correo, login con JWT y segundo factor por OTP.
  • Editor enriquecido para crear y editar posts, con borradores y publicación.
  • Categorías, búsqueda y encabezados navegables dentro de cada post.
  • Likes y analíticas de vistas e interacciones por post y por categoría.
  • Perfiles públicos con foto, banner, biografía y redes sociales.
  • Subida directa de imágenes a MinIO con URLs firmadas de corta duración.
  • Newsletter y formulario de contacto.
  • Tareas programadas con Celery y Celery Beat sobre Redis.
Django RESTNext.jsReduxTailwindCeleryRedisPostgreSQLMinIODocker

arquitectura

nginx (TLS) → nginx del blog
blog.edqs.online      → Next.js 15 (SSR + API routes)
/drf-nextjs-blog/...  → MinIO (URLs firmadas)
api.blog.edqs.online  → Django REST (Uvicorn)
Celery worker + beat  → Redis
Django                → PostgreSQL (red dedicada)

PostgreSQL y MinIO son compartidos con otros proyectos del servidor; el blog solo ve su base y su bucket, con un usuario propio en cada uno.

05 · arquitectura

Arquitectura de software

No es teoría: este portfolio corre sobre estos principios. El diagrama de abajo es el sistema real que está sirviendo esta página.

Arquitectura de esta plataformaEl cliente entra por Nginx, que enruta al gateway. El gateway aplica rate limiting y envía REST a la API Go y GraphQL a Django. El contacto viaja de Go a Django mediante una mutation interna, Django persiste en PostgreSQL y encola notificaciones en Redis para Celery.httpsproxy/api/v1/graphqlmutation internaSQL (ro)SQL (rw)colasClientenavegadorNginxedge :80Gatewayrate-limit · CORSGo APIREST · lecturaDjangoGraphQL · escritorPostgreSQLdb portfolioRedis · Celeryasync jobs
Este mismo sitio: solo Nginx expone puerto; redes segmentadas edge / internal / data. Django es el único escritor del esquema (ADR-0003).
Patrones

Clean Architecture

Regla de dependencia

Las dependencias apuntan hacia adentro: el dominio no conoce frameworks, bases de datos ni transporte. Entidades y casos de uso en el centro; controladores, ORMs y UIs en los anillos externos.

En este portfolio: los resolvers GraphQL son adaptadores finos que delegan en portfolio/services/ (casos de uso); el dominio no importa Strawberry ni conoce HTTP.

Domain-Driven Design

Diseño guiado por el dominio

Bounded contexts con lenguaje ubicuo propio, agregados que protegen invariantes y context mapping explícito entre equipos.

En este portfolio: cada tabla sin FK es su propio aggregate root; las únicas composiciones (categoría→skill, proyecto→imagen) reflejan invariantes reales del dominio.

Arquitectura Hexagonal (Ports & Adapters)

Puertos y adaptadores

El núcleo expone puertos (interfaces); los adaptadores concretos —HTTP, colas, persistencia— se conectan por fuera. El dominio es testeable sin infraestructura.

En este portfolio: EmailNotifier es un puerto con dos adaptadores (log estructurado y stub SMTP); cambiar de estrategia no toca la tarea Celery ni el dominio.

CQRS

Separar lecturas de escrituras

Modelos distintos para comandos y consultas permiten optimizar cada lado: el write side protege invariantes; el read side sirve consultas rápidas.

En este sistema: CQRS a nivel de sistema (ADR-0003) — Django es el write side y dueño del esquema; go-api es el read side de alto rendimiento sobre las mismas tablas.

Arquitectura orientada a eventos

Comunicación por eventos

Los servicios publican hechos inmutables y otros reaccionan: desacopla temporalmente, habilita escalado independiente y deja un log auditable. Exige idempotencia, ordering explícito y diseño de esquemas de eventos.

En este sistema: el contacto encola notify_contact_message en Redis; el worker Celery procesa con retries exponenciales sin bloquear la request.

Infraestructura

Kubernetes y CI/CD

Entrega continua sobre Kubernetes

Pipelines que construyen imágenes inmutables, promueven por entornos con GitOps y despliegan con rolling updates + health probes. Infraestructura declarativa (Terraform) y observabilidad como gate de despliegue.

En este sistema: contenedores non-root con healthchecks, migraciones como paso de arranque ordenado y dependencias expresadas en el compose (go-api espera al health de graphql-api).

06 · credenciales

Certificaciones

Validación externa de lo que practico a diario.

Certified Kubernetes Administrator (CKA)

Cloud Native Computing Foundation

may 2024 → may 2027

CKA-2405-018342Verificar

AWS Certified Solutions Architect – Associate

Amazon Web Services

sep 2023 → sep 2026

AWS-SAA-7Q2KX91Verificar

Professional Scrum Master I (PSM I)

Scrum.org

nov 2021 · sin vencimiento

PSM-I-664120Verificar

07 · formación

Educación

Base académica y formación continua.

  1. mar 2020 — dic 2020

    Diplomado en Arquitectura de Software · Arquitectura y diseño de sistemas distribuidos

    Universidad Privada de Santa Cruz de la Sierra (UPSA)

    Énfasis en DDD, microservicios, mensajería y patrones de integración empresarial (EIP).

  2. feb 2011 — dic 2016

    Ingeniería en Sistemas · Ingeniería de Software

    Universidad Autónoma Gabriel René Moreno (UAGRM)

    Tesis: plataforma de monitoreo distribuido para laboratorios universitarios con colas de mensajes y tableros en tiempo real.

08 · contacto

Hablemos

¿Un proyecto, una vacante o una duda de arquitectura? Respondo en menos de 48h.

El mensaje viaja por la plataforma completa: gateway con rate limiting, validación en Go, persistencia en Django y notificación asíncrona vía Celery. Sí, un formulario de contacto con arquitectura de microservicios — este portfolio predica con el ejemplo.