¿Qué hace un desarrollador de SW en Televes?
Televes es conocido como fabricante de equipamiento de telecomunicaciones, pero ¿sabías que para ofrecer todos nuestros productos y servicios necesitamos una gran cantidad de desarrollo software (cada vez más)? Desarrollamos aplicaciones software de muy diversa naturaleza que se instala y distribuye en nuestros productos, o que utilizamos para monitorizarlos, gestionarlos, y ofrecer servicios a nuestros clientes
El hecho de ser una compañía que diseña, desarrolla y fabrica productos propios por un lado nos hace ser especialmente conscientes de que la vida de un producto software se extiende más allá de la publicación de cada release, que es necesario desarrollar pensando en la evolución de dichos productos, y por otro hace que nuestros desarrolladores tengan un marcado sentimiento de “propiedad” y responsabilidad sabiendo que el software que desarrollan forma parte de productos de la corporación que son distribuídos por todo el mundo.
¿Cómo concebimos nuestro trabajo?
Como no podía ser de otra manera también llevamos nuestro lema “pasión por la calidad” al desarrollo de software. Creemos que la única manera sostenible de hacer las cosas realmente rápido es “hacerlas bien” y por ese motivo estamos en un proceso de evolución constante en la forma en que desarrollamos software, con la calidad como principal objetivo. Tenemos claro que la única forma de conseguirlo es crear el contexto necesario para favorecer el crecimiento profesional de nuestros desarrolladores, valoramos mucho la figura del ingeniero de software y creemos que es un momento apasionante para dedicarse a esta disciplina.
¿Cómo trabajamos?
Trabajamos con equipos autogestionados y utilizamos metodologías ágiles buscando ser rápidos respondiendo a las necesidades del negocio. Estamos generalizando el trabajo con entornos CI/CD que automatizan todo lo posible (con herramientas como Git, Maven, Jenkins, Nexus...) para que los desarrolladores se puedan centrar en “lo importante”. Implementamos mecanismos para garantizar la calidad del código, desarrollamos tests automáticos de SW y utilizamos herramientas que nos proporcionan métricas de dicha calidad. Nos gusta discutir sobre principios de desarrollo de software, prácticas, patrones (y tambien antipatrones) y razonar sobre la mejor manera de diseñar nuestros sistemas para que sean mantenibles y escalables. Todo el mundo participa, todo el mundo aporta, todos aprendemos.La mayor parte de nuestros últimos desarrollos están realizados con Java, Python o Angular, aunque también hay componentes implementados con Node.js, HTML/typescript/CSS, C++, etc. Nos importan más los principios y las prácticas que los lenguajes elegidos para aplicarlos, pero valoramos mucho el conocimiento y la experiencia trabajando con estas tecnologías.
¿Qué harías como Senior Developer?
Formar parte de un equipo para diseñar y desarrollar productos en el ámbito hospitality (IPTV, servicios interactivos, streaming…) Participar en la definición de funcionalidades y arquitecturas Colaborar en la planificación y seguimiento de los desarrollos Asegurar la calidad del software desarrollado Cooperar con otros equipos encargados de desarrollo software o de otros aspectos relacionados con la creación de productos Participar y aportar en la mejora continua de procedimientos Apoyar y colaborar en el mentoring de Junior DevelopersNecesitarás experiencia…
Diseñando SW limpio, mantenible y escalable Aplicando principios y patrones de desarrollo (no necesitamos que conozcas nombres o definiciones, sino que estés acostumbrado a aplicar buenas prácticas en los diseños) Optimizando diseños y código legados Desarrollando en entornos Java o Python (trabajamos con SpringBoot y Django, por ejemplo) En desarrollo web, con Angular, React u otros frameworks, o directamente con javascript/typescript Trabajando en entornos CI/CD: con GIT, Maven, Jenkins, Nexus u otras herramientas Implementando tests de software, aplicando metodologías como TDD, trabajando con herramientas (como SonarQube) y metricas para garantizar la calidad Diseñando o trabajando con arquitecturas con APIs REST, contenedores, microservicios… Además de: Habilidad para aprender y pensar críticamente sobre diseño de sistemas software, y para saber darle a todo el necesario enfoque práctico Iniciativa y autonomía, capacidad para tomar decisiones en cualquier fase del desarrollo Especial vocación por la calidad del software, capacidad de análisis y atención al detalle Capacidad para el trabajo en equipo