Saltar al contenido

Denis Siavichay · Software Engineer

Construyo el software con el que opera un negocio.

Cotización, inventario, facturación, producción: modelado desde el dominio y entregado con el pipeline que lo mantiene confiable.

En Ecuador · remoto, UTC−5

Este build

estático
compilado
toolchain
Next.js 16.3.8 · Node 24.21.0
render
prerenderizado al compilar
idiomas
en · es

Datos leídos del propio build al compilar el sitio. Nada de esto está escrito a mano.

01Qué construyo

Software para la forma en que opera un negocio de verdad.

Cuatro tipos de problema a los que siempre vuelvo. Cada uno apunta al trabajo que lo demuestra.

  • Plataformas de negocio

    Los sistemas con los que un negocio opera cada día: cotizaciones, órdenes, inventario, citas, caja. Modelados según cómo ocurre el trabajo de verdad, con las reglas aplicadas donde no se pueden saltar.

  • Integraciones

    Conectar con lo que ya existe: facturación electrónica con el SRI, un sistema de inventario que solo se puede leer, impresoras en un taller, servicios externos para campañas.

  • Sistemas distribuidos

    Servicios que se comunican por eventos, con trazas que siguen una petición a través de la cola, y el criterio para volver a unir un servicio cuando separarlo cuesta más de lo que aporta.

    Evidencia

  • Optimización

    Convertir un objetivo de negocio en un problema de búsqueda: corte en guillotina en dos dimensiones que minimiza el material que paga el cliente, determinista y reproducible.

    Evidencia

02Proyectos

Cuatro sistemas, cuatro lecciones distintas.

El taller de un cliente, mi propio producto de facturación, el día a día de un salón y la gestión interna de un municipio. Cada case study cuenta el problema, las decisiones y los trade-offs.

Cliente2025 – actualidad

Maderable

Cotización, optimización de corte y producción para un taller de tableros

El sistema de un taller de tableros de melamina en Ecuador, desde el despiece del cliente hasta el despacho: optimización de corte, cotización, revisión por el cliente, órdenes, taller e impresión de etiquetas.

  • Optimiza lo que paga el cliente, no la colocación: el medio tablero es un bin real.
  • Búsqueda heurística en guillotina, un cierre exacto con CP-SAT y un kernel en Rust que devuelve exactamente lo mismo que la referencia en Python.
  • Determinista por diseño: los presupuestos de búsqueda se cuentan en unidades de trabajo, no en segundos.
  • La cotización viva se convierte en una orden inmutable, y un agente en Windows imprime sus etiquetas en las impresoras del taller.
Rol
Ingeniería completa, desde el modelo de dominio hasta el deploy
Plano de corte ilustrativo · datos sintéticos
  • FastAPI
  • PostgreSQL
  • OR-Tools CP-SAT
  • Rust
  • React
  • TypeScript
  • Docker Compose
  • Caddy

Producto propio2022 – 2026

Faclab

Ventas, inventario y facturación electrónica para Ecuador

Ventas, inventario, compras y punto de venta con facturación electrónica del SRI. Es mi producto propio, y el proyecto donde la arquitectura pasó de un monolito a servicios, y en parte de vuelta.

  • Monolito Django, refactor hexagonal, servicios, y un servicio de firma que se reintegró cuando la separación resultó demasiado fina.
  • Clean Architecture y CQRS en el core, con value objects como RUC y Money.
  • Máquina de estados de la factura dirigida por eventos, con retries de 1 s / 2 s / 4 s y dead-letter queue.
  • FastAPI
  • SQLAlchemy
  • PostgreSQL
  • Kafka
  • TypeScript

Cliente2026

Gestión de salón

Agenda, pagos y caja para un salón de belleza, pensado para el teléfono

Agenda, clientes, servicios, caja, gastos y fotos para un salón de belleza, diseñado primero para el teléfono, con las reglas de negocio aplicadas donde no se pueden saltar.

  • El doble agendamiento es imposible: lo rechaza un constraint de exclusión GiST en PostgreSQL.
  • Los precios se congelan en cada cita; los pagos son append-only y las correcciones son reembolsos.
  • La multi-tenancy y el roster de profesionales se construyeron y luego se retiraron cuando el negocio resultó ser un solo salón.
  • FastAPI
  • SQLAlchemy
  • PostgreSQL
  • React
  • TypeScript

Desarrollo interno2019 – 2021

SIM — Sistema Integrado Municipal

Un solo sistema para la gestión interna de un municipio

Centralizó los procesos manuales y los sistemas aislados del Municipio del cantón Morona: finanzas, talento humano, registro de la propiedad, agua potable, catastro y trámites en línea, entre otros.

Desarrollo y liderazgo de un equipo de tres

  • Django
  • Django REST Framework
  • PostgreSQL
  • Celery
  • Docker
  • GitLab CI

Open source

Paquetes de Django publicados en PyPI.

03Notas de ingeniería

Las historias técnicas detrás de las decisiones.

Textos cortos sobre lo que me enseñó cada proyecto, sin esconder los trade-offs.

  1. Optimizar el costo, no el acomodo

    El problema real nunca fue acomodar piezas en un tablero, sino cotizar el menor material que paga el cliente, con el determinismo como requisito.

    Origen · Maderable

  2. Del monolito a servicios, y en parte de vuelta

    Extraer un servicio tiene un costo. La granularidad correcta se descubre, no se decide de antemano, y a veces implica volver a unir.

    Origen · Faclab

  3. Reglas de negocio donde no se pueden saltar

    Una regla que importa vive donde ninguna ruta de código puede saltarla: un constraint de la base de datos, un precio congelado, un pago que solo se puede agregar.

    Origen · Gestión de salón · Maderable · Faclab

  4. Seguir una petición a través de Kafka

    Spans por handler, métricas, logs estructurados y un contexto de traza que sobrevive a la cola, para seguir una venta hasta su factura.

    Origen · Faclab

  5. Eliminar la arquitectura que no hacía falta

    La complejidad se justifica con un lector real, no con un futuro hipotético. La multi-tenancy se construyó, y después se retiró.

    Origen · Gestión de salón

04Cómo trabajo

De entender el negocio a mejorar lo que ya está en producción.

Seis pasos, cada uno con un ejemplo de un proyecto real.

  1. Entender

    Encontrar el objetivo real del negocio antes de escribir código.

    El taller no necesitaba piezas acomodadas en un tablero, sino la cotización más barata. Vende medios tableros, así que el medio tablero pasó a ser el bin.

    Ejemplo
  2. Modelar

    Llevar las reglas al modelo, al nivel donde nada pueda saltárselas.

    En la app del salón, un constraint de exclusión GiST en PostgreSQL hace imposible el doble agendamiento, y cada cita congela su precio.

  3. Diseñar

    Elegir la arquitectura según el problema que hay delante, no por moda.

    En Faclab, el evento de venta pasó a llevar todos los datos que necesita la factura, y eso eliminó un callback HTTP entre servicios.

    Ejemplo
  4. Construir

    Hacer verificables las partes difíciles.

    El kernel en Rust de Maderable debe devolver exactamente lo mismo que la implementación de referencia en Python, que se queda como oráculo.

    Ejemplo
  5. Observar

    Hacer legible la producción antes de que algo falle.

    Los servicios de Faclab emiten spans de OpenTelemetry por handler y propagan el contexto de traza en los headers de Kafka.

    Ejemplo
  6. Mejorar

    Quitar lo que no se justifica, incluido mi propio trabajo.

    La app del salón tenía multi-tenancy y un roster de profesionales. Ambos se retiraron cuando el negocio resultó ser un solo salón, sin más profesionales que la persona propietaria.

05Experiencia

Construyendo software desde 2013.

Sector público, e-commerce y trabajo independiente. Cada entrada: el problema, lo que hice y, cuando está documentado, el resultado.

  1. – actualidad

    Proyectos para clientes y producto propio

    Software Engineer · Independiente

    ProblemaCada cliente necesitaba llevar su operación a software: cotización y producción en un taller de tableros, agenda y caja en un salón de belleza.

    • Diseño, construyo y opero cada sistema de punta a punta, desde el modelo de dominio hasta el servidor donde corre.
    • En paralelo, Faclab: mi producto propio de ventas y facturación electrónica.
    • Python
    • FastAPI
    • PostgreSQL
    • React
    • TypeScript
    • Rust
  2. E-commerce · México, remoto

    Software Engineer · Jüsto

    ProblemaUna plataforma de e-commerce que pasaba de un sistema Django a microservicios.

    • Desarrollé funcionalidades orientadas a la conversión del sitio.
    • Integré servicios externos para ejecutar campañas promocionales.
    • Participé en la migración a microservicios en Python y, sobre todo, Node.js sobre AWS, con métricas y monitoreo.
    • Python
    • Django
    • Node.js
    • AWS
  3. –

    Sector público · Macas, Ecuador

    Software Developer · líder de equipo · Municipio del cantón Morona

    ProblemaLa institución funcionaba con procesos manuales y algunos sistemas aislados.

    • Lideré un equipo de tres que construyó el SIM, el sistema integrado que reunió esos procesos.
    • El sistema centralizó los datos de la institución y automatizó tareas repetitivas.
    • Django
    • Django REST Framework
    • PostgreSQL
    • Celery
    Proyectos
  4. –

    Sector público · Macas, Ecuador

    Analista de sistemas · Municipio del cantón Morona

    ProblemaLa institución necesitaba controlar y dar seguimiento a sus equipos informáticos y a las mascotas de la ciudad.

    • Un sistema de equipos informáticos: registro, estado, ubicación y la persona a la que está asignado cada equipo.
    • Un registro de mascotas de la ciudad para apoyar el cumplimiento de las normativas.
    • Ambos fueron aplicaciones web servidas desde la red local de la institución.
    • Python
    • Django
    • PostgreSQL
  5. –

    Un negocio local · Macas, Ecuador

    Freelance · Independiente

    ProblemaLos agentes de ventas necesitaban registrar pedidos durante sus visitas a las tiendas.

    • Construí una aplicación web responsive para registrar los pedidos en tiempo real.
    • La ajusté con el equipo de ventas según su forma de trabajar.
    • Java
    • PostgreSQL

Educación

  • –

    Máster en Ingeniería de Software y Sistemas Informáticos

    Universidad Internacional de La Rioja (UNIR), España

  • Ingeniería en Sistemas

    Escuela Superior Politécnica de Chimborazo (ESPOCH), Ecuador

06Stack

Herramientas, y dónde las he usado.

Sin porcentajes. Cada tecnología nombra los proyectos donde se usa.

Lenguajes

  • Python

    Usado en: Maderable · Faclab · Gestión de salón · SIM · Jüsto

  • TypeScript

    Usado en: Maderable · Faclab · Gestión de salón · este sitio

  • Node.js

    Usado en: Faclab · Jüsto

  • Rust

    Usado en: Maderable

Backend

  • FastAPI

    Usado en: Maderable · Faclab · Gestión de salón

  • Django

    Usado en: SIM · Jüsto

  • Django REST Framework

    Usado en: SIM

  • SQLAlchemy · Alembic

    Usado en: Maderable · Faclab · Gestión de salón

  • Fastify

    Usado en: Faclab

  • Celery

    Usado en: SIM

Datos y mensajería

  • PostgreSQL

    Usado en: Maderable · Faclab · Gestión de salón · SIM

  • Redis

    Usado en: Maderable · SIM

  • Kafka

    Usado en: Faclab

  • DynamoDB · S3

    Usado en: Faclab

Frontend

  • React

    Usado en: Maderable · Faclab · Gestión de salón · este sitio

  • Next.js

    Usado en: este sitio

  • TanStack Query

    Usado en: Maderable · Faclab · Gestión de salón

  • Vite

    Usado en: Maderable · Faclab · Gestión de salón

  • Tailwind CSS

    Usado en: Faclab · este sitio

Optimización

  • OR-Tools CP-SAT

    Usado en: Maderable

  • PyO3

    Usado en: Maderable

  • NumPy

    Usado en: Maderable

Infraestructura

  • Docker · Compose

    Usado en: Maderable · Faclab · Gestión de salón · SIM

  • Caddy

    Usado en: Maderable · Gestión de salón

  • GitHub Actions

    Usado en: Maderable · Gestión de salón

  • GitLab CI

    Usado en: SIM

  • AWS

    Usado en: Jüsto

Observabilidad

  • OpenTelemetry

    Usado en: Faclab

  • structlog · pino

    Usado en: Faclab

Testing

  • pytest

    Usado en: Maderable · Faclab · Gestión de salón · SIM

  • Playwright

    Usado en: Maderable · Gestión de salón · este sitio

  • Vitest

    Usado en: Maderable · Gestión de salón · este sitio

07Sobre mí

Entender el negocio, después construir.

Soy Denis, software engineer en Ecuador. Empecé en 2013 con una app de pedidos para un negocio local y después estuve seis años en el Municipio del cantón Morona, donde pasé de analista de sistemas a liderar el equipo que construyó el SIM.

Luego llegué a Jüsto, una empresa de e-commerce de México, donde trabajé en remoto durante su paso a microservicios. Hoy combino un empleo con proyectos para clientes y Faclab, mi producto propio.

Lo que une todo: quiero entender cómo funciona un negocio antes de modelarlo, y me quedo para lo que pasa después del deploy.

Ubicación
Ecuador · UTC−5
Idiomas

Español (nativo)

Inglés

Educación
Máster en Ingeniería de Software, UNIR

08Contacto

Construyamos algo útil.

Si tienes un proceso que debería ser software, o un equipo que necesita a alguien que lleve un problema hasta producción, escríbeme.

Escríbeme

dbsiavichay@gmail.com

En otros sitios