Esta ha sido mi experiencia laboral que comprende el intervalo entre febrero de 2021 y mayo de 2022 (en junio comencé en Unit4). Mi posición oficial ha sido ingeniero software, pero a efectos prácticos he actuado como full-stack developer.
Introducción
La mayor parte de ese intervalo de tiempo, la he dedicado al desarrollo de aplicaciones internas para una empresa francesa. Todo esto, a través de la consultora Capgemini teletrabajando con base en las oficinas de Murcia.
Frontend
En este aspecto, he visto el nacimiento de una aplicación que ahora se ha convertido en una de las aplicaciones más importantes del conjunto de proyectos en el que me encuentro. En sus comienzos, se concibió como una demostración para el cliente desarrollada en Angular y node.
En términos generales, el proceso comenzaba con una user story que contenía unos requerimientos y una maqueta. Con esos datos y usando VSCode, html, SCSS, Bootstrap y Typescript como herramientas, debía llevarlo a cabo con la máxima fidelidad posible. A menudo, estos desarrollos venían acompañados de su parte backend, por lo que se podrían considerar desarrollos completos.
Backend
El servidor al que la aplicación hace la mayoría de las peticiones ya estaba muy madurado. Está basado en spring MVC y Java. He utilizado IntelliJ con dichas tecnologías para la creación y modificación de numerosos servicios los cuales tienen diferentes finalidades, como la de comunicarse con servidores y APIs del cliente o acceder a nuestra propia base de datos. Se trata de una base de datos postgreSQL y usaba el programa DBeaver y Cygwin para acceder a ella.
Lanzamientos
Para poder probar los cambios efectuados en el backend, a menudo tenía que realizar operaciones en el servidor sustituyendo archivos, leyendo logs y ejecutando scripts, para lo cual usaba MobaXterm y WinSCP.
Para llevar a cabo las entregas al cliente, los paquetes pasan por un proceso llevado a cabo por Jenkins y que verifica la calidad del código usando Sonar.
Otras tareas
Linting
He realizado el linting utilizando ESLint con estilo Airbnb y Prettier. Esto obliga a los integrantes del proyecto a seguir unas normas de formato, de lo contrario no podrán hacer commit.
Seguridad
Una de las últimas tareas que he realizado es la de autorizar usuarios desde el backend usando OAuth. Estos se identifican con una autoridad externa y esta les entrega un código de autorización. Usando este código y otros que se obtienen a partir de este, he realizado diferentes tareas de verificación y actualización para permitir que el frontend pueda mantener esa autenticación. Para ello, he necesitado usar Http Cookies y JWT.
Testing
Además de los desarrollos, para garantizar un funcionamiento de calidad, he realizado los tests unitarios correspondientes utilizando herramientas como JUnit y Mockito.
Android Studio
Cabe destacar que he realizado tareas puntuales en Android Studio, principalmente de resolución de bugs.
Documentación
He llevado a cabo múltiples tareas de documentación usando diferentes editores de texto. Además, cabe destacar el uso de Swagger para generar la documentación del proyecto.
Idiomas
Cuando llegué al proyecto, tenía el título de Cambridge C1. Sin embargo, mi punto más débil era el oral. El hablar con compañeros a diario en inglés me ha servido para tener más seguridad y fluidez al hablar.
Desde el comienzo, he asistido a las clases de francés proporcionadas por la empresa. Según mi profesor, actualmente tengo nivel A2-B1, aunque todavía no tengo la suficiente seguridad.