7. Ahora en serio… *
* Aunque la TV enorme + PS3 + Rock Band y
eventos como irse de Paintball no son de broma
8. Qué es Tuenti
• Por invitación: Menos amigos, pero reales
• Preocupada por la privacidad
• Comentarios, Fotos, Mensajes
privados, Eventos, Chat, VideoChat, Páginas/Grupos,
Videos, Juegos, Sitios…
9. Qué es Tuenti (en números)
• +12.000.000 usuarios
• +100 minutos de media de uso diario
• +200.000.000 mensajes de chat / dia
• +4.000.000 fotos subidas al dia en picos
• +30.000.000.000 page views / mes
• +35.000 peticiones web / seg. en picos
• Picos de 12 Gbps CDNs incluidos
• 4 Gbps desde el datacenter
• +1.000 servidores
• +250 empleados (de +15 nacionalidades)
10. ¿Quién es Tuenti?
• Tech
• Frontend:
• Ca$hMoney, Community, Core, Apps, Interactive, Local, Video
• Mobile core, Client Apps
• Tu (MVNO)
• Framework/Architecture
• Backend, Scalability, Stats, Images
• Systems
• IT
• Dev-Tools
• Testing Framework
• QA
• Design & UX
11. ¿Quién es Tuenti?
• Human Resources
• User Support & Translation
• Sales
• Administration
• Legal
• Finances
• …un gran equipo
12. ¿Quién forma un equipo típico de tech?
• 2+ Ingenieros de Frontend
• 1+ Ingeniero de Backend
• 1 Diseñador
• 1 QA engineer
• 1 Team Lead
• 1 Product Manager
• Algunos equipos funcionan más como un pool
de recursos
13. Equipos: Frontend
• Creación de los componentes visuales de
Tuenti
Ejemplos:
• Desde las páginas de la web a un cliente de
chat en Javascript o el videoplayer…
• Grupos, Tuenti Sitios…
• Plataforma para juegos: Highscores, juegos
recientes, invitar a amigos a juegos…
• Diferentes componentes dentro de una página
16. Equipos: Frontend
• Trabajamos junto con diseñadores product
managers, y empleamos componentes creados por
backend
• Trabajo en equipo
• PHP, Javascript, Flash…
• Tuenti usa AJAX en todas las páginas
• Sensación multitarea (navegar + chat +
videoplayer, todo a la vez)
• Carga de páginas mas rápida
• Pero… cada navegador tiene diferencias
• Sub-equipos:
Interactive, Core, Local, Cashmoney, Community, …
17. Equipos: Mobile & Client Apps
• Mantenimiento y mejora del sitio web móvil
• Desarrollo de aplicaciones nativas para móviles
(J2ME, Blackberry, Android y iPhone)
18. Equipos: Mobile & Client Apps
• Desarrollar una web móvil es más complejo de lo que
parece
• Markup compatible, y sin Javascript
• Versión con Javascript muy limitado para teléfonos
modernos
• Subida de fotos via web móvil*, sin aplicación
• Cada aplicación nativa presenta diferentes problemas
y retos a solventar
• Frecuentes actualizaciones añadiendo nuevas
funcionalidades de su hermana mayor (la web)
* Depende del modelo de teléfono
19. Equipos: Framework
• Mantenimiento del Frontend Framework actual (PHP)
• Desarrollo de un nuevo Framework con un mejor
Javascript, mayor simpleza, mayor rapidez…
20. Equipos: Backend
• Desarrollar un sistema que aguante una carga
enorme de datos y de tráfico
• Reducir el gasto de recursos y CPU
21. Equipos: Backend
• +12M de usuarios no se almacenan en una
simple tabla de base de datos… Solución:
Particionado (dividir datos según un algoritmo)
• Proporcionar a los equipos de Frontend
componentes que esconden la complejidad de
acceder a granjas de servidores
• Cacheo de datos: Leer de memoria es más
rápido que de DB
• Diseño de complejos algoritmos, como por
ejemplo sugerencias de amigos
23. Equipos: Dev-Tools
• Desarrollo local
• Desarrollo contra dev. server y/o VMs
• Entornos de pruebas
• Entornos de pre-producción
• Despliegue a producción
• Herramientas de localización, chequeo de estilo
y normas de codificación, comprobación de
errores, minimización de código
HTML, Javascript y hojas CSS…
25. Equipos: Testing Framework
• Detectar fallos lo antes posible: Un error en
producción puede quedar en un susto, pero
también puede ser catastrófico
• Permitir a los desarrolladores saber si su nuevo
código rompe algo del resto del site
26. Equipos: Quality Assurance
• Tests manuales y con diferentes browsers
• Reportar y gestionar bugs al resto de equipos
27. Equipos: Systems
• Granjas de hardware especializado:
Frontends, DB, Caching, Stats,…
• Monitorizar fallos de hardware, congestiones de
red, caidas de procesos…
28. Equipos: IT
• Gestionar redes con Windows, Linux y Macs
• Gestionar gente en diferentes plantas y oficinas (2
en Madrid y una en Barcelona)
• Permitir trabajo remoto de forma segura
29. Equipos: Design & User Experience
• Asegurarse que todo Tuenti tenga un aspecto
homogéneo y fácil de usar
• Belleza dentro de la simplicidad