Nelson Madrid

Desarrollador web · Tegucigalpa, Honduras · Remoto Web developer · Tegucigalpa, Honduras · Remote

Construyoy sostengo. I build itand run it.

Sistemas de gestión para clínicas y colegios. Los hago completos — modelo de datos, reglas de seguridad, interfaz y despliegue — y después los mantengo. Management systems for clinics and schools. I build them end to end — data model, security rules, interface and deployment — and then I keep them running.

DisponibilidadAvailability
Abierto a remotoOpen to remote
InglésEnglish
C2 — EF SET (verificable)(verifiable)
Zona horariaTime zone
UTC−6 · CST
AlcanceScope
4 sistemas completos4 complete systems
01 — 03

Trabajo seleccionadoSelected work

01

Odontia

SaaS dental multi-inquilino · desplegado Multi-tenant dental SaaS · deployed

Gestión completa de una clínica dental: pacientes, odontograma, agenda, cotizaciones y documentos. Desplegado y en evaluación con una odontóloga. Runs a dental practice end to end: patients, dental chart, scheduling, quotes and documents. Deployed and under evaluation with a dentist.

JavaScriptFirestoreFirebase AuthPWACloudflare Pages
El problema difícilThe hard part

Aislar decenas de clínicas dentro de un solo proyecto de Firebase. Las reglas de Firestore son la única frontera: una clínica sin documento roles es invisible por defecto, y una asistente no puede ascenderse a propietaria porque la regla excluye justo ese documento — ajuste != 'roles'. Isolating dozens of clinics inside one Firebase project. The Firestore rules are the only boundary: a clinic with no roles document is invisible by default, and an assistant can't promote herself to owner because the rule excludes that exact document — ajuste != 'roles'.

Los pacientes confirman su cita sin iniciar sesión y sin poder leer la agenda: un espejo indexado por token expone solo fecha, hora y estado — nunca el nombre ni el motivo. Patients confirm appointments without logging in and without ever reading the schedule: a token-keyed mirror exposes only date, time and status — never the name or the reason.

odontia-demo.pages.dev
Panel de Odontia: agenda del día, contadores de citas y pacientes.
02

Medika

Consultorios médicos · mismo motor, otro núcleo clínico Medical practices · same engine, different clinical core

El odontograma se reemplaza por signos vitales, notas SOAP y codificación CIE-10. El resto del motor —agenda, expedientes, documentos— es el mismo. The dental chart is replaced by vitals, SOAP notes and ICD-10 coding. The rest of the engine — scheduling, records, documents — is shared.

JavaScriptFirestorePWACIE-10 / ICD-10
El problema difícilThe hard part

White-label de verdad. Un solo archivo de configuración cambia identidad, marca, horarios, módulos visibles y tarifario — sin tocar una línea del sistema. La captura de al lado y la de arriba son el mismo código base. Real white-labeling. A single config file changes identity, branding, working hours, visible modules and pricing — without touching a line of the system. The screenshot here and the one above are the same codebase.

medika-demo.pages.dev
Panel de Medika con la misma estructura que Odontia pero marca propia.
03

Centia

Proyecto personal · PWA de finanzas, teléfono y escritorio Personal project · finance PWA, phone and desktop

Registrar un gasto en dos toques. Presupuestos con proyección, metas, pagos recurrentes y gráficas de flujo. Log an expense in two taps. Forecasting budgets, savings goals, recurring payments and cash-flow charts.

JavaScriptCanvas 2DService WorkerFirestore
El problema difícilThe hard part

Gráficas sin ninguna librería: 173 líneas de canvas que ajustan al devicePixelRatio para verse nítidas en pantallas retina, respetan prefers-reduced-motion y aplican el glow solo en el último frame en vez de repintar sombras en cada cuadro de la animación. Charts with no library at all: 173 lines of canvas that scale to devicePixelRatio so they stay sharp on retina screens, honour prefers-reduced-motion, and apply the glow only on the final frame instead of repainting shadows on every animation frame.

centia-demo-71y.pages.dev
Centia Captura pendiente — la demo ya es navegable. Screenshot pending — the demo is already live.
04

Un cuarto sistemaA fourth system

Escolia

Sistema de gestión escolar construido para un colegio en Honduras: portal de notas, excusas de ausencia y permisos de salida. Desplegado y funcional. School management system built for a school in Honduras: grade portal, absence notes and exit permissions. Deployed and working.

La arquitectura: el backend son 1,045 líneas de Google Apps Script sobre Sheets, expuestas como API. Sin servidor que mantener y con los datos en una hoja de cálculo que el colegio puede abrir directamente. The architecture: the backend is 1,045 lines of Google Apps Script over Sheets, exposed as an API. No server to maintain, and the data sits in a spreadsheet the school can open directly.

1,045líneas de backendlines of backend
0librerías de interfazUI libraries
2,630líneas en Odontialines in Odontia
105líneas de reglas de seguridadlines of security rules
05

Cómo trabajoHow I work

01

De punta a puntaEnd to end

Modelo de datos, reglas de seguridad, interfaz, despliegue y el soporte de después. Cuando algo falla del lado del usuario, es mi problema. Data model, security rules, interface, deployment and the support afterwards. When something breaks on the user's side, it's my problem.

02

Sin dependenciasNo dependencies

Estos sistemas no cargan librerías de terceros: ni framework, ni librería de gráficas, ni paso de compilación. Todo lo que corre es código que puedo explicar y cambiar. These systems load no third-party libraries: no framework, no charting library, no build step. Everything running is code I can explain and change.

03

La seguridad es del servidorSecurity lives server-side

Esconder un botón no es seguridad. Lo que protege los datos son las reglas que corren donde el usuario no llega — y se escriben suponiendo que alguien va a abrir la consola. Hiding a button isn't security. What protects the data are rules running where the user can't reach — written assuming somebody will open the console.

04

BilingüeBilingual

Español nativo, inglés C2 certificado. Escribo documentación y discuto decisiones técnicas en los dos. Native Spanish, certified C2 English. I write documentation and argue technical decisions in both.

Hablemos. Let's talk.

Busco trabajo remoto como desarrollador web. Si algo de acá te sirve, escribime y te contesto el mismo día. I'm looking for remote web development work. If any of this is useful to you, write me and I'll reply the same day.