Lo bueno de charlar con programadores que trabajan con pasión es que están abiertos a contar la tecnología detrás del producto que desarrollan. En este caso, tenemos la oportunidad de charlar con Keyvan Akbary, co-fundador de Funddy y responsable de la parte técnica.
Esta joven start-up tienen las ideas muy claras y han creado una formidable infraestructura tecnológica que vamos conocer de mano de uno de sus creadores. Id tomando nota porque es una buena recopilación de herramientas que usar en nuestros proyectos. Sin duda, Funddy se encuentra muy a la vanguardia.
Pasamos brevemente a situar a la gente que no conozca aún vuestro producto ¿Podéis 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 usáis en vuestro 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.
En el frontend:
No utilizamos frameworks MVC en cliente, hemos creado una infraestructura simple ModelViewPresenter 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 os organizáis? ¿Cuál es vuestra 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 habéis seguido para montar la infraestructura. Nuestro entorno de desarrollo es una máquina virtual, similar en concepto a Vagrant. 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 pasar a 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 preproducció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é habéis 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 habéis 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.
Habéis rediseñado hace pocas días la web de Funddy ¿Cuál ha sido el foco en él que os habéis 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.
¿Reto y problemas al montar una empresa en España? Por desgracia España no es el lugar idóneo para emprender. La primera barrera con la que te enfrentas es que has de abonar la cuota de autónomo incluso aunque no estés percibiendo ningún beneficio. Los trámites burocráticos son pesados y asfixiantes, además, de puertas para adentro las ayudas están muy limitadas.
Decidimos crear una LTD en Reino Unido. Al ser un negocio online, no atado a localizaciones geográficas y ser nosotros ciudadanos comunitarios, decidimos establecernos en el país que nos proporcionaba un mejor entorno para desarrollarnos. En España nos resultaba menos interesante. Se trata de un proyecto con expectativas a largo plazo. Reino Unido nos ha facilitado mucho las cosas en este aspecto.
Gracias a Keyvan Akbary por contarnos la tecnología detrás de Funddy. Sitio web | Funddy Más información | Presentación de la charla de Funddy en Betabeers En Genbeta | Funddy, el gestor de aportaciones que facilita los pagos en grupo
Ver todos los comentarios en https://www.genbeta.com
VER 0 Comentario