IB Isabel Barroso Agudo

Desarrolladora de software

Isabel Barroso AgudoDesarrollo software de escritorio y backend con Java y C++.

Soy titulada en DAM. De febrero a junio de 2026 mantuve aplicaciones .NET en producción en Senda Salud. Por mi cuenta he hecho un prototipo jugable en Unreal Engine 5 y una aplicación de escritorio remoto en Java. Busco mi primer empleo como desarrolladora.

Busco
Primer empleo: backend, escritorio o videojuegos
Ubicación
Castilla y León, España
Formación
Técnica Superior en DAM, 2026
Lenguajes
Java · C# · C++ · SQL
Revisión
Octubre de 2026

Proyectos

Cuatro proyectos: el final de DAM, dos que empecé por mi cuenta y un encargo para un cliente.

Proyecto final de DAMTerminado

Velox: pedidos a domicilio para restaurantes locales

Aplicación de escritorio para que un restaurante gestione carta, pedidos y reparto, con un bot de Telegram por el que el cliente hace el pedido.

Problema
Un restaurante que reparte a domicilio tiene que llevar a la vez la carta, los pedidos abiertos y qué repartidor lleva cada uno. El cliente, por su parte, quiere pedir sin instalar otra aplicación.
Solución
El operador trabaja en una aplicación JavaFX con la carta, los pedidos y el reparto por zonas de código postal. El cliente se registra y pide desde un bot de Telegram, que escucha en un hilo propio para no bloquear la interfaz. Las direcciones se validan con la API de geocodificación de Mapbox y los datos se guardan en MySQL 8 mediante JPA/Hibernate.
Qué aprendí
A diseñar una aplicación antes de programarla: partir de diagramas UML y de un modelo entidad-relación para llegar al esquema de MySQL. Al mapearlo con JPA/Hibernate entendí cómo se organiza una arquitectura por capas y lo importante que es modelar bien el ciclo de vida de un pedido desde el principio. También aprendí a documentar un proyecto para que otras personas puedan entenderlo.
  • 10 entidades JPA y un pedido con 6 estados. Las transiciones se validan en un único punto de la capa de servicio y cada cambio queda guardado en un histórico.
  • Asignación de repartidor manual o automática entre los repartidores libres de la zona del pedido.
  • Contraseñas de los operadores cifradas con BCrypt.
  • 38 pruebas con JUnit 5, con pruebas de integración sobre H2.
  • Memoria con casos de uso, diagrama de clases, modelo entidad-relación, estados y despliegue.

Tecnologías

  • Java 21
  • JavaFX
  • Hibernate/JPA
  • MySQL 8
  • Docker
  • JUnit 5
  • API de Telegram
  • Mapbox
Diagrama de estados del pedidoUn pedido pasa de PENDIENTE a EN_COCINA, LISTO_PARA_RECOGER, EN_REPARTO y ENTREGADO. Desde cualquiera de los cuatro primeros estados puede pasar a CANCELADO. Para entrar en EN_REPARTO necesita un repartidor asignado.PENDIENTEEN_COCINALISTO_PARA_RECOGEREN_REPARTOENTREGADOCANCELADO↑ requiere repartidor
fig. 1 Ciclo de vida de un pedido, tal como lo valida la capa de servicio.

Iniciativa propiaPrototipo jugable

Chicken City: una ciudad habitada por pollos

Mi primer videojuego, hecho en Unreal Engine 5 con la intención de venderlo.

Objetivo
Terminar un juego completo y ponerlo a la venta. El alcance, el diseño y el calendario los llevo yo.
Qué hay en el prototipo
Empiezas en un granero y puedes recorrerlo y salir a la ciudad, entrar en las casas, recoger objetos del suelo y guardarlos en un inventario. La partida se puede guardar y por la ciudad pasean pollos controlados por el juego. La lógica está en C++ y el ensamblaje en Blueprints.
Qué aprendí
A iterar: empezó como una granja sencilla y lo replanteé como una ciudad de pollos cuando vi que esa idea tenía más personalidad. Quería hacerlo todo en C++ y acabé combinándolo con Blueprints, cada uno para lo que hace mejor. Hacer el inventario, la recogida de objetos, el guardado y los personajes me obligó a pensar en cómo se comunican entre sí las partes de un juego.

Tecnologías

  • Unreal Engine 5.8
  • C++
  • Blueprints
Chicken City en tercera persona: un pollo con cazadora camina por una explanada hacia otro pollo, con casas de tejado rojo, una valla y una montaña al fondo.
fig. 2 El prototipo en marcha: la ciudad, las casas y un pollo del juego al fondo.

Iniciativa propiaFunciona en red local

Escritorio remoto en red local

Aplicación en Java para ver la pantalla de otro ordenador de la misma red, siempre con permiso de quien lo usa.

Problema
Para ayudar a alguien con su ordenador hace falta ver su pantalla. Quería hacerlo sin configurar direcciones a mano y sin que nada se comparta a espaldas de la otra persona.
Solución
El cliente busca equipos con un mensaje de difusión UDP y muestra los que responden. Al elegir uno abre una conexión TCP. El host ve un diálogo para permitir o rechazar; si acepta, envía el tamaño de su pantalla y después diez capturas JPEG por segundo, cada una precedida de su tamaño en bytes.
Qué aprendí
A trabajar con redes a bajo nivel en Java: descubrir equipos con UDP, conectar por TCP con sockets y diseñar un protocolo propio para enviar imágenes. Tuve que usar hilos para escuchar conexiones sin bloquear la aplicación y cuidar el cierre de la conexión por los dos lados. También aprendí que la privacidad va en el diseño: nada se comparte sin permiso y siempre hay un indicador visible.
  • Permiso explícito del host antes de compartir nada. Si rechaza, el socket se cierra.
  • Barra roja visible en el host mientras se comparte la pantalla.
  • El host puede cortar en cualquier momento y el cliente recibe el aviso de conexión terminada.
  • Límite actual: solo funciona dentro de la misma red local.

Tecnologías

  • Java
  • Sockets TCP
  • UDP
  • Hilos
Protocolo entre cliente y hostEl cliente envía BUSCAR_HOST por difusión UDP al puerto 5001. El host responde con HOST, su id, su IP y su nombre. El cliente abre una conexión TCP al puerto 5000. El host pregunta a su usuario si lo permite. Si acepta, envía el ancho y el alto de la pantalla y después diez capturas JPEG por segundo, cada una precedida de su tamaño. Cuando el host corta, se cierra el socket.ClienteHostUDP :5001 BUSCAR_HOSTHOST|id|IP|nombreTCP :5000 conectarancho, alto[tamaño][JPEG] ×10/scortar: cierra el socket¿Permitir?
fig. 3 Mensajes entre cliente y host, del descubrimiento al cierre.
Ventana "Sesión remota activa" con una barra roja que avisa de que otro equipo está viendo la pantalla y un botón "Cortar conexión".
fig. 4 Lo que ve el host mientras comparte: aviso permanente y botón para cortar.

Encargo para un cliente

CyberAcademy: de web a aplicación de escritorio

Academia para aprender los lenguajes de programación más usados, con contenidos de redes, ciberseguridad y sistemas.

El encargo
La web de CyberAcademy es de otra persona, que me encargó pasarla a una aplicación de escritorio en Java.
Cómo funciona
Quien aprende gana experiencia y logros, y tiene un nivel por cada habilidad. Ese nivel se ajusta según cómo resuelve cada ejercicio: cuánto tarda y si pide pistas. Si resuelve la ordenación por burbuja con una pista, el nivel sube menos o incluso baja.
Qué aprendí
A trabajar sobre un proyecto que no había creado yo: entender cómo funciona antes de tocarlo y trasladar una interfaz y una lógica pensadas para la web a un entorno de escritorio, respetando lo que el cliente necesitaba.

Tecnologías

  • Java
Ajuste del nivel por habilidad
Se mideEfecto en el nivel
Tiempo de resoluciónCuenta para el ajuste
Resuelto sin pistasSube más
Resuelto con pistaSube menos o baja
fig. 5 Qué se mide en cada ejercicio y cómo afecta al nivel.
Mapa de habilidades de CyberAcademy: un nodo central conectado con rutas de Java, C, C#, C++, Python, JavaScript, redes, sistemas, bases de datos y ciberseguridad.
fig. 6 Mapa de habilidades: cada nodo es una ruta de aprendizaje.
Ruta de Java en CyberAcademy: unidades desplegables con misiones completadas, ejercicios y progreso de 24 de 88.
fig. 7 Ruta de Java: unidades, misiones y progreso.

Experiencia

  1. Feb. – jun. 2026

    Desarrolladora en prácticas

    Senda Salud · Salamanca

    Mantenimiento de aplicaciones en producción con C#/.NET y WinForms, SQL y pruebas.

  2. Jun. – ago. 2026

    Socorrista

    Vigilancia y responsabilidad directa sobre la seguridad de otras personas.

  3. Jun. 2025 – abr. 2026

    Cocinera

    La Tagliatella

    Cocina en servicio: trabajo en equipo y con tiempos ajustados.

Formación

  • Técnica Superior en Desarrollo de Aplicaciones Multiplataforma (DAM) · IES Venancio Blanco, 2026

Sobre mí

Me llamo Isabel y casi todo el mundo me llama Isa. Estudié DAM y mi primer contacto con el trabajo real fue el mantenimiento: en Senda Salud las aplicaciones ya estaban en producción y había gente usándolas.

Antes trabajé de cocinera en La Tagliatella y de socorrista. De ahí me quedo con trabajar en equipo cuando hay prisa y con hacerme responsable de lo que me toca.

En mi tiempo libre programo Chicken City, un juego en Unreal Engine 5, y una aplicación de escritorio remoto en Java.

Con qué trabajo

Lenguajes
Java, C#, C++, SQL
Escritorio
JavaFX, Swing, WinForms (.NET)
Backend y datos
Spring Boot, Hibernate/JPA, MySQL
Videojuegos
Unreal Engine 5 (C++ y Blueprints)
Redes
Sockets TCP y UDP en Java
Herramientas
Git, JUnit 5, Docker

Contacto

Busco mi primer empleo como desarrolladora. Lo más rápido es escribirme por correo.

isabelbagudo992@gmail.com