Software Engineer Intern
Description of the team offering the internship
Telefónica CTO-Novum busca ingenieros con talento para unirse a nuestro equipo de Ingeniería. Los retos a los que nos enfrentamos cada día para ampliar y mejorar la experiencia del usuario de Telefónica requieren amplios conocimientos sobre cómo producir código orientado a objetos altamente mantenible y extensible. Nuestros ingenieros deben sentir la necesidad de construir un producto que funcione rápido y sin fallos, sentir pasión por eliminar cualquier problema tan pronto como se descubra y sentirse orgullosos de hacerlo. El grupo CTO-Novum construye y opera la principal aplicación para los clientes de Telefónica en todo el mundo, llegando a más de 30 millones de usuarios activos. Trabajamos para construir productos nuevos e innovadores y para facilitar el acceso a todos los servicios que ofrece Telefónica.
What will you learn during your internship with us?
Desarrollar y mantener componentes de software en el lenguaje más adecuado al problema. Los principales lenguajes en uso son Java/Kotlin, PHP y Javascript, pero existen otros múltiples. Diseño de alta calidad de componentes de producto e infraestructura para su mantenimiento, robustez y escalabilidad. Optimizar el rendimiento de las aplicaciones, con respecto a la utilización de la CPU, el tráfico de red, el tamaño del almacenamiento de datos, el tiempo de respuesta y la concurrencia. Redactar y mantener conjuntos de pruebas automatizadas eficaces para los componentes suministrados. Analizar y eliminar vulnerabilidades de seguridad y cuellos de botella en el rendimiento del sistema. Trabajar junto con los ingenieros de fiabilidad del sitio para desplegar componentes y supervisarlos. Depurar problemas en los sitios web y móviles, basándose en los informes de los usuarios. Comprensión de los requisitos de las nuevas funciones para diseñar una solución que los cubra.
Training and skills you will need to develop this internship
EDUCATION REQUIRED Computer Science, Telecommunication Engineer, etc. SPECIFIC SKILLS Extensive knowledge of object-oriented programming and software architecture (preferably Java/Kotlin, other OOO languages are acceptable). Experience solving challenging performance problems, preferably related to web applications and distributed architectures based on microservices. Strong will to adhere to best practices in OO development and a need to leave well-structured code in your tracks. Knowledge of relational databases (MySQL) and other approaches to data management, particularly performance aspects. Strong analytical and problem-solving skills. Mobile and Javascript development experience is a plus. TECHNICAL KNOWLEDGE Nice to have: Frontend: ES6 (EcmaScript 6), React, Redux, npm, yarn. Backend: Java & Kotlin, Retrofit REST client, JAX-RS (Jersey) REST server, Dependency injection systems (Guice), Experience with unit/integration testing (JUnit/Spock) Automated build tools: Maven, Docker and Kubernetes Tools: Git; metrics and log tools as Graphite, Prometeus, Grafana and Kibana