Developing Frogtek

El blog del Departamento de Tecnología

Oferta ingeniero SW+datos

El Grupo Frogtek es una empresa social con ánimo de lucro cuyo propósito es iluminar con información el canal tradicional para hacerlo más competitivo (y de paso ayudar a los tenderos de países emergentes y del tercer mundo a competir en mejores condiciones). Lo hacemos, principal aunque no únicamente, ofreciendo una aplicación Android que el tendero puede usar para gestionar y optimizar su negocio, y sostenemos el proyecto a través de la venta estudios de mercado basados en los datos de ventas de los tenderos que almacenamos y procesamos en nuestros servidores en Google y en Amazon.

Nuestra empresa es global y trabaja de forma distribuida. Las operaciones de venta, formación y soporte a tenderos están en México pero la creación de tecnología se ha hecho hasta la fecha en España aunque cada día más trabajamos en remoto y es menos importante dónde puedas estar. Buscamos una persona que venga a reforzar al equipo de tecnología y nos ayude a dar un salto de calidad.

¿Qué tipo de cosas hacemos en el departamento de tecnología de Frogtek?:

  • Mantener y evolucionar nuestra principal app para gestionar pequeñas tiendas. Aplicación que permite registrar todos los movimientos de sus negocios con un dispositivo móvil y un escáner de códigos de barra.
  • Crear otras soluciones para tenderos que fomenten y faciliten la recolección, procesado y explotado de datos. ¿Qué otras tareas hacen manualmente que podrían ser mejoradas con el uso de tecnología?
  • Mantener y evolucionar un back-end que se encarga de almacenar y procesar toda la información que obtenemos de las tiendas para ponerla, con la mayor calidad, en tiempo y forma, a disposición de nuestros clientes y de los propios tenderos.
  • Desarrollar herramientas internas para que nuestros compañeros de los departamentos operativos puedan monitorizar el estado de las tiendas, asegurando que todos los tenderos usan Tiendatek de la mejor manera posible, y reaccionando ante las alertas que nuestros algoritmos de calidad generan en tiempo casi real.
  • Crear prototipos o productos finales para que nuestros clientes puedan visualizar datos de mercado de una calidad y granularidad inédita en nuestro sector (tiendas de barrio en mercados emergentes).

¿Y cómo hacemos todo eso?

  • Ayudando a entender las peticiones y diseñando las soluciones que nuestros compañeros de otras áreas nos hacen, participando en los distintos comités multi-departamentales que tenemos.
  • Participando en nuestro proceso de desarrollo de código ya sea para crear nuevas funcionalidades, para optimizar nuestra infraestructura o para resolver incidencias, un trabajo variado que permite tratar con múltiples tecnologías tanto en el lado cliente como en el servidor. Esto implica:
    • Colaborar en la definición de objetivos del equipo.
    • Desarrollar y/o validar requerimientos.
    • Crear, solo o en compañía, código de calidad, legible y cubierto por tests.
    • Revisar y leer el código de otros compañeros.
    • Probar funcionalidades.
  • Colaborando en el despliegue de los productos.
  • Asesorando técnicamente dentro y fuera del equipo.
  • Aprendiendo de los demás y enseñando a los demás.
  • Integrandonos en la cultura de mejora continua del equipo basada en los datos y en algunas pinceladas de EFQM.

¿Qué buscamos?
No estamos buscando un perfil especialmente concreto, sino más bien una persona inquieta y con capacidad para adaptarse, aprender y enseñar. No buscamos necesariamente alguien que pueda acreditar experiencia en una larga lista de tecnologías. Sin embargo os ponemos aquí el tipo de cosas con las que trabajamos y que nos gustan, por si sirven de inspiración.

  • Datos, datos, datos y más datos.
  • Conocimientos Android
  • Conocimientos de programación web
  • Conocimientos de programación Python, CherryPy, Django…
  • Conocimientos de R
  • Conocimientos MySQL y SQLite
  • Experiencia con las plataforma Google App Engine, Google Big Query y AWS
  • Soltura con Linux
  • Conocimientos de Scripting (ruby, bash, python)
  • Experiencia en la plataforma de integración continua Jenkins
  • Experiencia en metodologías ágiles (Scrum, Kanban, Scrumban…)  y extreme programming (pair programming, TDD…)
  • Interés por la mejora continua
  • Alto nivel de inglés
  • Capacidad para trabajar de manera remota y flexible

También hay cosas que no conocemos demasiado, o no en profundidad, y nos llaman la atención:

  • Google Big Query, Amazon Redshift, etc
  • Amazon Kinesis
  • Spark
  • Scala
  • Hadoop
  • Arquitecturas lambda
  • Cualquier otra tecnología que venga a mejorar lo que ya tenemos

¿Qué ofrecemos?

  • Sueldo competitivo
  • Grandes posibilidades de desarrollo y aprendizaje
  • Integración en un equipo dinámico, sin miedo a aprender, cambiar y mejorar
  • Formar parte de un proyecto puntero a nivel mundial que está recibiendo los más altos reconocimientos (menciones en el MIT, premios de Vodafone en el NewYork Times…) con altas posibilidades de iniciar un crecimiento internacional en los próximos meses.
  • Horario flexible (aunque hay que reservar un rato para solaparnos en México todos los días), posibilidad de tele-trabajar hasta casi un 100% y buen ambiente (nuestra oficina está en Walqa, Huesca, si vives cerca nos vemos allí una vez a la semana, si no también podemos hacerte un hueco en nuestros standups virtuales).
  • Experiencia internacional y multicultural.

 

Si te interesa tener una primera entrevista con nuestro equipo, por favor envíame un mensaje y CV actualizado a guillermo arroba frogtek punto org

Cronología del error

En muchos artículos, incluidos muchos de los que hemos escrito, se acaba haciendo un poco de «autobombo» sobre las bondades de un proceso o de un equipo. Pero no sólo de los éxitos se aprende, también de los errores, ¡y mucho! Así que hoy te invitamos a un recorrido por parte de nuestra arquitectura y nuestras mejoras a través de un error (o dos, o tal vez tres, bueno, unos cuantos). Acompáñanos.

En Frogtek desarrollamos Tiendatek, una aplicación para Android que sirve como TPV. Para buscar ese valor añadido tenemos un botoncito en la aplicación que dirige al usuario a una web (con un webview) donde podrá obtener mucha más información sobre su stock, mejores productos, histórico, … Además tenemos una serie de APIs para usos diversos. Perdone, estamos en el 2016, si no expones una API para registrar las veces que uno va al servicio no eres nadie. Pues eso, servicios varios, que digamos, usa toda la empresa de una forma o de otra (no, lo de ir al baño no está implementado).

Comienza la historia: la motivación del cambio

Medir y mejorar tiempos de respuesta. Fin de la sección.

Hace unas semanas desplegamos una prueba de concepto para monitorizar y mejorar la forma en la que estaba expuesto un servicio. Lo que nosotros llamamos «el pedido sugerido». Al final siempre hay rincones del código y de nuestra infraestructura que reciben menos mimo del que merecerían. Y este era un claro ejemplo. ¿Un servicio con una tasa de errores del en torno al 7-8%? Un poco de chapa y pintura y ya lo tenemos en torno al 1-2% (principalmente timeouts por un socket que cierran los clientes impacientes).
Continue reading

La comunicación y las nuevas herramientas: Slack

Siguiendo con el tema de la comunicación que ha iniciado Miky, me gustaría ahondar un poquito más en el tema.

El día 1 de abril, en Zaragoza, acudí al siguiente meetup donde Francho nos explicó cómo en su empresa, Spines, usan Slack y sus distintas integraciones. Siendo el centro de estas integraciones Hubot, un bot que permite realizar una serie de automatismos e integrar servicios y acciones fácilmente con Slack.

Como buen friki que soy tengo muchas ganas de montarme mi propio Hubot y ponerlo en nuestro Slack, pero eso no fue lo que más me llamó la atención de la charla. Lo que más me tocó fue el que ellos llevarán casi toda la comunicación a través de Slack. El email lo usaban lo mínimo. Según nos contó Francho en su cuenta de correo de la empresa sólo tenía 5 mails en los dos años y pico de empresa que llevan. Para poder llegar a esto, nos comentó que la clave residía en la separación correcta de las conversaciones en distintos canales, permitiendo así la selección de las conversaciones y facilitando la búsqueda y lectura de las mismas.

Como ya comentó Miky nosotros llevamos menos tiempo con Slack y nos ha reportado ya una serie de beneficios increíbles. No tengo claro que el objetivo deba ser abandonar el email del todo, pero sí que veo que para ciertos tipos de comunicación deberíamos tender más a Slack, sobre todo en torno a emails automáticos y alertas. Además creo que el tema de los canales por conversación tiene mucho sentido. Ahora mismo sufrimos, entiendo, uno de los primeros anti-patrones de uso de Slack, que es mezclar y tener muchas conversaciones en un mismo canal. No es que tengamos un único canal, ni mucho menos, pero igual deberíamos plantearnos dividir alguno más y acostumbrarnos a hacer un buen uso de los canales.

Al fin y al cabo es lo mismo que ocurre con el email. Con un buen uso de la herramienta se puede conseguir mejorar mucho la comunicación, sobre todo su calidad y facilidad de lectura. Aplicar una herramienta nueva lleva su tiempo y se necesitan distintas iteraciones hasta que se consigue dar en el clavo. Tenemos que trabajar en ello, así que ya tengo tema para la siguiente retrospectiva.

Comunicación: ajustando una máquina compleja (Work In Progress)

Comunicación: ajustando una máquina compleja (Work In Progress)

En Frogtek trabajamos personas desde diferentes sitios de la geografía mundial. Principalmente trabajamos desde varias ciudades de tres países: México, Colombia y España. Pero también tenemos que trabajar con gente en los EEUU y otros países. Y este aspecto en una empresa, sin duda alguna, es todo un reto.

Si ahora volvemos la vista atrás se podían ver varias máquinas (una por país) trabajando cada una con su entorno, dando lo mejor de ellas mismas, y de vez en cuando interactuando con las demás. Diferentes procedimientos, diferentes expectativas y prioridades, diferentes zonas horarias, diferentes culturas, … al final demasiadas diferencias que hacían que las interacciones entre las diferentes máquinas estuvieran lejos del óptimo.

Desde hace unos meses se ha realizado un esfuerzo notable y global en toda la empresa por homogeneizar la comunicación y los procesos. Un esfuerzo donde cada una de las máquinas debe entender la forma de trabajar del resto, buscando empatía en los diversos problemas que aparecen en otros engranajes, mejorando de forma proactiva todo lo que se puede.

Todavía hace falta mucho “3 en 1”, pero esas máquinas independientes que había antaño se han convertido en varios módulos que se relacionan de forma constante los unos con los otros. Parece que los primeros pasos se han dado y ahora la máquina evoluciona de forma autónoma. Las relaciones se estrechan y se agilizan, se minimizan las esperas. ¿Qué ha cambiado en este tiempo?
Continue reading

FOSDEM y Config Management 2016

Acudir a diferentes charlas y eventos creo que es una parte imprescindible de la mejora continua de cualquier persona. Más importante todavía me parece cuando hablamos de personas que trabajan dentro del mundo de la tecnología, donde, siguiendo el tópico, todo avanza muy rápido. No es oro todo lo que reluce dentro de toda esas nuevas tecnologías, a veces tienen mucho de hype, pero lo cierto es que un año es mucho tiempo. Estar a la última en cuanto a tecnología a veces puede ser la diferencia entre un éxito y un fracaso estrepitoso.

Dentro de esa mejora continua Julio y Miky (el que escribe) tuvimos la suerte de poder ir a la FOSDEM y a la Config Management. Dos eventos que viven hermanados, pues son en días consecutivos en ciudades cercanas. Para mí ya es el cuarto año que acudo a la FOSDEM, pero el primero en el que acudo a la Conf Management. Primero explicar un poco de las charlas, pero luego, con permiso, entraré en detalles de lo que nos traemos en el zurrón de cada una de ellas.
Continue reading

Ansible: un gran poder conlleva una gran responsabilidad

Dentro de la Conferencia Agile Spain 2015 tuve la oportunidad de asistir a un taller de casi dos horas de Ansible impartido por David González. Ansible es una de esas herramientas a las que le echas el ojo pero por una cosa u otra (muchas veces pereza, de esto nadie se libra) acaba, por más tiempo del debido, en la lista “cuando tenga tiempo me hago un proyectito”. Los primeros cantos de sirena serios vinieron en febrero, en la FOSDEM 2015, llegaba la hora de mancharse un poco.

Por lo visto un taller sobre Ansible no se veía cercano a las metodologías ágiles. Y por lo visto a menos de 10 personas, sobre las cerca de 700 que iban a la conferencia, nos interesaba el taller. Una pena, pero una suerte para los que pudimos aprender, probar, debatir y compartir ideas y experiencias. Por lo visto una herramienta de configuration management (CM) no aporta nada a tener software funcionando sobre documentación excesiva o tampoco facilita la respuesta ante el cambio frente a seguir un plan.

El estado del arte

Por primera vez hace unos cuatro años empezaba a leer sobre estas herramientas de CM, y hace un poco más de tres años me metía en el barro con Puppet. Hace poco se añadía al set de tecnologías a dominar Chef, y de paso Fabric (que complementa bastante algunas carencias). A día de hoy administrar un servidor en una empresa y no utilizar alguna de estas herramientas sería como plantearse desarrollar código sin tests o sin un control de versiones. Impensable. Mala idea.
Continue reading

Seleccionando: un día de convivencia con un candidato con kata incluida

Kata en Frogtek

Si nos sigues un poquito seguro que te habrás enterado, buscamos candidatos, ingenieros de software. Detrás de un producto como Tiendatek hay muchas personas trabajando, un equipo que fluctúa y se adapta a las nuevas necesidades, algunos se han ido, otros hemos llegado, incluso algunos se van, aprenden y mejoran buscando nuevas aventuras, y vuelven con fuerzas renovadas. Nos sentimos orgullosos del equipo que formamos, y una parte importante para construir el equipo es el proceso de selección.

Si las personas sólo fuéramos recursos, números o conocimientos, la selección de personal sería muy fácil, seguramente sólo se necesitara una prueba que garantizara que en el CV no se ha mentido. Pero afortunadamente para todos, menos para RRHH, supongo, somos mucho más que números y conocimientos. Somos unos cacharros normalmente con brazos y piernas que tienen sentimientos, que tienen aficiones y afinidades. Y es que cinco personas bien avenidas garantizan mejor trabajo y durabilidad que cinco personas malavenidas.

Por eso nos gusta ofrecer a los candidatos que entrevistamos, y vemos que pueden encajar en el puesto, un día de convivencia en la oficina de Frogtek. Es un día especial. Ahora ya he vivido esa experiencia desde los dos bandos, y desde ambos dos se ve muy enriquecedora. Desde uno de los lados se ve con bastantes nervios e inquietud; acabas con la cabeza llena de demasiada información y, en mi caso, vuelves a casa con un buen dolor de cabeza. Desde el otro lado lo esperas con impaciencia, intentas enseñar y hacer que la otra persona se sienta cómoda, y al final siempre aprendes algo nuevo de la persona que ha venido.
Continue reading

Continuous learning, un ‘must’ para todos

El pasado 4 de diciembre dentro de la Conferencia Agile Spain 2015 tuve la oportunidad de asistir a una charla de Miguel Grazziotin. La charla fue justo después del descanso para comer, apenas éramos un poco más de diez personas en la sala, no entendíamos muy bien el título de la misma, pero al final, resultó ser, personalmente, una de las charlas más inspiradoras.

La charla tenía el título de “Jacket on, jacket off – Stop working and start training!”, no demasiado amigable, pero el contenido era sencillo. ¿Qué es entrenar/aprender? ¿Por qué entrenar/aprender? ¿Qué entrenar/aprender? Al final de la charla tenía un revuelo de mis propias creencias sumadas a lo que acababa de escuchar en una buena charla (aunque tal vez un poco aséptica). Nada mejor que escribir para poner orden, compartir, discutir y mejorar.

Como individuo: el aprendizaje como elemento clave

¿En el trabajo también? Desde hace ya algunos años he visto el trabajo como una oportunidad única. Entre otras cosas, trabajar es la oportunidad de aprender y vivir en un entorno positivo y exigente; una oportunidad por la que además te van a recompensar con dinero (principalmente) que te va a servir para invertirlo en más aprendizaje y vivencias. Un puesto de trabajo debe aportar de forma activa a nuestra mejoría como persona.
Continue reading

Oferta ingeniero de SW

El Grupo Frogtek es una empresa social con ánimo de lucro cuyo objetivo es ayudar a los tenderos de países emergentes y del tercer mundo, lo hacemos ofreciendo una aplicación Android que el tendero puede usar para gestionar y optimizar su negocio y sostenemos el proyecto a través de la venta estudios de mercado basados en los datos de ventas de los tenderos que almacenamos y procesamos en nuestros servidores en Google App Engine y en Amazon.

 

Nuestra empresa es global y trabaja de forma distribuida. Las operaciones de venta, formación y soporte a tenderos están en México pero la creación de tecnología se ha hecho hasta la fecha en España aunque cada día más trabajamos en remoto y es menos importante dónde puedas estar. Buscamos una persona que venga a reforzar al equipo de tecnología y nos ayude a dar un salto de calidad. Las tareas a realizar serían, entre otras, las siguientes:

 

  • Ayudar a entender las peticiones y diseñar las soluciones que nuestros clientes internos nos hacen.
  • Participar en nuestro proceso de desarrollo de código ya sea para crear nuevas funcionalidades, para optimizar nuestra infraestructura o para resolver incidencias, un trabajo variado que permite tratar con múltiples tecnologías tanto en el lado cliente como en el servidor. Esto implica:
    • Colaborar en la definición de objetivos del equipo.
    • Desarrollar y/o validar requerimientos.
    • Crear, solo o en compañía, código de calidad, legible y cubierto por tests.
    • Revisar y leer el código de otros compañeros.
    • Probar funcionalidades.
  • Colaborar en el despliegue de los productos.
  • Asesorar técnicamente dentro y fuera del equipo.
  • Aprender de los demás y enseñar a los demás.
  • Integrarse en la cultura de mejora continua del equipo basada en los datos y en EFQM.

Se requiere:

  • Conocimientos Android
  • Conocimientos de programación web
  • Conocimientos de programación Python, CherryPy, Django…
  • Conocimientos mySQL y SQLite
  • Experiencia con las plataforma Google App Engine y AWS
  • Soltura con Linux
  • Conocimientos de Scripting (ruby, bash, python)
  • Experiencia en la plataforma de integración continua Jenkins
  • Experiencia con TDD
  • Interés por la mejora continua
  • Alto nivel de inglés

Se valorará muy positivamente:

  • Cualquier otra tecnología que venga a mejorar lo que ya tenemos
  • Experiencia en metodologías ágiles (Scrum, Kanban, Scrumban…)  y extreme programming (pair programming, TDD…)
  • Experiencia con Gradle
  • Conocimientos de R
  • Experiencia en proyectos Big Data
  • Capacidad para trabajar en remoto un gran porcentaje del tiempo
Se ofrece:

 

  • Sueldo competitivo
  • Grandes posibilidades de desarrollo y aprendizaje
  • Integración en un equipo dinámico, sin miedo a aprender, cambiar y mejorar
  • Formar parte de un proyecto puntero a nivel mundial que está recibiendo los más altos reconocimientos (menciones en el MIT, premios de Vodafone en el NewYork Times…)
  • Horario totalmente flexible, posibilidad de realizar gran parte en teletrabajo y buen ambiente (nuestra oficina está en Walqa, Huesca, si vives cerca nos vemos allí una vez a la semana, si no también podemos hacerte un hueco en nuestros standups virtuales).
  • Experiencia internacional y multicultural.

 

Si te interesa tener una primera entrevista con nuestro equipo, por favor envíame un mensaje y CV actualizado a guillermo arroba frogtek punto org

La regla del boy Scout

Desde mi último cambio de trabajo le he estado dando vueltas a un tema que me parece interesante.

Por un lado en el traspaso de conocimiento que hice antes de irme de Zentyal, la persona que se incorporaba llegó con energía, cuestionándose las cosas y mejorando en general todos los sistemas que yo le estaba traspasando. Había cosas que él proponía que me costaba aceptar. Seguramente porque no quería reconocer que me había acomodado, ya no buscaba las mejoras con el mismo ímpetu y ganas; y había dejado que ciertas áreas se estancaran bastante.

Al entrar de nuevo en Frogtek sí que fui yo el que se puso a buscar dónde aplicar todo lo aprendido desde mi última vez por aquí, planteando mejoras y buscando sitios donde aplicar mis conocimientos para el provecho del equipo. Ahora voy con mucha energía y ganas, pero me da miedo que dentro de un tiempo vuelva a acomodarme otra vez y me cueste buscar mejoras y realizarlas.

Creo que el problema tiene mucho que ver con la teoría de las ventanas rotas. Al principio, al llegar, quiero mejorarlo todo porque creo que el edificio esta nuevecito, para mí obviamente lo está. Pero conforme pasa el tiempo y voy conociendo más los entresijos de la empresa, el equipo, el código… se me van rompiendo las ventanas y me va dando más pereza intentar arreglarlas. Porque me parece el estado normal, total una ventana más o menos qué más da,  ¿no? ¿ Qué importa un archivo sin usar en el repositorio, una librería desactualizada, un proceso mejorable o unos tests de más o menos?

¡¡Mucho!! Por eso creo que es muy importante La regla del boy Scout, pero no sólo aplicada al código, sino a todo. Cada vez que toquemos un archivo del repo, cambiemos una configuración de Jenkins o simplemente asistamos a una reunión del proceso. Hay que estar atentos para buscar esos pequeños cambios o mejoras que nos van a permitir poco a poco llevar nuestro trabajo, y el del todo el equipo, a otro nivel.

Hay que tener paciencia y no desesperar, no sólo los grandes refactors pueden ayudarte a saber vivir con tu deuda técnica, pequeño paso a pequeño paso se puede llegar muy lejos. A ver si soy capaz de tener paciencia y aplicarme esta última frase.

« Older posts

© 2016 Developing Frogtek

Theme by Anders NorenUp ↑