Descripción del Puesto
Fonestar es un destacado fabricante de equipos y sistemas de audio profesional, especializado en sistemas de megafonía. En el equipo de I+D desarrollamos nuestros sistemas de manera integral, abarcando desde el diseño mecánico hasta las aplicaciones de usuario, incluyendo la electrónica y el software embebido. Nos esforzamos constantemente por alcanzar nuestro objetivo principal: ofrecer valor a los clientes y usuarios finales.
Actualmente desarrollamos un ecosistema de aplicaciones para interactuar con dispositivos en red local y en la nube. Nuestro front combina una aplicación de escritorio multiplataforma (React + Electron) y una aplicación móvil (React Native), ambas sustentadas por un monorepo TypeScript y un SDK propio. Es un entorno con diagramas interactivos, dashboards, múltiples paneles, datos en tiempo real y un fuerte enfoque offline‑first.
Buscamos a una persona senior, autónoma y resolutiva, que disfrute de los retos técnicos y nos ayude a llevar funcionalidades a producción con calidad y velocidad.
Lo que harás
- Desarrollar y evolucionar funcionalidades end‑to‑end en React (desktop) y React Native (móvil).
- Trabajar en la app Electron (procesos main/renderer, IPC, empaquetado y distribución multi‑OS).
- Crear y mantener UIs complejas: múltiples vistas/pestañas, flujos densos, state interdependiente, diagramas (React Flow) y drag & drop avanzado.
- Diseñar e implementar estrategias offline‑first: persistencia local, caching, colas y sincronización diferida.
- Colaborar en la arquitectura del monorepo y en la integración de nuestro SDK propietario.
- Realizar code reviews, cuidar buenas prácticas y mejorar la calidad (tests, profiling, refactors).
- Participar en decisiones de UX y en la mejora continua del producto.
Requisitos imprescindibles
- Experiencia sólida en React construyendo interfaces complejas y con gran volumen de estado.
- Experiencia demostrable en React Native, incluyendo ciclo con Android Studio y Xcode.
- Electron en producción: IPC, procesos main/renderer, empaquetado y distribución.
- TypeScript avanzado (generics, tipos discriminados, utilidades, tipado estricto).
- Experiencia en aplicaciones complejas (múltiples vistas, flujos densos, alto nivel de interacción).
- Experiencia manejando datos en tiempo real: WebSockets, MQTT u otros sistemas event‑driven.
- Offline‑first: persistencia local, caching, colas y sincronización.
- Monorepos (Nx, Turborepo o workspaces) y paquetes compartidos.
- Capacidad para trabajar de forma autónoma y entregar features end‑to‑end.
- Concurrencia/asincronía: mutex, debounce, prevención de race conditions, control de ciclos async.
- Integración de SDKs propietarios: comprensión de patrones (singletons, callbacks, async lifecycle).
- Dominio de GitHub: ramas, PRs, code reviews, commits limpios, Actions (CI).
- Node.js: filesystem, procesos del SO, módulos nativos, ejecución fuera del navegador.
- Buenas prácticas y patrones de diseño; capacidad para entrar con rapidez en un codebase existente.
➕Muy valorable
- Experiencia con React Flow o librerías similares de diagramación/canvas (Konva, DnD Kit, etc.).
- Experiencia con dispositivos, IoT, comunicaciones locales o hardware (protocolos, puertos, servicios locales…).
- Conocimientos o experiencia con PostgreSQL, SQLite o persistencia local en general (IndexedDB, filesystem).
- Conocimientos de UX aplicados a interfaces avanzadas y flujos densos.
- Experiencia en testing: Jest, React Testing Library, Playwright.
- Docker y nociones de contenedores.
- Experiencia en CI/CD.
- Experiencia o interés en Material UI (MUI): componentes, theming, styled-components, design tokens.
- Experiencia en i18next u otras soluciones de internacionalización en React/React Native.
- Conocimientos de sistemas operativos desde el punto de vista del desarrollo: Windows, Linux y macOS.
- Capacidad para producir código seguro y confiable, evitando bugs, vulnerabilidades y problemas de estabilidad.
¿Qué ofrecemos?
- Salario: 35.000 - 45.000 € brutos/año.
- Trabaja 100% remoto, híbrido o presencial, según prefieras.
- Horario: lunes a jueves de 8a.m. a 16:30p.m. y viernes de 8:00a.m. a 14:00p.m. Jornada intensiva en verano (julio y agosto)
- Portátil y herramientas de trabajo, tanto software como hardware.
- Desarrollo personal y profesional. Aquí no se limita a nadie, nos encantan las personas que suben el nivel del equipo y la empresa.