BUSCAMOS: Desarrollador Full Stack Angular - Microservicios
FUNCIONES – TAREAS
& CONOCIMIENTOS:
Profesional
con al menos 4 años de experiencia contrastada como desarrollador FullStack
Angular y Back de microservicios basados en NodeJs.
Funciones Principales:
o Cierre y documentación de los acuerdos de interfaz.
o Identificar y escalar los problemas que puedan afectar al cumplimiento de la
planificación ya sean competencia o no del mismo.
o Velar por el cumplimiento del DOR y DOD definido.
o Asegura el cumplimiento de los quality gates en SONAR
o Uso de TDD, BDD u otras prácticas que permitan índices de calidad adecuados,
integrando la parte de testing como parte más del código de forma automática y
en sus diferentes alcances (unit, int, E2E, Rendimiento, Seguridad)
o Uso del actual stack de DevOps. (Calidad de código estática, gestión de merge
& branch, despliegues…)
Requisitos necesarios:
o
Haber trabajado bajo arquitectura de WebComponents.
o Amplios conocimientos de desarrollo back-en con Node.js
o Haber trabajado con bbdd y entornos Cloud Native (AWS) con microservicios
o Nivel avanzado en la creación de APIs y su gestión con Apigee.
o Conocimiento en lenguajes:
§ Typescript: nivel experto. Domina la mayor parte de las características la
última versión del lenguaje.
§ Javascript: nivel experto. Domina la mayor parte de las características de
ES5 y ES6.
§ HTML: nivel avanzado. Conoce la mayoría de los tipos de elementos nativos
(h1, fieldset, input, button, etc). Puede maquetar una vista o componente de manera
independiente y sin ayuda.
§ CSS: nivel medio. Conoce las reglas de especificidad, sabe maquetar una
aplicación.
§ SASS/SCSS: nivel avanzado. Sabe maquetar una aplicación con SASS o SCSS sin
buenas prácticas.
o Prácticas:
§ Código limpio: nivel experto. Domina todas las reglas de código limpio
respecto a clases, métodos, propiedades, nombres, gestión de excepciones,
comentarios, etc.
§ Programación orientada a objetos: nivel experto. Domina conceptos como
cohesión, acoplamiento, jerarquía, modularidad, abstracción, encapsulación y
sabe dar ejemplos de cada tipo.
§ Principios de diseño: Sabe explicar y dar ejemplos de los S.O.L.I.D, YAGNI y
KISS.
§ Patrones de diseño: conoce y sabe explicar la mayoría de los patrones de
diseño, poniendo ejemplos.
§ Testing: conoce las reglas F.I.R.S.T, conoce las partes de un test
(Given/When/Then ó Arrange/Act/Assert), conoce desablemente el patrón
page-object. Conoce los tipos de falsos dobles (spy, mock, stub, fake, dummy
object) y sabe cuándo utilizarlos. Conoce la pirámide de testing y sabe la
diferencia entre test unitario, de integración y end to end.
§ Arquitectura: nivel experto. Sabe configurar un proyecto angular desde 0 y
tiene experiencia haciéndolo de varios proyectos.
o Front-end:
§ Angular: nivel experto. Sabe cómo utilizar la inyección de dependencias para
sustituir dependencias, domina cuándo utilizar una Pipe, un Componente, un
Módulo, Lazy Load de módulos. Conoce prácticamente todos los métodos hook del
ciclo de vida de componentes: ngOnInit, ngOnDestroy, etc. Sabe testear una
aplicación o componente.
§ Web Components: nivel avanzado. Tiene amplios conocimientos sobre el
paradigma de orientación a componentes y ecosistema. Sabe desarrollar y
reutilizar componentes y conoce su ciclo de vida real dentro de una SPA.
o Backend:
§ Node.js: nivel avanzado. Tiene amplios conocimientos sobre Node.js y ha
trabajado con aplicaciones en producción.
§ APIs: nivel avanzado. Amplios conocimientos sobre el desarrollo y
mantenimiento de APIs.
§ BBF: Conoce el patrón de un BFF (Backend for front-end).
o Librerías:
§ Webpack: nivel experto, si conoce también herramientas similares mejor.
Conoce los loaders y plugins y ha programado alguno en una aplicación en
producción.
o Herramientas:
§ GIT: nivel avanzado. Sabe hacer merges, merge-squash, cherry picks, crear ramas,
hacer rebases, utilizar el stash.
§ Confluence: Conoce la herramienta.
§ Jenkins o similar: nivel medio. Tiene capacidad para crear una build de
integración continua en Jenkins
o
cualquier otro software equivalente a Jenkins. Tiene capacidad para crear un
job de deploy continuo.
o Metodologías:
§ Agile: Conoce los principios y los sabe aplicar
§ Scrum: tiene capacidad para ser scrum master en equipos de más de 5 personas.
Conoce todas las liturgias de scrum (sprint planning, sprint retrospective, daily
meeting, etc), los conceptos de backlog, sprint backlog, historia de usuario,
etc.
Capacidades Personales:
o Softskills:
§ Trabajo en equipo
§ Auto-didacta
§ Capacidad para comunicar a grupos
§ Capacidad de adaptación al cambio
§ Capacidad para hacer “challenges”
§ Aceptación de nuevos retos.
o Inglés nivel Medio
OFRECEMOS:
· Contrato en modalidad Freelance Full time
· Oferta económica: 200€ - 240€ jornada + IVA (según experiencia aportada)
· Proyecto de larga Duración. Recurrencia en
Proyectos
· Localización Madrid : – Smartworking ó Remoto
(a valorar )
· Horario: De Lunes a Jueves de 9.00 a 18.30 -
Viernes de 9.00 a 15.00h (horario flexible)