Saltar al contenido

/portafolio

Proyectos que ya corren

El trabajo real de Pixies: el stack a la vista y las decisiones de ingeniería explicadas.

Landing Pages

Páginas de aterrizaje que convierten: rápidas, medibles, hechas para una acción.

Landing de Xiaomi CarTech: cargador inalámbrico Mi 20W con precio y checkout● En producción

Xiaomi CarTech

Landing de venta directa de un cargador Xiaomi para carro en Colombia: el cliente paga en línea o contra entrega, y cada pedido queda medido para las campañas de Meta.

ViteReactTypeScriptExpressTailwind
  • SPA en Vite + React 19 + TypeScript con el backend Express embebido en el mismo repo: un solo código que compila como servidor Node o como función serverless, según haga falta.
  • Cobros con Wompi (pasarela colombiana): la firma de integridad se calcula en el servidor con SHA-256 y el webhook no aprueba nada sin verificar su checksum — nadie se inventa un pago.
  • Tracking servidor-a-servidor con la Conversions API de Meta: email y teléfono viajan hasheados, nunca en claro; la confirmación de compra sale por Resend.
  • El pedido calcula su fecha estimada de entrega en días hábiles — detalle pequeño, pero es lo primero que pregunta quien compra contra entrega.

Stack completo

ViteReactTypeScriptExpressTailwind
Abrir sitio →
Sitio de Specifinance: dirección financiera y crecimiento corporativo basado en datos● En producción

Specifinance

El sitio de una boutique de dirección financiera, con un diagnóstico embebido que captura leads y un mini-CRM propio para darles seguimiento. Sin depender de herramientas de terceros.

ReactTypeScriptViteTailwindGoogle Sheets
  • Frontend en Vite + React 19 + TypeScript + Tailwind CSS 4; el diagnóstico es un formulario multipaso pensado para que no se sienta como un formulario.
  • Los leads se guardan en Google Sheets vía Apps Script, detrás de un backend serverless: costo de operación cercano a cero y el cliente revisa sus datos donde ya sabe moverse.
  • El login del panel firma la sesión con HMAC-SHA256 y compara en tiempo constante: un panel con datos de clientes no podía ser la puerta débil del sitio.
  • Cabeceras de seguridad, caché inmutable para los assets con hash y dominio propio.

Stack completo

ReactTypeScriptViteTailwindGoogle Sheets
Abrir sitio →

Sistema ERP

Software a medida que corre la operación: módulos, permisos, procesos.

La solución

Un solo sistema corre todo.

De la cotización a la factura y de la orden de producción al despacho, con permisos por rol y trazabilidad de cada cambio — seguridad endurecida para pasar auditoría de verdad, no para aparentar.

Y además, te construimos un software a la medida de tu problema específico.

Ver demo en vivo →

45 módulos

una operación completa en un lugar

~240 tablas

trazabilidad e historial de cada cambio

ISO/IEC 27001

seguridad auditada con evidencia

Permisos por rol

cada quien ve y hace solo lo suyo

Tablero principal del ERP con los KPIs del negocio y la grilla de módulos por área▶ probar la demo →01 / 5 · Tablero y KPIs
ProducciónComercialAlmacénComprasCalidadRRHHAuditoríaISO 27001
  1. PHP 8 con patrón página↔API por módulo: el frontend consume ~45 endpoints api_*.php por fetch, con PDO y sentencias preparadas. Cada rol ve solo los módulos que le tocan.

  2. ~240 tablas InnoDB con 331 llaves foráneas y 53 triggers; los consecutivos de orden se administran de forma transaccional para no duplicar folios bajo concurrencia.

  3. Módulos página↔API (api_comercial, api_cotizaciones, api_crm) por fetch, con estados y consecutivos controlados en el servidor; CRM y embudo de negocios integrados al flujo.

  4. Subida de archivos validada por tipo real (bytes) + nombre aleatorio con PHP deshabilitado en la carpeta de subidas; ~25 tablas *_historial para auditar cada movimiento de stock.

  5. Login por sesión con bcrypt, 2FA TOTP opcional con secreto cifrado AES-256-GCM, CSRF centralizado, CORS con lista blanca y cabeceras CSP/HSTS; endurecido bajo ISO/IEC 27001:2022.

Soluciones integrales empresariales

Integraciones que conectan lo que la empresa ya usa, en su propia red.

La solución

Cada rol con su pantalla; la caja cuadra sola.

Mesero, cocina y cajero en un solo flujo: la comanda llega sin errores, el consecutivo de factura nunca se repite y el cierre calcula la diferencia de caja por ti.

Y además, te construimos un software a la medida de tu problema específico.

Ver demo en vivo →
Panel de control del sistema de señalización: tres pantallas con controles de TV y carga de imágenes▶ Demo en vivo

Sincronización de televisores en red local

Convierte un PC en servidor de cartelera digital: los televisores del local muestran y rotan contenido sincronizado por WiFi, sin instalar nada en las pantallas.

Node.jsExpressSocket.ioJavaScript
  • Servidor Node (Express + Socket.io) que orquesta N pantallas por WebSockets: cada TV se une a su sala y recibe el estado por push al subir, reordenar o borrar imágenes, sin hacer polling.
  • Panel con carga de imágenes (validación de tipo y saneo de nombres), drag & drop e intervalo de rotación por pantalla; el estado persiste en JSON — para tres TVs, una base de datos era matar moscas a cañonazos.
  • El control del hardware Samsung lo implementé a mano (Wake-on-LAN + el protocolo WebSocket propietario del TV, con DIAL de respaldo) porque ninguna librería cubría los modelos del cliente.
  • Las pantallas precargan, transicionan con cross-fade y se reconectan solas si se cae la red: están pensadas para quedarse semanas encendidas en el navegador del Smart TV.

Stack completo

Node.jsExpressSocket.ioJavaScript
Ver demo en vivo →
Dashboard del POS tras iniciar sesión: ventas del día, gráfica de los últimos 7 días, top de productos, últimas facturas y alertas de stock bajo▶ Demo en vivo

Sistema POS para restaurantes

Punto de venta completo para restaurantes: mesas, comandas de cocina, turnos de caja e inventario con trazabilidad — cada rol con su pantalla y sus permisos.

PHPMySQLJavaScript
  • PHP con separación por rol (administrador, cajero, mesero) y una capa AJAX aparte para lo asíncrono; todo el acceso a datos va por PDO con sentencias preparadas.
  • Modelo relacional de 13 tablas en MySQL: productos y categorías con kardex de inventario, mesas y zonas, órdenes con estados de cocina, turnos de caja y facturación.
  • El flujo completo funciona de punta a punta: el mesero abre la mesa y comanda, el cajero cobra contra su turno (acepta pagos mixtos) y el cierre calcula solo la diferencia de caja.
  • La numeración de factura usa transacción con bloqueo de fila: dos cajas cobrando a la vez jamás repiten consecutivo. Contraseñas con bcrypt y rol verificado en cada módulo.

Stack completo

PHPMySQLJavaScript
Ver demo en vivo →

Analítica e ingeniería de datos

De datos crudos a decisiones: pipelines, modelos y reportes que se leen.

Saber 11 · ICFES 2015/análisis · R

Análisis de tendencias en resultados educativos

Qué mueve el puntaje de un colegio y dónde está la brecha

¿Con qué fin?

Quería responder con datos, no con opinión: ¿qué mueve de verdad el puntaje de un colegio en las pruebas Saber 11, y hay una brecha real entre colegios oficiales y no oficiales? Tomé la base pública del ICFES y la trabajé de principio a fin en R.

¿Cómo lo hice?

Limpieza reproducible de 977 → 965 instituciones (duplicados, números guardados como texto, decimales con coma, categorías vacías), exploración de las distribuciones, la brecha por naturaleza del colegio, una matriz de correlaciones y una regresión lineal. Reconcilié cada cifra contra la base: un análisis que no se puede reproducir no es un análisis.

¿Qué logré concluir?

Las cinco áreas se mueven en bloque y el tamaño del colegio casi no explica el resultado. La palanca con más evidencia es la comprensión lectora: cada punto en lectura crítica se asocia con +1.17 en matemáticas (r² = 0.87). Y la brecha oficial/no-oficial es sistemática — hasta +10.6 puntos en inglés.

977 → 965

filas depuradas

r² 0.87

del puntaje explicado

+1.17

mat. por punto de lectura

+10.6

brecha en inglés (pts)

Implementaciones de IA

Sistemas agénticos que ejecutan procesos reales, no demos de chat.

  1. 01 Brief

    Entra la intención: tema, tono, canal.

  2. 02 Investiga

    El agente reúne datos y ángulos relevantes.

  3. 03 Redacta

    Genera el borrador siguiendo la guía de marca.

  4. 04 Adapta

    Recorta a cada formato: post, reel, correo.

  5. 05 Entrega

    Devuelve el paquete listo para revisar.

agente · replay (datos de ejemplo)
$ agente publicar --brief "lanzamiento producto X"brief recibido · canal: instagram + correo · tono: cercano→ skill:investigar  reuniendo ángulos y datos de soporte  ✓ 5 ángulos priorizados · 3 datos verificables [ejemplo]→ skill:redactar  borrador según guía de marca  ✓ borrador 280 palabras · voz de marca aplicada→ skill:adaptar  recortando a cada formato  · post IG (120c) · guion reel (30s) · asunto correo (6 palabras)✓ paquete listo para revisión humana — 0 publicaciones automáticas

01El software que mostramos corre en producción.

02El stack que listamos es el que de verdad usamos.

03El diseño que ves es la demo.

¿Tienes un proyecto en mente?

Cuéntanos qué necesitas. Respondemos con opciones concretas, no con un tarifario genérico.

Hablemos de tu proyecto

/el-ingeniero

Detrás de cada proyecto hay un ingeniero

La fortaleza de Pixies es el conocimiento de quien la construye. Conoce a Samuel: su trayectoria, sus decisiones y su forma de pensar la tecnología.

Conoce al ingeniero →

Cuéntanos tu proyecto

Respondemos por WhatsApp. Tu mensaje queda guardado desde que lo envías, pase lo que pase después.