Funddy es un servicio que te facilita recaudar dinero online de forma colectiva y segura, para conseguir todo lo que te propongas. Compartimos la entrevista que GenbetaDev le realizó a uno de sus co-fiundadores KeyvanAkbary, quién cuenta entre otras cosas la infraestructura tecnológica que hay detrás de este proyecto.
Pasamos brevemente a situar a la gente que no conozca aún su producto ¿Podés contar en qué consiste Funddy?
Funddy es un servicio que te facilita recaudar dinero online de forma colectiva y segura, para conseguir todo lo que te propongas.
Entendemos que ocupa un espacio que no esta disponible en otros sites de crowdfunding, nosotros coloquialmente le llamamos “crewfunding”, busca dinero entre amigos, familia y tus círculos donde sabes que van a responder rápidamente.
¿Qué tecnologías principales utilizan en su stack tecnológico?
En backend:
- El core es PHP siguiendo el enfoque de Domain Driven Design.
- Utilizamos Symfony 2 como mecanismo de entrega web.
- MongoDB como base de datos para la persistencia de nuestro dominio.
- Redis para contadores, seguridad y sistema de colas para workers asíncronos.
- Más de 1500 tests unitarios con PHPUnit y Mockery
En el frontend:
- No utilizamos frameworks MVC en cliente, hemos creado una infraestructura simpleModelViewPresenter que nos permite manejar y reaccionar frente a los eventos del DOM. Hemos preferido utilizar CoffeeScript por el syntactic sugar que ofrece.
- Utilizamos SASS como preprocesador para nuestro CSS.
- Utilizamos Handlebars como motor de plantillas en cliente.
- Más de 200 tests unitarios crossbrowser con Mocha y Expect.
En sistemas:
- Utilizamos Puppet para la automatización de sistemas.
- Jenkins como servidor de integración contínua.
- Proxmox como sistema de gestión de máquinas virtuales.
¿Cómo se organizan? ¿Cuál es su metodología de trabajo?
Seguimos un proceso puramente iterativo. Somos cuatro en el equipo así que tratamos de ser todo lo ágiles que podemos, no queremos meter ningún tipo de overhead en procesos absurdos. Todo comienza con una idea, una sugerencia o una posible solución a un problema. Dependiendo de la prioridad que asignemos,gracias a la participación de todos nosotros e influencia del feedback recibido por parte de nuestros usuarios, estos conceptos empiezan a tomar forma hasta que se convierten en una definición formal de una nueva funcionalidad.
Llegados a este punto cualquiera de nosotros puede tomar las riendas del desarrollo según responsabilidades. Tenemos un tablón donde podemos ver el estado de todos los desarrollos en contexto y tener un overview general del proyecto.
¿Podrías describir los pasos que han seguido para montar la infraestructura?
Nuestro entorno de desarrollo es una máquina virtual, similar en concepto aVagrant. Un Debian con un un agente de Puppet que asegura el mismo entorno que en producción. Actualmente seguimos el approach de feature branch,por cada nueva funcionalidad creamos una rama paralela de desarrollo que al final acaba integrada con la rama principal. Estamos trabajando duro para pasara feature toggle en un futuro no muy lejano. Antes de cada deploy se ejecutan de forma automática la suite de tests en el servidor de integración contínua y si todo va bien se despliega a pre producción. Tras una última revisión rápida pasa finalmente a producción.
Un tema que interesa mucho a la gente que comienza un startup como ir gestionando la escalabilidad ¿Qué han usado para ello? Problemas / Ventajas
Hemos tomado muchas decisiones relacionadas con este ámbito, quizás nos hemos preocupado por ello en exceso. Hemos atacado primero los cuellos de botella habituales como la persistencia o escalabilidad de sistemas. Además de muchas otras razones, utilizamos MongoDB por su facilidad a la hora de escalar y por tecnologías que nos ayudan enormemente como GridFS. A nivel de sistemas, hemos confiado en Puppet y Proxmox para un escalado de máquinas fácil rápido y flexible. Levantar un nuevo frontal nos exige tan solo un par de minutos.
¿Qué problemas han encontrado al implementar pagos con PayPal?¿Algún truco para no sufrir quebraderos de cabeza? ¿Alguna API más?
Hemos tenido que validar nuestra aplicación y cumplir con estrictas normas de servicio (como límites de campañas, cantidades y usuarios). Valida tu aplicación lo antes posible y busca librerías que os hagan la vida más fácil.
La modalidad de pago que utilizamos con PayPal es difícil de igualar por sus competidores pero nos encantaría poder incorporar otros métodos de pago como TPVs virtuales, Stripe o PayMill.
¿API de Funddy abierta? ¿Aplicaciones móviles?
Esta en nuestro roadmap. En estos momentos estamos volcados en el desarrollo de las funcionalidades Pro como estadísticas, campaña privadas, recompensas, widgets o portada con vídeo.
Sin duda es un punto importante en nuestro desarrollo. Liberar una API abierta forma parte de uno de nuestros valores más importantes, “Open”, queremos que tengas la libertad de utilizarnos para lo que quieras. De la misma forma las apps móviles son un punto fundamental en nuestro futuro y su desarrollo avanzará a la par que el API.
Has rediseñado hace pocas días la web de Funddy ¿Cuál ha sido el foco en él que se han centrado para el nuevo diseño y la implementación de funcionalidades?
Nos hemos centrado en potenciar los mensajes, ser más claros y transparentes a través de la simplificación de la interfaz y funcionalidades.
Fuente: GenbetaDev
- Encuesta septiembre 2021: ¿Cómo crees que afectan las tecnologías de la información en la educación? – 6 septiembre, 2021
- ¡Ya llega Programmer’s Week 2021! – 3 septiembre, 2021
- Encuesta agosto 2021: ¿En qué sector IT te desarrollas o te gustaría desarrollarte? – 6 agosto, 2021
Deja una respuesta