Francisco Rodríguez

Desarrollador de aplicaciones Delphi.

Desde 2020 desarrollo, mantengo y modernizo aplicaciones empresariales en Delphi para TPV, gestión hotelera, inventario y recaudación, conectadas a bases de datos SQL y a hardware. Fuera del trabajo mantengo MON, mi app para iPhone y Android.

Disponible para incorporarme a un equipo

Palma, Mallorca · remoto o presencial · +34 601 348 359

6años con Delphi
17proyectos para clientes
4empresas de gestión y TPV
2020desde mi primer puesto
7 · XE5 · 10 · 10.3 · 11 versiones de Delphi, de 2020 a hoy

Currículum

Desarrollador de aplicaciones Delphi y apps móviles

Perfil

Desarrollador de software especializado en Delphi desde 2020. He desarrollado, mantenido y modernizado aplicaciones empresariales de TPV, gestión hotelera, inventario y recaudación, conectadas a bases de datos SQL y a hardware. En total, 17 proyectos para clientes entre escritorio, Android y web, en desarrollo o soporte. En 2026 he diseñado, programado y publicado MON, mi propia app para iPhone y Android.

Trayectoria 6 años con Delphi

Experiencia

  1. abr 2025 – may 2026 1 año y 2 meses

    Biocorporate Technologies

    Desarrollador de aplicaciones Delphi · Palma

    • Software empresarial
    • Migración
    • Migré el proyecto principal de Delphi XE5 a Delphi 10.1.
    • Desarrollé programas nuevos integrados con el sistema existente.
    • Soporte y mantenimiento del proyecto principal.
    • Delphi 10
    • T-SQL
    • SQL
    • Git
  2. may 2024 – mar 2025 11 meses

    Tec-Soft

    Desarrollador de aplicaciones Delphi · ParcBit, Palma

    • Hostelería
    • TPV
    • Mantenimiento y desarrollo del programa de gestión hotelera y TPV.
    • Soporte y mantenimiento del proyecto principal.
    • Delphi 10
    • SQL
    • BDE
    • Git
  3. jul – dic 2023 6 meses

    Intricom Resources

    Desarrollador de aplicaciones Delphi · Palma

    • Recaudación
    • Mantenimiento y desarrollo del programa de recaudación.
    • Soporte al departamento de recaudación.
    • Delphi 10
    • T-SQL
    • SQL
    • Git
  4. jun 2020 – jun 2023 3 años y 1 mes

    Informática Santueri (Deversor)

    Desarrollador de aplicaciones Delphi y web · Palma

    • TPV
    • Inventario
    • Rent a Car
    • Hardware
    • Participé en el desarrollo de un TPV en Delphi FireMonkey, un programa de gestión de inventario y un sistema de Rent a Car.
    • Integré hardware: cajón de cambio, control horario por huella dactilar (ANVIZ) y firma digital.
    • Trato directo con clientes, soporte y mantenimiento de proyectos propios y del equipo.
    • Delphi 7, 10 y 11
    • FireMonkey
    • PHP
    • HTML, CSS, JS
    • MySQL
    • SQLite
    • Git

Proyectos para clientes desarrollo o soporte · 17

Escritorio WindowsDelphi 10.3

  • AenaPrograma de gestión de inventario
  • Amipa Santa MaríaPrograma de gestión de reservas, caja e inventario
  • ANSABPrograma de gestión de reservas de Rent a Car
  • ANSABIntegración de hardware de firma digital
  • AzkoyenIntegración con cajón de cambio
  • GrimalIntegración ANVIZ (huella dactilar) para control de horarios

Apps AndroidDelphi 11 FireMonkey

  • DeversorApp TPV para camareros
  • CalaBonaApp de firma digital
  • Comedores Escolares Julio Tundidor MolinaApp de gestión de comedores escolares
  • Miquel SociasApp de pedidos y albaranes

WebsHTML5 · PHP · JS · WordPress · Joomla

  • Amipa Santa MaríaWeb de reservas online y formularios
  • Bennoc Petit HotelWeb de reservas del hotel
  • XapalaWeb de reservas del hotel (Joomla)
  • CalaBonaWeb de prechecking online
  • BinifinquesWeb para clientes de la inmobiliaria
  • BobinajesWeb de órdenes para operarios
  • Linos Grand CaféWeb con carta en PDF e información (WordPress)

Proyecto propio

2026 – actualidad

MON

Proyecto personal · diseño, desarrollo y publicación en solitario

  • App para iPhone y Android con React Native, Expo y TypeScript, en 7 idiomas.
  • Backend en Supabase con Postgres, seguridad por filas, tiempo real y funciones en el servidor.
  • Venta de entradas con Stripe Connect y suscripción Premium con RevenueCat.
  • Panel de administración de escritorio con Tauri y web pública con Astro.
  • React Native
  • Supabase
  • Stripe
  • RevenueCat
  • Astro
  • Tauri

Formación

  • 2018 – 2020Técnico en Sistemas Microinformáticos y RedesFP Grado Medio · CIFP Pau Casesnoves, Inca
  • 2016 – 2018Técnico Básico en Informática y ComunicacionesFP Básica · Es Liceu, Es Pont d'Inca

Competencias técnicas

Escritorio
Delphi 7, XE5, 10, 10.3 y 11 · VCL · FireMonkey · Object Pascal · Tauri
Bases de datos
SQL · PL/SQL (Oracle) · T-SQL · MySQL · PostgreSQL · SQLite · BDE
Móvil
React Native · Expo · TypeScript
Web
Astro · React · HTML5 · CSS · JavaScript · PHP · WordPress · Joomla
Servicios
Supabase · Stripe Connect · RevenueCat
Herramientas
Git · Codex · Claude Code

Idiomas

  • Castellano · nativo
  • Catalán · B2
  • Inglés · B2

Otros datos

  • Permisos de conducir AM y B, con vehículo propio

Descargar CV en PDFLinkedIn

Delphi

Seis años haciendo y manteniendo programas de gestión en Delphi 7, XE5, 10, 10.3 y 11, con VCL y FireMonkey. Aquí está todo junto: un formulario de verdad, los componentes que uso y cómo dejo el código.

Un formulario, funcionando

La clase de pantalla que he hecho decenas de veces. Elige cliente, escribe una línea y pulsa Añadir. Al guardar verás la llamada al procedimiento.

Es una simulación.

frmPedidos — Pedido nuevo
Cliente
Línea del pedido
Líneas
Fila activa ArtículoCant. PrecioImporte
Base 0,00 € Descuento 0,00 € Total 0,00 €
Listo. Añade una línea al pedido. 0 líneas UniDAC · ORCL
Pedidos

Componentes que uso

  • JCLJedi Code Library: utilidades
  • DevExpress VCLRejillas y controles
  • FastReportInformes e impresión
  • TMS SoftwareComponentes de interfaz
  • GExpertsExtensiones del IDE
  • UniDACAcceso a bases de datos
  • uniGUIAplicaciones web en Delphi

Cómo dejo el código

En plantilla o como externo, esto es lo que me llevo a cualquier proyecto en Delphi:

  • La lógica, fuera del formularioLos eventos de la interfaz solo llaman a clases y data modules. Así la lógica se puede leer, reutilizar y probar sin abrir la pantalla.
  • Procedimientos, no SQL sueltoCon Oracle, el .pas llama a los procedimientos del paquete con TUniStoredProc y parámetros. Nunca concateno valores, y lo que va junto va en una transacción.
  • Memoria bajo controlCada objeto que creo se libera en su try..finally, y reviso fugas de memoria en depuración.
  • Compila limpioSin hints ni warnings nuevos. Si el proyecto ya arrastra avisos, no añado más.
  • Git y revisiónCommits pequeños con mensajes claros. Nada entra en la rama principal sin revisar.
  • Respeto lo que haySigo las convenciones del proyecto y hago cambios acotados. Las migraciones de versión, por pasos y sin parar el trabajo diario.
uPedidosService.pas
1// El formulario solo llama: FPedidos.Guardar(PedidoDelFormulario);
2procedure TPedidosService.Guardar(const APedido: TPedido);
3var
4  Sp: TUniStoredProc;
5begin
6  Sp := TUniStoredProc.Create(nil);
7  try
8    Sp.Connection := FConexion;
9    Sp.StoredProcName := 'PKG_PEDIDOS.GUARDAR';
10    Sp.PrepareSQL;
11    Sp.ParamByName('P_PEDIDO_ID').AsInteger := APedido.Id;
12    Sp.ParamByName('P_CLIENTE_ID').AsInteger := APedido.ClienteId;
13    Sp.ParamByName('P_TOTAL').AsCurrency := APedido.Total;
14    Sp.ExecProc;
15  finally
16    Sp.Free;
17  end;
18end;
Delphi · UniDAC

SQL y PL/SQL

Los programas de gestión que mantengo viven en su base de datos. Esto es lo que hago en ella:

  • Consultas y rendimientoConsultas con varias tablas, agregados y subconsultas. Cuando una pantalla va lenta, miro el plan de ejecución y los índices antes de tocar el código.
  • Paquetes, procedimientos y funcionesLa lógica de datos vive en el servidor, en paquetes con su cabecera y su cuerpo, con procedimientos, funciones, cursores y excepciones propias. La aplicación llama con parámetros, no con SQL escrito a mano.
  • Modelo de datosTablas, vistas, claves y restricciones. Cambios de esquema pensados para no parar el trabajo diario.
  • Desde la aplicaciónConsultas parametrizadas y transacciones desde Delphi (UniDAC, BDE) y desde Supabase (PostgreSQL).
  • Oracle · PL/SQL
  • SQL Server · T-SQL
  • MySQL
  • PostgreSQL
  • SQLite
  • BDE
pkg_pedidos.pkb
1-- El procedimiento al que llama el .pas. La cabecera va en pkg_pedidos.pks.
2CREATE OR REPLACE PACKAGE BODY pkg_pedidos AS
3
4  PROCEDURE guardar (
5    p_pedido_id  IN pedidos.id%TYPE,
6    p_cliente_id IN pedidos.cliente_id%TYPE,
7    p_total      IN pedidos.total%TYPE
8  ) IS
9  BEGIN
10    UPDATE pedidos
11       SET cliente_id = p_cliente_id,
12           total      = p_total,
13           modificado = SYSDATE
14     WHERE id = p_pedido_id;
15
16    IF SQL%ROWCOUNT = 0 THEN
17      RAISE_APPLICATION_ERROR(-20001, 'Pedido inexistente');
18    END IF;
19  END guardar;
20
21END pkg_pedidos;
Oracle · PL/SQL
MON

Mi proyecto personal, publicado en las tiendas.

Una red social para quedar con gente, organizar grupos y vender entradas. La diseño, la programo y la mantengo yo solo, fuera del trabajo.

Plataformas
iOS y Android con un solo código
Idiomas
7
Tiempo real
Chat con fotos, vídeo, stickers y reacciones
Cobros
Stripe Connect y RevenueCat
Datos
Supabase y Postgres
Gestión
Panel de administración de escritorio
Pantalla Explorar de MON con perfiles de gente cercana
Explorar
Lista de eventos de MON con fecha, precio y aforo
Eventos
Grupo de MON con sus canales de chat
Grupos
Conversación del chat de MON
Chat
Ficha de un servicio reservable en MON
Reservas

¿Hablamos?

Estoy abierto a ofertas y a proyectos. Llámame o escríbeme y te respondo en menos de 24 horas laborables.

¿De qué se trata?

Se abre tu aplicación de correo con el mensaje escrito. Nada se envía hasta que lo mandes tú.

↑ ↓ moverse · ↵ abriresc cerrar