CodelyTV

Entrevistas a desarrolladores y vídeos sobre buenas prácticas de programación y arquitectura de Software

Sube de nivel con CodelyTV Pro 🚀

SOLID, Domain-Driven Design, Arquitectura Hexagonal, Docker, CQRS, Microservicios, Kubernetes, Testing…

Entrevista Raúl Raja ⡈ CTO 47 Degrees

La primera vez que vimos a Raúl Raja en acción fue en la Software Craftsmanship Pamplona de 2016. Hizo una presentación de introducción a la programación funcional a base de ejemplos que ilustraban perfectamente el potencial que se esconde detrás de este paradigma, y de una forma fácil de seguir para que la curva de entrada fuera asequible. Con un discurso calmado pero contundente y que demostraba mucho trabajo y tiempo «en las trincheras» detrás. Desde entonces teníamos ganas de tener la oportunidad de sentarnos a charlar con él y darle voz en nuestra serie de entrevistas a desarrolladores.

Raúl Raja es el actual responsable técnico de 47 Degrees. Una empresa que ha puesto Cádiz en el mapa de la programación funcional y no para de publicar librerías de código abierto con una calidad y aportando un valor excepcional al ecosistema conjuntamente con charlas que, como la de Pamplona, son oro puro 👌. En la LambdaWorld tuvimos la oportunidad de hablar con él y la verdad es que da gusto escuchar su opinión al respecto del sector.

Sin más, os dejamos el vídeo de la entrevista y un desglose de los temas tratados. Si queréis seguir más de cerca a Raúl, raulraja es su Twitter 😬

Desglose de la entrevista

1:30 Primeros contactos con la informática

  • 18 años: Por aquel entonces… Parque, litronas, lo típico 😂
  • Me interesaba la programación pero lo hacía por puro amor, no era interés profesional
  • Estudié magisterio de música hasta el último año
  • Cuando quise estudiar informática en la universidad no me dejaron porque había escogido letras
  • Me fui a América con mi mujer a estudiar. Inglés sabía de las canciones de Nirvana y poco más
  • Para poder financiar los estudios estuve trabajando remotamente para empresas de España

4:24 Trabajando para Boing ✈️

  • Trabajar para una aerolínea es aburrido
  • Estuve en el programa del 787 y me encargaba de los updates de los aviones
  • Teníamos una lista de librerías aprobadas desde hace 4 o 5 años que eran las únicas que podíamos usar
  • Teníamos que programar con versiones 2.x de Hibernate cuando ya iban por la 3.x

6:40 Startup Cirque

  • Trabajábamos para poder enviar aplicaciones embedidas en emails
  • En el cliente de email se renderizaba y podía actuar
  • Era una startup que pivotó varias veces y finalmente cerró por falta de funding
  • En el equipo de programación conocí a Nick y Justin. Cuando se acabó decidimos montar 47 Degrees

7:55 Inicios 47 Degrees

  • Nuestro foco al principio era exclusivamente aplicaciones móviles nativas (Objective-C y Java)
  • Muchos clientes nos empezaban a pedir la programación del backend de las aplicaciones y decidimos apostar por Scala
  • La idea surgió de unas navidades que estaba aburrido y me puse a aprender Scala
  • Como éramos un equipo pequeño fue algo que pude introducir fácilmente sin hacer migraciones masivas

10:00 Apuesta por Scala en 47

  • Una de las cosas que me ayudó fue aprender patrones de diseño. Me di cuenta que todos esos patrones era parches o inhabilidades del lenguaje en sí mismo
  • Los patrones de diseño se convertían en «el nuevo altar de los programadores Java»
  • El 80% del código que escribimos está orientado a resolver problemas que no son del dominio sobre el que trabajamos
  • Es una industria que en ese sentido podría estar potencialmente equivocada. Pero tenía suficiente tracción como para que la gente que estaba empezando simplemente siguiera esa inercia
  • Hay ciertas comunidades donde hay demasiado fanboyismo. Creo que eso en la programación funcional ocurre un poco menos.
  • Para nada [soy Rockstar de la programación funcional]. No tengo ni puta idea de muchas cosas. Soy una persona que no está centrada en la individualidad.
  • Mi rol en 47 Degrees es que la gente tenga un nivel de programación aceptable para que como equipo puedan resolver problemas juntos. Ese es mi trabajo.

12:50 Iniciarse en la Programación Funcional

  • No sabías lo que eran los patrones de diseño cuando empezaste a programar. Ahora que ya sabes te has creado una opinión de ti mismo donde no encaja que hayan otras cosas más allá.
  • Es un dominio y una forma diferente de hacer las cosas. Si nunca lo has hecho de esa forma, te va a requerir el mismo tiempo de aprendizaje y adaptación.
  • 2 cosas básicas para empezar:
    • Funciones referencialmente transparentes
    • Inmutabilidad
  • Si trabajas en términos de abstracciones como Monad, Functor, etc, necesitas que tu lenguaje de programación soporte Higher Kinds. Si tu lenguaje no lo soporta, es muy tedioso.
  • Java, al ser un lenguaje muy aceptado en la infustria, te encuentras gente que ya sabe y no quiere salir de su estilo. El problema siempre es humano, no es un problema técnico.

18:10 Kotlin

  • Kotlin no tiene Higher Kinds, pero tenemos emulación en la librería Kategory.
  • Tenemos una propuesta para un cambio en Kotlin para introducir soporte oficial a Type Classes sin hacer hacks.
  • JetBrains oficialmente dijo que querían hacer Scala pero que compilase rápido. Por eso quitaron partes que consideran más académicas del lenguaje.
  • Librerías como Spark y Akka han hecho popular a Scala. Los programadores de backend van a tirar más a Scala que a Kotlin.
  • Se puede hacer Scala en Android, 9cards la hemos hecho así.
  • No se hace Scala en Android porque la gente no elige lenguajes por sus características, si no por factores humanos como que Google anuncie que lo soporta.
  • Depende de cada programador, tú qué eres, ¿programador del imperio o de la resistencia?

23:17 LambdaWorld y 47 Degrees

  • Siempre nos ha interesado la programación funcional y aquí en Cádiz no hay comunidad. Decidimos traernos a todos los programadores aquí y darle visibilidad a la empresa
  • 47 se fundó en Seattle, estamos basados en San Fernando (Cádiz), y Londres
  • Como nuestros clientes son internacionales, en muchos casos el trabajo remoto funciona
  • Como somos una empresa pequeña-mediana, las decisiones que tomamos las hacemos muy personales de acuerdo a lo que esa persona puede aportar

Y esos son algunos de los puntos destacados a modo de resumen de la entrevista. Si te interesa el tema, te recordamos que hemos hecho algunos posts sobre Scala y programación funcional, y que en CodelyTV Pro tenemos el curso de Introducción a Scala!

En breves publicaremos los screencasts sobre Kategory y Freestyle, subscríbete al canal para más info!

[mc4wp_form]

SHOWHIDE Comments (0)

Leave a Reply

Your email address will not be published.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Sube de nivel con CodelyTV Pro 🚀

SOLID, Domain-Driven Design, Arquitectura Hexagonal, Docker, CQRS, Microservicios, Kubernetes, Testing…