by MC

Hackweek 2016


¡Aquí estamos de nuevo!

Queremos compartir nuestra experiencia acerca de la última hackweek donde todos los flymates del equipo de ingeniería hemos pasado unos días juntos hackeando.

Bueno, por poner en contexto, el fin ha sido sacar al equipo de la zona de confort y dar rienda suelta a la imaginación para poder implementar ideas que no se han llevado a cabo en el día a día normal de trabajo.

Esta vez el destino ha sido Mar de Fulles una zona arraigada a la naturaleza y con un especial cuidado por los detalles ¡un lugar de diez!

Mar de Fulles
Mar de Fulles

A lo largo de la semana hemos estado trabajando en muchas ideas, algunas de ellas son estas:

Crear un panel de información utilizando una Raspberry

El panel, que podemos llamar Flydash, era el proyecto con el que pretendíamos tener pantallas de TV autónomas repartidas por diferentes partes de la oficina donde ver ciertos indicadores (tanto de ocio como de negocio).

El proyecto se compone básicamente de dos partes: una hardware y otra software.

  1. La hardware consta de una Raspberry pi 3 que conectamos vía HDMI a las pantallas de televisión, elegimos raspbian como sistema operativo y la configuramos para que arrancase un navegador a pantalla completa nada más bootear el sistema.

  2. En la parte software implementamos un sistema usando la gema Dashing-io, que permite interactuar vía API rest con los distintos widgets que elijamos en el dashboard.

Omar comenta que, aunque dio tiempo durante la hackweek, la idea era gestionar la flota de raspberry usando Ansible para indicarle al navegador de la Raspberry el dashboard de dashing que debería consumir.

Y este es el resultado final, donde también, a través de Slack, podemos cambiar la frase del día y levantar unas risas (siempre queda un hueco para estas cosas…)

Mejora de la página interna de error

La antigua página 500 no era una obra de arte y por eso Paula, Raúl y MCarmen decidieron darle otro toque incluyendo un juego tipo Flappy Bird al estilo Flywire como se puede ver aquí:

Para implementarlo utilizamos Phaser un framework para crear juegos con canvas en JavaScript que te ofrece muchos recursos desde el principio como pueden ser las físicas que aplicar a los objetos (simular gravedad, vuelo…), las colisiones entre ellos, los controles etc

La idea para el juego era simular cómo viajan los pagos entre cuidades y para ello escogimos Valencia y Boston ya que es donde tenemos nuestras oficinas principales.

Mientras volamos podemos ver que aparecen edificios de una u otra ciudad y con el tiempo, la velocidad del juego aumenta.

Pronto teníamos a todos con ganas de jugar y hackearlo ;)

Estado de los servicios que utilizamos

Jose Luis promovió un proyecto para mejorar la velocidad con la que fluye la información entre compañeros para que cuando alguien tenga un problema, se pueda acudir a algún sitio para reconocer de un vistazo rápido si los servicios que necesitamos están activos o no.

Ya teníamos un bot que nos avisaba puntualmente de estos problemas pero así podríamos tener un dashboard que sería algo mucho más útil y simple, tipo semáforo/status o similar.

Vicente, Sam y Javar trabajaron sobre cuál podía ser la arquitectura que mejor pudiera ser soportada, mejor se comportara ante cambios del sistema y que además fuera fácilmente adaptable.

Para ello, trabajamos en tres capas independientes.

  1. Un parte web, puramente front-end, que montamos sobre Metronic, atacando ciertos endpoints.
  2. Una segunda parte de persistencia/storage, sobre redis, que era consultada exponiendo esos endpoints.
  3. Una tercera parte con dos figuras muy unidas: la evaluación y los doctores.

La evaluación, como bien aporta la palabra, extraía y contenía la información a evaluar por los doctores. Depende de donde viniera la información, la evaluación era de un tipo u otro. Una vez la evaluación ya contenía la información final a evaluar, son los doctores los que dotan de inteligencia a la app para saber intuir qué nos dicen esos datos y, por tanto, en cual estado estamos.

Finalmente, dicho estado extraído por los doctores quedaba guardado en la capa de persistencia y quedaba expuesta por los endpoints pertinentes para su pintado en la web. Simple, rápido y muy efectivo.

Toda la maqueta y los test de integración se soportaron sobre docker con docker-compose. Eso facilitaba la construcción y nos hacía probar rápido.

Dicho y hecho. El resultado final del concepto quedó escueto pero funcional. Ahora toca trabajar para dotarlo de mayor información e integrarlo por completo.

Flychallenges

Debido a que en los ultimos meses se ha buscado desde del departamento de recursos humanos cómo mejorar el entorno laboral y sabiendo que nos gusta cuidar e incrementar nuestra actividad fisica (ya que gran parte de los puestos de trabajo que tenemos son muy sedentarios) para la hackweek nos pareció buena idea unir estas tendencias.

Puesto que la mayor parte de nosotros disponemos de dispositivos para mantener un track de la actividad física diaria que realizamos, Pedro pensó en buscar opciones que ya existen en el mercado e incluirlo en el equipo para crear retos entre compañeros.

Encontramos los siguientes tipos de webs o apps:

  1. Business: bastante orientadas a empresas
  2. Retail: orientadas al consumidor final, suelen ser simples y estar disponibles en formato web y diferentes dispositivos. Dentro de esta categoria tenemos: Deportes: que trackean prácticas deportivas como correr, nadar, ciclismo, fitness… Challenges: permiten ajustar cualquier tipo de reto desde pasos necesarios semanales, clases de yoga hasta jugar con niños en el parque.

Nos centramos en probar aquellas del segmento “Retail” dedicadas a “Challenges” puesto que son más divertidas y para todo tipo de públicos (como Walkertracker, Challenge Runner, Everymove y Strideckick).

Tras analizar pros y contras nos quedamos con Strideckick que es bastante fácil de manejar y hacer el setup, dispone de trackeo en tiempo real, tiene una consola de administrador bastante completa y se pueden crear y compartir retos muy divertidos.

Dar cariño a los tests y a los flymates

Jokin hacía tiempo que quería refactorizar un script de un test end-to-end que suele ejecutar cada vez que quiere validar que un montón de funcionalidades y relaciones que tenemos en nuestra plataforma siguen en el sitio. El problema de este script es, que a base de mantenerlo él se había convertido en su conocedor y cada vez que teníamos un problema, le tocaba a él solucionarlo. Por ello le dió una vuelta y lo refactorizó junto con Ángel, que se ofreció a ayudarle y consiguiendo pasar de un script de 400 líneas de código a otro de apenas 60 que cualquiera con un conocimiento del contexto puede entender y por lo tanto mantener.

Además, como cada día por la noche volvía a casa, terminó trayendo comida o cediendo un asiento del coche a alguien. Así, en cada viaje estaba ayudando al grupo a solucionar un problema concreto, unas veces a alguien que tiene que volver a casa y otras, apareciendo a las 10 de la mañana con ¡un kilo de jamón cortado en lonchas y media docena de barras de pan! Y de pronto todo son sonrisas en el equipo :)

Rediseño del blog de ingeniería

¿Se nota verdad?

Salva, Álvaro y Rubén se dedicaron a ello. Ha sido un trabajo con cambios a varios niveles, tanto de diseño como de código.

La cabecera ahora es el logo del equipo de Flywire Ingeniería y los posts tienen una división más clara. Además a la hora de compartir un único post, el foco queda en el texto de una forma mucho más agradable que la antigua.


Por supuesto esto no ha sido todo, también se ha lidiado con otros temas como: crowdfunding, soportar otras monedas o desarrollar nuevas funcionalidades que notifiquen a los usuarios para mejorar la experiencia que ofrece Flywire.

¡Ah! sí… también nos fuimos de karting.

El hecho de hacer un mix de nuestras pasiones ha resultado gratificante (programación, diseño, deporte, fotografía… ) al final, hemos unido trabajo duro con bienestar.

Vamos ¡una semana bien completa!

¿Quieres estar al tanto de todo? síguenos la pista en Twitter