Sitios y sistemas web
- Sitios informativos y portales de contenido administrables
- Sistemas con usuarios, formularios y base de datos MySQL
- Interfaces modernas en React y TypeScript
- Diseño adaptable a celular, tablet y escritorio
Rodrigo Saavedra Ábalos · Desarrollador full-stack y Android · Soporte TI y ciberseguridad
Llevo desde 2002 resolviendo problemas de tecnología en mesas de ayuda, terreno y operaciones. Hoy uso esa experiencia para construir sitios web, sistemas con base de datos y apps móviles pensados para quien los usa y quien los mantiene.

Para empresas, emprendimientos e instituciones que necesitan una solución concreta, desde la idea hasta que queda funcionando.
Las capturas son de las aplicaciones corriendo. Todo el código se puede revisar en GitHub.
Un diario digital con secciones, buscador, comentarios, registro de lectores y panel de redacción. Lo construí en cuatro etapas, desde HTML estático hasta una aplicación PHP con arquitectura MVC y base de datos MySQL.
Portada: noticia destacada, «Lo último» numerado y bloques por sección.

.env, usuario de base de datos con permiso solo de ejecución y una lista blanca de HTML para el cuerpo de los artículos.public function llamarProcedimiento($nombre, array $entrada = []) { // Solo se aceptan nombres con prefijo sp_ (lista blanca) if (!preg_match('/^sp_[a-z0-9_]+$/', $nombre)) { throw new InvalidArgumentException("No válido: $nombre"); } $sql = "CALL " . $nombre . "(" . $marcadores . ")"; try { $sentencia = $this->preparar($sql, $entrada); } catch (PDOException $ex) { // 1305: el hosting no tiene el procedimiento if ($ex->errorInfo[1] === self::ERROR_PROCEDIMIENTO_INEXISTENTE) { throw new ProcedimientoNoDisponible(...); } throw $ex; } }
Más de 30 pantallas construidas en React y TypeScript: registro, perfiles, descubrir y hacer match, chat, eventos, planes de membresía y moderación. Cada pantalla es un componente y un estado central decide qué se muestra.




tsc --noEmit en el pipelineUn recorrido por la plataforma: Intents y layouts adaptativos en Java, listas con RecyclerView, navegación entre fragmentos, ViewModel con LiveData y tareas en segundo plano con corrutinas.
Splash, lista, detalle y formulario con Navigation y un ViewModel que sobrevive a la rotación.
proyecto-android-mvvm ↗Interfaz declarativa en Jetpack Compose con estado separado de la vista.
lista-tareas-mvvm ↗Tarjeta profesional en Java con diseño horizontal y accesos directos a llamada y correo mediante Intents.
aboutme ↗class ProductViewModel : ViewModel() { private val _products = MutableLiveData<List<Product>>() val products: LiveData<List<Product>> get() = _products private val _isLoading = MutableLiveData<Boolean>() val isLoading: LiveData<Boolean> get() = _isLoading fun loadProducts() { viewModelScope.launch { _isLoading.value = true // filtrar y transformar antes de exponer _products.value = catalogo .filter { it.price > 0 } .map { it.copy(name = it.name.uppercase()) } _isLoading.value = false } } }
Herramienta interna que desarrollé para mi trabajo: vigila las 14 pizarras interactivas de las salas 16 a 29, las enciende a distancia y diagnostica fallas sin ir sala por sala.
Proyecto interno, con código no público. El estado de las salas que se muestra arriba es ilustrativo.
Defino los requisitos con quien usará el sistema y los dejo por escrito.
Modelo de datos, arquitectura y pantallas antes de escribir la primera línea.
Cada entrega funciona por sí sola y queda registrada en Git.
Despliegue, guía de instalación y notas de seguridad para quien lo mantenga.
Empecé en la mesa de ayuda de Olivetti en 2002. Pasé por terreno, supervisión y centros de asistencia en empresas como ENTEL, Sercompe y Hites. Hoy sumo el desarrollo de software a esa base.
Tecnología de las salas: pizarras interactivas, computadores, proyectores e impresoras en red. Desarrollé el panel de monitoreo de 14 pizarras con encendido remoto.
Desarrollo web full-stack, aplicaciones móviles, programación segura (OWASP) y metodologías ágiles.
| Área | Tecnologías | Dónde verlo |
|---|---|---|
| Back-end | PHP 8, MVC, PDO, Composer, variables de entorno | Diario El Faro |
| Bases de datos | MySQL, procedimientos almacenados, triggers, vistas, eventos | Diario El Faro |
| Front-end | React, TypeScript, Vite, Tailwind CSS, Zustand, Framer Motion | Flama |
| Web base | HTML5 semántico, CSS Grid, Bulma, JavaScript, accesibilidad | El Faro, etapas 1–3 |
| Móvil | Kotlin, Java, Jetpack Compose, ViewModel, LiveData, corrutinas | 5 apps Android · certificación SENCE |
| Seguridad | Sentencias preparadas, lista blanca de HTML, mínimo privilegio, STRIDE, OWASP | Diario El Faro |
| Soporte y operaciones TI | Mesa de ayuda N1 y N2, soporte remoto y en terreno, supervisión técnica, políticas locales | Olivetti · ENTEL · Sercompe · Selkis · Hites |
| Infraestructura | Node.js, redes LAN, Wake-on-LAN, Cloudflare, Git y GitHub | Panel de pizarras |
Cuéntame qué necesitas: un sitio, un sistema con base de datos, una app o automatizar la tecnología de tu organización.
Trabajo en remoto desde Chile para empresas de Chile, Latinoamérica y Europa. Tengo ciudadanía chilena y española, con permiso para trabajar en la Unión Europea.