Back Desarrollador Senior Java (Android + Web) (85104)

  • Added Date: Sunday, 01 July 2018

NOMBRE DEL PUESTO:

Desarrollador Senior Java (Android + Web)

TIPO DE CONTRATO:

Acuerdo de Servicios Especiales.

DIVISION:

Monitoreo y Evaluación.

DUTY STATION (City, Country):

San Salvador, El Salvador

DURATION:

6 Meses (3 meses de prueba, con posibilidades de extensión de contrato luego de los 6 meses hasta 2 años máximo según desempeño)


HISTORIA Y PROPÓSITO DE LA PLAZA:

La oficina del Programa Mundial de Alimentos en El Salvador en conjunto con el Gobierno de El Salvador ha desarrollado una plataforma tecnológica innovadora que combina tarjetas electrónicas inteligentes más un sistema en línea para el monitoreo de los avances de participantes de programas de protección social enfocados a la reducción de la pobreza.

La plataforma de Monitoreo Activo de Programas Sociales o MAPS permite el monitoreo de los participantes de programas sociales para garantizar el cumplimiento de los objetivos y mejor la toma de decisiones en programas de protección social.

MAPS está compuesto de tres componentes principales: Un App desarrollada en Android para lectura de tarjetas inteligentes con tecnología NFC que posee una interfaz para captura de información completamente personalizable con HTML+Javascript. Una plataforma en línea para administración y consulta de información con posibilidad de generación de tableros de datos personalizables a través de HTML+Javascript. Una API REST para interoperabilidad entre plataformas y sistemas de terceros.

La herramienta fue desarrollada y pilotada por el PMA durante el año 2017 y a partir del 2018 se implementará su uso en cuatro municipios de El Salvador con participantes de programas sociales en el marco de la Estrategia de Reducción de Pobreza.

Una descripción general del funcionamiento de la plataforma desarrollada puede encontrarse en los siguientes vínculos:

RESPONSABILIDADES:

1) Desarrollador principal de los componentes móvil y web de la plataforma MAPS con las siguientes responsabilidades:

  • Tomar decisiones técnicas y de arquitectura para asegurarse que los componentes de la plataforma respondan adecuadamente a los casos de uso del sistema. Estas decisiones deberán de estar siempre debidamente fundamentadas y documentadas. Deberá también documentar aquellas decisiones que se consideraron no-factibles para la implementación y la justificación correspondiente.
  • Diseñar*, desarrollar y mantener los componentes móvil, web y API de la plataforma de tal manera que respondan de forma adecuada a los casos de uso del sistema. Esto incluye la corrección de errores que puedan existir actualmente en la plataforma o que puedan surgir durante el proceso de implementación.
  • Diseñar*, desarrollar y mantener las interfaces de captura y visualización de datos en la aplicación móvil como la web.
  • Desarrollar código fuente de alta calidad siguiendo buenas prácticas de escritura de código fuente y documentación.
  • Liderar el proceso de desarrollo definiendo líneas de tiempo y productos entregables.
  • Implementar una metodología de desarrollo ágil que incorpore el desarrollo orientado a pruebas (TDD) como también el diseño y ejecución de pruebas de aceptación del usuario (UAT).
  • Implementar un sistema de soporte para la plataforma en donde los usuarios de la plataforma puedan reportar y dar seguimiento a cualquier problema con la misma.
  • Reportar y documentar cualquier hallazgo en el código fuente de la plataforma o diseño de la misma que pueda representar un riesgo para la integridad de los datos o la seguridad de los mismos o la plataforma en general. A su vez deberá de proponer e implementar las medidas técnicas adecuadas para su solución.
  • Generar y procesar reportes de los datos consolidados en la plataforma. A su vez el desarrollador deberá de validar la calidad de la información recolectada identificando duplicados o información inconsistente.
  • Desarrollar interfaces y pruebas de concepto de interoperabilidad para la interconexión con plataformas de terceros.
  • Deberá de aprender nuevas habilidades y frameworks de desarrollo en caso de que estos fueren necesarios para la implementación de nuevas características en la plataforma.*Diseñar en el ámbito de este documento hace referencia al diseño a nivel técnico. Sin embargo, en el caso de interfaces de usuario se espera que el desarrollador también tome en consideración buenas prácticas de diseño de interfaces (UI) y experiencia de usuario (UX) que contribuyan a facilitar el uso de la plataforma en general.2) Asegurarse que las soluciones propuestas cumplen con los requerimientos del PMA y las contrapartes a través de:
  • Coordinar con los dueños de la plataforma y contrapartes la definición y/o revisión de casos de uso de la plataforma y asegurarse que las soluciones implementadas respondan a los mismos.
  • Proponer nuevas soluciones técnicas y/o sugerir mejoras a los casos de uso existentes o cualquier caso de uso nuevo que pueda identificarse durante la puesta en marcha de la plataforma.
  • Propiciar el establecimiento de un equipo de desarrollo inter-institucional que pueda contribuir al desarrollo y mejoramiento de nuevas características de la plataforma luego de su transferencia a Gobierno.
  • Capacitar a contrapartes técnicas de Gobierno en todos los procesos de desarrollo de sistemas de los cuales el desarrollador se encuentre a cargo.
  • Desarrollar un manual de procesos que permita la transferencia de la plataforma a nivel técnico al Gobierno de El Salvador.
  • Coordinar con el equipo técnico de IT de PMA Corporativo todo lo relativo a la administración del sistema en la Infraestructura del PMA como también dar seguimiento a los procesos para la validación de características de la plataforma para su implementación en la versión de producción.3) Otras actividades
  • Toda la información y documentos de diseño e implementaciones técnicas de la plataforma disponibles hasta la fecha de su contratación.
  • Acceso al repositorio de código fuente de los componentes Web y aplicativo móvil como también de las interfaces de captura y visualización de datos.
  • Guías, políticas y lineamientos para el uso de la infraestructura IT del Programa Mundial de Alimentos.
  • Transporte desde la oficina de PMA hacia las instituciones contrapartes y viceversa para reuniones que se realicen estrictamente dentro de horarios laborales y según las normativas de PMA vigentes.Se espera que el desarrollador brinde su propio equipo de cómputo. Sin embargo, este deberá de asegurarse de que el equipo cumpla con las normativas mínimas de seguridad de la infraestructura corporativa de PMA.Se espera que el desarrollador tenga disponibilidad para desplazarse al interior del país y realizar pernoctaciones si esto fuese necesario para verificar la implementación del sistema en campo o para reuniones de capacitación a contrapartes. Para estos casos los viáticos serían cubiertos por PMA según normativa vigente.

Entregables:

  • Plan de trabajo con objetivos y actividades a ejecutarse semestralmente entregado en las primeras 2 semanas de cada período.
  • Reporte ejecutivo mensual de actividades que deberá incluir:
    • Lista de mejoras/cambios/correcciones/adiciones realizadas a cualquier componente de la plataforma durante el período.
    • Lista de actividades priorizadas para el siguiente mes.
    • Reuniones o acuerdos más importantes con contrapartes.
    • Estado del desarrollo de productos de largo plazo (Plataforma de soporte, manual de procesos, etc.)
    • Cualquier otra información que el consultor considere relevante para reportarse en el período.
  • Documentación técnica de las características implementadas (Puede ser documentación auto-generada).
  • Plataforma de soporte implementada y funcional.
  • Manual de procedimientos para la transferencia de la plataforma a gobierno.

CALIFICACIONES Y EXPERIENCIA REQUERIDA

  • Profesional de Ingeniería o Técnico en Ciencias de la Computación, Ingeniería de Software o carreras afines.
  • Pueden aplicar estudiantes no graduados de las carreras mencionadas anteriormente en tanto puedan proveer experiencia demostrable según se detalla en la siguiente sección del presente documento.

EXPERIENCIA:

· Al menos 5 años de experiencia en el desarrollo de plataformas con Java y Android a nivel de Web backend y App respectivamente.

· Experiencia en el desarrollo de interfaces de interoperabilidad entre plataformas con tecnologías heterogéneas.

· Experiencia en el desarrollo de interfaces de web front-end con frameworks de Javascript.

· Experiencia en el desarrollo e implementación de clientes con interfaces REST.

· Experiencia en procesos de transición de proyectos y coordinación de equipos de desarrollo.

· Experiencia en uso e implementación de metodologías de desarrollo ágil.

KNOWLEDGE & SKILLS:

Capacidades técnicas requeridas:

· Conocimientos fuertes en el desarrollo de aplicaciones web y plataformas en la nube con Java y Spring Framework.

· Conocimientos fuertes en desarrollo de aplicaciones móviles con Android Studio con Java o Kotlin.

· Conocimientos fuertes en control de versiones de código con GIT.

· Conocimientos en el desarrollo de interfaces de usuario con Angular u otro framework de prestaciones similares en Javascript.

· Conocimientos en el desarrollo de aplicativos que consuman APIs REST con formato de intercambio JSON/JSONP.

Es deseable que el postulante tenga experiencia en una o varias de las siguientes técnicas y tecnologías (No son estrictamente requeridas):

· Docker u otros sistemas de gestión de contenedores

· Conocimiento de otros lenguajes de programación (P.E. Python, C#, Objective-C, Otros.)

· Conocimiento sobre sistemas operativos (Linux u OS-X)

· Conocimientos sobre gestores de bases de datos NOSQL y almacenes de documentos

· Conocimientos sobre herramientas para auto-documentación de código (Javadoc, Doxygen, otros)

· Nociones sobre análisis y transformación de datos para análisis

· Altas habilidades analíticas tanto cuantitativas como cualitativas

Habilidades interpersonales:

· Habilidad para interactuar con supervisores con madurez y tacto

· Capacidad de emitir juicios de valor maduros a través de buena comunicación y habilidades interpersonales

· Espíritu colaborativo con capacidad de interactuar con un gran rango de personas de diferentes orígenes culturales con credibilidad y diplomacia

IDIOMAS:

· Nivel de Inglés técnico alto es requerido. (Debe de poder entablar discusiones técnicas a nivel de correos con mucha fluidez)

· Nivel de Inglés alto para conversaciones no-técnicas es altamente deseable pero no requerido.

· Es deseable pero no requerido el conocimiento de cualquier otro idioma oficial del Sistema de Naciones Unidas además del español (Francés, Chino, Árabe o Ruso)

Recommended for you