close navigation menu
27 de may. de 2021

Tecnología

Cómo empezamos a modularizar la aplicación de Fintual

Mientras más crece el código de una aplicación, más nos cuesta encontrar el archivo que queremos y es más difícil debuggear. Llega un punto en el que el código ha crecido tanto y maneja tantas funcionalidades que los equipos ya no pueden conocerlo entero y mantenerlo, en especial los desarrolladores nuevos. La curva de aprendizaje se empieza a complicar.

Evolución de la curva de aprendizaje del código de Fintual


El primer commit de Fintual fue hace 5 años. Hoy vamos en más de 33.500 commits y contamos con más de 435.000 líneas de código. Estamos en un punto de inflexión entre la posibilidad - o no - de tener programadores que conozcan prácticamente todo el código de Fintual. Y como estamos creciendo mucho en desarrolladores y en código, tuvimos que tomar una decisión de cómo manejarlo.

Crecimiento del código de Fintual construído con la herramienta git-of-theseus

En Fintual, toda nuestra aplicación corre en un monolito sobre Ruby on Rails (RoR). Este framework web, basado en el clásico Model View Controller (MVC), tiene la particularidad de que asume configuraciones y comportamientos estándar y potencia la reutilización de código. En palabras simples, hace muchas cosas como “magia” de la que no te tienes que preocupar.

Si conoces cómo funciona RoR, la magia es de gran ayuda. Permite desarrollar más rápido y con menos código. Esto, sumado a una estructura ordenada MVC, facilita un orden en los archivos y clases, en donde no es difícil encontrar dónde se hace cada acción, modificar y extender funcionalidades.

Pero cuando empiezas a crecer y el código se multiplica se complica la situación. Empezamos a generar namespaces para ordenar el código y a separar las responsabilidades de clases en otros tipos de componentes más allá de un MVC. En el monolito tenemos 19 tipos de componentes además de models-views-controllers.

Cómo manejar el crecimiento en código

La primera opción es separar al equipo en especializaciones de desarrollo y que cada equipo maneje su código. Es decir, subdividir en los clásicos teams de backend, frontend web y frontend mobile. Pero en Fintual somos todos Full Stack y no hay mucho interés en especializarse así por ahora. En realidad es bacán poder desarrollar una funcionalidad de manera completa. Da más sentido de pertenencia y el impacto percibido es mayor.

Otra opción es dividir el monolito en distintos microservicios, es decir, distintas aplicaciones modulares, donde cada una se ocupa de una tarea y estas se comunican entre sí para construir un producto final. Pero en Fintual no somos muy fanáticos de los microservicios y un approach monolítico nos ha funcionado mejor.

Andrés, CTO de Fintual, defendiendo a los monolitos

¿Qué hicimos entonces? Empezamos a modularizar la aplicación en distintos engines y gemas de RoR.

Engines y gems

Un engine es una especie de mini-aplicación web con prácticamente toda la API y estructura que ofrece Ruby on Rails. Es decir, puedes manejar controladores, modelos, vistas, rutas y migraciones y bases de datos tal como lo harías con una aplicación RoR normal.

Pero ojo. No es un microservicio, ya que lo usamos para extender nuestra main-app. Esto significa que el contenido del engine corre en el mismo servidor, dentro del mismo proceso y contexto y usa la misma base de datos que la main-app, añadiendo sus migraciones y clases. El ejemplo más conocido es el engine de autenticación Devise.

Por otro lado están las gemas. A diferencia de un engine, no necesitan el motor de Rails, sino que son plain Ruby. En otras palabras, no cuentan con un modelo MVC ni manejan bases de datos. Es útil cuando, por ejemplo, queremos construir un Toolkit de utilidades o hacer un wrapper de una conexión a un servicio externo.

La gracia de modularizar la aplicación en engines y gems está en que podemos aislar funcionalidades o comportamientos en “mini-proyectos”.

Por ejemplo, cuando alguien quiera hacer un cambio en la funcionalidad de Fintual del manejo de los fondos mutuos, basta con que vaya al engine de Accounting. Será mucho más fácil encontrar los archivos que debe revisar y modificar. Y más importante, cuando entra un dev nuevo puede comenzar por algunas funcionalidades - engines - en vez de volverse loco mirando una main-app gigante.

Cómo empezar con Engines y Gems

Ahora que conocemos estas alternativas, ¿cómo determinamos si conviene extraer un feature de la main-app a un engine o gem? Lo que hacemos en Fintual es evaluar si vale la pena pensar cada nuevo feature como una extensión de la main-app. En otras palabras, hay que preguntarse si es posible desenchufar esta funcionalidad de la main-app sin romperla.

Un ejemplo es nuestro feature de referidos, parecido al programa de afiliados de Shopify, Amazon y Uber. El programa de referidos permite a cada usuario recomendar Fintual a sus conocidos, y a cambio ganan un 1% del saldo promedio que mantienen sus referidos en su primer año en Fintual. Referidos es una funcionalidad completa que se podría encender y apagar sin afectar el core.

Y bueno, ¿cómo determinamos si hacerlo en una gema o un engine? Nos preguntamos si el feature que quiero desarrollar debe almacenar datos y tiene un comportamiento web. Si la respuesta es sí, entonces conviene desarrollar un engine. Si la respuesta es no y nuestra feature es lógica pura, basta con desarrollar una gema.

Continuando el ejemplo, el feature de referidos sería un engine, ya que tiene sus propios modelos de datos, controladores y vistas.

A medida que creamos nuevos engines nos dimos cuenta que podíamos abstraer gran parte del proceso, por lo que decidimos crear nuestro propio generador de engines. Si eres un desarrollador de Rails, te invitamos a usar y contribuir al desarrollo de esta herramienta mediante el repositorio que liberamos para el público general.

Un tema importante a tener en cuenta es el manejo de dependencias. En una gema es más simple, porque no suele depender de clases u objetos específicos de nuestra main-app. El lenguaje que habla es el de Ruby, recibiendo ciertos objetos estándar (un string o hash por ejemplo) y ejecutando cierta acción.

Pero un engine, dado que maneja controladores, rutas, vistas y modelos tal como lo hace nuestra main-app, puede que requiera interactuar con objetos de la main-app directamente. Por ejemplo, el engine Devise utiliza el modelo User de nuestra main-app para el manejo de los usuarios y lo extiende. ¿Cómo manejamos esta dependencia de manera correcta?

Una forma es definir las dependencias desde la main-app en el módulo principal del engine. Por ejemplo, el engine de referidos depende de los modelos de User y UserDeposit de la main-app y se construye así:

require "referrals/engine"
 
module Referrals
  extend self
 
  MODULE_DEPENDENCIES = %i{
    user_deposit_model
    user_model
  }
 
  mattr_accessor *MODULE_DEPENDENCIES
 
  def configure
    yield self
    require "referrals"
  end
 
  class << self
    MODULE_DEPENDENCIES.each do |symbol|
      define_method(symbol) do
        class_variable_get(:"@@#{symbol}").constantize
      end
    end
  end
end

De esta forma, cuando en la main-app inicializamos el engine de referidos, debemos setear estas configuraciones. Acá le decimos qué modelo de la main-app debe usar el engine.

Referrals.configure do |config|
  config.user_deposit_model = "UserDeposit"
  config.user_model = "User"
end

Luego podemos usar esta configuración dentro del engine. Por ejemplo, acá queremos obtener quién refirió al usuario actual, a partir de una búsqueda en el modelo User. Pero como no conocemos el modelo User directamente, usamos el que nos proporciona la configuración Referrals.user_model.

def referrer_from_code(referrer_code)
  Referrals.user_model.find_by(referrer_code: referrer_code)
end

Además, como un usuario puede referir, queremos que el modelo User tenga una relación de has_many con sus referidos. Podríamos ir al modelo User de la main-app y agregar la relación directamente, pero si desconectamos el engine, se rompería.

Para manejar esta dependencia correctamente, lo que hacemos es añadir dinámicamente funcionalidades a la clase User.

Referrals.user_model.class_eval do
  has_many :referred_users
end

Por último, aislamos la ejecución de código condicionado a la disponibilidad de un engine, para no romper nuestra main-app en caso de que una extensión no esté cargada. Una buena forma de hacerlo es crear un Util que verifique la presencia de un engine.

class EnginesUtil
  def self.with_available_engine(engine_name, &block)
    if available_engine?(engine_name)
      block.call
    end
  end
 
  def self.available_engine?(engine_name)
    Object.const_defined?("::#{engine_name.to_s.camelize}")
  end
end

Así, si por ejemplo en la vista del header, que está en la main-app, queremos agregar un botón a Referidos, tenemos que chequear que el engine esté presente y lo hacemos así:

if EnginesUtil.available_engine?(:referrals)
  link_to "Referidos", app_referrals_path
end

Con este approach hemos logrado hasta ahora extraer funcionalidades de la main-app a 23 engines y 3 gems. Si bien, aún nos queda bastante por modularizar, ya se nota mayor orden y desacoplamiento del código. Hoy es más fácil encontrar el archivo que tenemos que modificar cuando queremos resolver un bug o entender el contexto de funcionamiento cuando queremos agregar un nuevo feature.

Incluso para ordenarnos en lo que nos queda por modularizar, también recurrimos a un engine. El deprecated_main, al que movimos todas los componentes pendientes de extraer.

Pero lo más bacán es que cuando empezamos los proyectos recientes una de las principales discusiones es si se debe desarrollar el feature solicitado dentro de un engine o no. Así que no solo estamos ordenando el código pasado, sino también el que desarrollamos en el presente.  Ya existe una mentalidad de modularización en los desarrolladores de Fintual.


Si te gustó este artículo y tienes un comentario o algo para complementarlo, escríbenos a cartas@fintual.com. Todas las semanas publicamos las cartas destacadas de nuestros lectores.

LO ÚLTIMO DE ECONOMÍA

VER MÁS
Cuenta Especial para el Ahorro (CEA) - Q&A

Conocimiento Financiero

Cuenta Especial para el Ahorro (CEA) - Q&A

por Leonardo Castillo
El tipo de cambio bajó a mínimos de 2015 | Blog en vivo🎙

Mercados

El tipo de cambio bajó a mínimos de 2015 | Blog en vivo🎙

por Priscila Robledo
Reddit sale a la bolsa

Conocimiento Financiero

Reddit sale a la bolsa

por Florencia Edwards, José Ignacio Flores
La actividad en Chile va por buen camino | Blog en vivo🎙

Mercados

La actividad en Chile va por buen camino | Blog en vivo🎙

por Priscila Robledo
La Fed le dio un impulso a los mercados | Actualización de mercado al 22 de marzo 📈

Mercados

La Fed le dio un impulso a los mercados | Actualización de mercado al 22 de marzo 📈

por Priscila Robledo, Ronald Tichauer
Banxico finalmente recortó su tasa | Actualización de mercado al 22 de marzo 📈

Mercados

Banxico finalmente recortó su tasa | Actualización de mercado al 22 de marzo 📈

por Priscila Robledo, Ronald Tichauer
Reddit sale a la bolsa

Conocimiento Financiero

Reddit sale a la bolsa

por Florencia Edwards, José Ignacio Flores
Los Cetes y SOFIPOS pasarán de moda: ¿cómo prepararte para la bajada de tasas?

Conocimiento Financiero

Los Cetes y SOFIPOS pasarán de moda: ¿cómo prepararte para la bajada de tasas?

por Priscila Robledo, Fernando Suárez
¿Invertir en dólares hace sentido para alguien que vive en México?

Conocimiento Financiero

¿Invertir en dólares hace sentido para alguien que vive en México?

por Omar Larré
Cómo recibir saldo a favor en la declaración anual del SAT con un PPR, especialmente si recibiste un bono

Conocimiento Financiero

Cómo recibir saldo a favor en la declaración anual del SAT con un PPR, especialmente si recibiste un bono

por Leonardo Castillo
Rebalanceo de portafolios primer semestre del 2024

Conocimiento Financiero

Rebalanceo de portafolios primer semestre del 2024

por Fernando Suárez
Rebalanceo de portafolios primer semestre del 2024

Conocimiento Financiero

Rebalanceo de portafolios primer semestre del 2024

por Fernando Suárez
Sociedad conyugal o separación de bienes, ¿cuál es el régimen matrimonial más conveniente?

Conocimiento Financiero

Sociedad conyugal o separación de bienes, ¿cuál es el régimen matrimonial más conveniente?

por Alejandra Diez
Cambios en la comisión y series de Streep

Conocimiento Financiero

Cambios en la comisión y series de Streep

por Omar Larré
Sube el cobre y baja el dólar | Actualización de mercado al 15 de marzo 📈

Mercados

Sube el cobre y baja el dólar | Actualización de mercado al 15 de marzo 📈

por Fernando Suárez, Priscila Robledo

LO ÚLTIMO DE TECNOLOGÍA

VER MÁS
Tarjeta Bip! QR: un sistema que promete pero todavía está en rodaje

Tecnología

Tarjeta Bip! QR: un sistema que promete pero todavía está en rodaje

por José Ignacio Flores
Kuiper de Amazon: la competencia de Starlink

Tecnología

Kuiper de Amazon: la competencia de Starlink

por Marisol Acuña
¿Se puede hackear la Bip!?

Tecnología

¿Se puede hackear la Bip!?

por Rodrigo Basoalto
Elon Musk vs Sam Altman: el futuro de la inteligencia artificial

Tecnología

Elon Musk vs Sam Altman: el futuro de la inteligencia artificial

por Pato Sullivan
Elon Musk vs Sam Altman: el futuro de la inteligencia artificial

Tecnología

Elon Musk vs Sam Altman: el futuro de la inteligencia artificial

por Pato Sullivan
¿Cómo nos va a cambiar la Inteligencia Artificial para crear videos?  Podcast con el cofundador de Runway, Alejandro Matamala

Tecnología

¿Cómo nos va a cambiar la Inteligencia Artificial para crear videos? Podcast con el cofundador de Runway, Alejandro Matamala

por Florencia Edwards
¿Cómo nos va a cambiar la Inteligencia Artificial para crear videos?  Podcast con el cofundador de Runway, Alejandro Matamala

Tecnología

¿Cómo nos va a cambiar la Inteligencia Artificial para crear videos? Podcast con el cofundador de Runway, Alejandro Matamala

por Florencia Edwards
Arc: el nuevo navegador que todos deberían estar usando

Tecnología

Arc: el nuevo navegador que todos deberían estar usando

por Marisol Acuña
Arc: el nuevo navegador que todos deberían estar usando

Tecnología

Arc: el nuevo navegador que todos deberían estar usando

por Marisol Acuña
Google prohibirá las cookies de terceros: ¿cómo se relacionan con nuestros datos privados?

Tecnología

Google prohibirá las cookies de terceros: ¿cómo se relacionan con nuestros datos privados?

por Marisol Acuña
Google prohibirá las cookies de terceros: ¿cómo se relacionan con nuestros datos privados?

Tecnología

Google prohibirá las cookies de terceros: ¿cómo se relacionan con nuestros datos privados?

por Marisol Acuña
¿Realmente compras como multimillonario? Temu, la app de compras que marca la pauta

Tecnología

¿Realmente compras como multimillonario? Temu, la app de compras que marca la pauta

por Alejandro Lovera
Los jueces de línea del tenis: con fecha de vencimiento por el grito robótico

Tecnología

Los jueces de línea del tenis: con fecha de vencimiento por el grito robótico

por Sebastián Varela
¿Realmente compras como multimillonario? Temu, la app de compras que marca la pauta

Tecnología

¿Realmente compras como multimillonario? Temu, la app de compras que marca la pauta

por Alejandro Lovera
Los jueces de línea del tenis: con fecha de vencimiento por el grito robótico

Tecnología

Los jueces de línea del tenis: con fecha de vencimiento por el grito robótico

por Sebastián Varela

LO ÚLTIMO DE CIENCIA

VER MÁS
Escolares chilenos publican paper en prestigiosa revista científica sobre electricidad en plantas

Ciencia

Escolares chilenos publican paper en prestigiosa revista científica sobre electricidad en plantas

por Timothy Marzullo
Adiós a la peor de las preguntas: ¿cuál es tu pretensión salarial?

Ciencia

Adiós a la peor de las preguntas: ¿cuál es tu pretensión salarial?

por Sara Vásquez
El Dorado de los lingüistas: el corpus de La Nación que podría alimentar a una inteligencia artificial chilena

Ciencia

El Dorado de los lingüistas: el corpus de La Nación que podría alimentar a una inteligencia artificial chilena

por Ricardo Martínez
La física detrás de los superconductores a temperatura ambiente

Ciencia

La física detrás de los superconductores a temperatura ambiente

por Agustin Escobar
La física detrás de los superconductores a temperatura ambiente

Ciencia

La física detrás de los superconductores a temperatura ambiente

por Agustin Escobar
Gonkoken nanoi: lo que podría revelar el nuevo dinosaurio descubierto en la Patagonia Chilena

Ciencia

Gonkoken nanoi: lo que podría revelar el nuevo dinosaurio descubierto en la Patagonia Chilena

por Daniela Flores
¿Cómo ser más productivo? (vol. II) Neurociencias & IA

Ciencia

¿Cómo ser más productivo? (vol. II) Neurociencias & IA

por Maximiliano von Jentschyk Makuc
La ciencia y el marketing detrás del fentanilo, el opioide sintético que está destruyendo Estados Unidos

Ciencia

La ciencia y el marketing detrás del fentanilo, el opioide sintético que está destruyendo Estados Unidos

por Florencia Edwards, Pato Sullivan
La ciencia y el marketing detrás del fentanilo, el opioide sintético que está destruyendo Estados Unidos

Ciencia

La ciencia y el marketing detrás del fentanilo, el opioide sintético que está destruyendo Estados Unidos

por Florencia Edwards, Pato Sullivan
¿Cómo ser más productivo? (vol. I): el estado de flow y cómo conseguirlo

Ciencia

¿Cómo ser más productivo? (vol. I): el estado de flow y cómo conseguirlo

por Maximiliano von Jentschyk Makuc
Inteligencia Artificial: ¿de qué lado estás?

Ciencia

Inteligencia Artificial: ¿de qué lado estás?

por Gonzalo Mena
Inteligencia Artificial: ¿de qué lado estás?

Ciencia

Inteligencia Artificial: ¿de qué lado estás?

por Gonzalo Mena
La evolución de la música pop, hallazgos desde el machine learning

Ciencia

La evolución de la música pop, hallazgos desde el machine learning

por Ricardo Martínez
La evolución de la música pop, hallazgos desde el machine learning

Ciencia

La evolución de la música pop, hallazgos desde el machine learning

por Ricardo Martínez
Werner Herzog en Chile: el futuro de la verdad

Ciencia

Werner Herzog en Chile: el futuro de la verdad

por Pato Sullivan

LO ÚLTIMO DE CULTURA

VER MÁS
El artista de la semana | Jean Michel Basquiat

Cultura

El artista de la semana | Jean Michel Basquiat

por Pato Sullivan
El artista de la semana | Jean Michel Basquiat

Cultura

El artista de la semana | Jean Michel Basquiat

por Pato Sullivan
Quiet on set: el detrás de cámaras de las estrellas de nuestra infancia

Cine y Series

Quiet on set: el detrás de cámaras de las estrellas de nuestra infancia

por Iñaki Goldaracena
Quiet on set: el detrás de cámaras de las estrellas de nuestra infancia

Cine y Series

Quiet on set: el detrás de cámaras de las estrellas de nuestra infancia

por Iñaki Goldaracena
Shōgun, la megaproducción que revive el Japón feudal

Cine y Series

Shōgun, la megaproducción que revive el Japón feudal

por Iñaki Goldaracena
El artista de la semana | Mes del escultor 👨🏻‍🎨

Cultura

El artista de la semana | Mes del escultor 👨🏻‍🎨

por Pato Sullivan
El artista de la semana | Mes del escultor 👨🏻‍🎨

Cultura

El artista de la semana | Mes del escultor 👨🏻‍🎨

por Pato Sullivan
Shōgun, la megaproducción que revive el Japón feudal

Cine y Series

Shōgun, la megaproducción que revive el Japón feudal

por Iñaki Goldaracena
El artista de la semana: Storm Thorgerson | 🎨 167

Cultura

El artista de la semana: Storm Thorgerson | 🎨 167

por Pato Sullivan
El artista de la semana: Storm Thorgerson | 🎨 46

Cultura

El artista de la semana: Storm Thorgerson | 🎨 46

por Pato Sullivan
El Régimen, la nueva sátira de HBO, muestra la caída de un país a manos de una líder delirante

Cine y Series

El Régimen, la nueva sátira de HBO, muestra la caída de un país a manos de una líder delirante

por Iñaki Goldaracena
El Régimen, la nueva sátira de HBO, muestra la caída de un país a manos de una líder delirante

Cine y Series

El Régimen, la nueva sátira de HBO, muestra la caída de un país a manos de una líder delirante

por Iñaki Goldaracena
El artista de la semana: Akira Toriyama

Cultura

El artista de la semana: Akira Toriyama

por Pato Sullivan
Las (otras) mejores películas del año

Cine y Series

Las (otras) mejores películas del año

por Iñaki Goldaracena
Las (otras) mejores películas del año

Cine y Series

Las (otras) mejores películas del año

por Iñaki Goldaracena

LO ÚLTIMO DE OPINIÓN

VER MÁS
Balatro: el eterno retorno de los juegos de cartas

Opinion

Balatro: el eterno retorno de los juegos de cartas

por Tomás Morales
¿Por qué tener publicidad en Fintualist?

Columnas

¿Por qué tener publicidad en Fintualist?

por Florencia Edwards
Fintual por dentro y la carta del CEO

Columnas

Fintual por dentro y la carta del CEO

por Pato Sullivan
El éxito sin precedentes de Palworld… ¿pero a qué costo?

Columnas

El éxito sin precedentes de Palworld… ¿pero a qué costo?

por Tomás Morales
El éxito sin precedentes de Palworld… ¿pero a qué costo?

Columnas

El éxito sin precedentes de Palworld… ¿pero a qué costo?

por Tomás Morales
Formas validadas de transferir para ayudar a los damnificados por los incendios

Columnas

Formas validadas de transferir para ayudar a los damnificados por los incendios

por Fintual
¿Cómo ser popular en el colegio? Cómprate un vaso Stanley

Columnas

¿Cómo ser popular en el colegio? Cómprate un vaso Stanley

por Diana Palacios
¿Cómo ser popular en el colegio? Cómprate un vaso Stanley

Columnas

¿Cómo ser popular en el colegio? Cómprate un vaso Stanley

por Diana Palacios
Lies of P: la gran revelación del año

Opinion

Lies of P: la gran revelación del año

por Tomás Morales
Lies of P: la gran revelación del año

Opinion

Lies of P: la gran revelación del año

por Tomás Morales
Los billetes de Nikola Tesla adentro de un Monopoly

Columnas

Los billetes de Nikola Tesla adentro de un Monopoly

por Timothy Marzullo
Los billetes de Nikola Tesla adentro de un Monopoly

Columnas

Los billetes de Nikola Tesla adentro de un Monopoly

por Timothy Marzullo
Super Mario Bros. Wonder, la entrega más psicodélica de Mario

Opinion

Super Mario Bros. Wonder, la entrega más psicodélica de Mario

por Tomás Morales
¿Por qué coleccionamos lo que coleccionamos?

Opinion

¿Por qué coleccionamos lo que coleccionamos?

por Pedro Torrealba Barra
¿Por qué coleccionamos lo que coleccionamos?

Opinion

¿Por qué coleccionamos lo que coleccionamos?

por Pedro Torrealba Barra
Blasphemous II: el metroidvania inspirado en la iconografía sevillana

Opinion

Blasphemous II: el metroidvania inspirado en la iconografía sevillana

por Tomás Morales
La leyenda de los “Cheques Matta”

Opinion

La leyenda de los “Cheques Matta”

por Juan Claudio Edwards
Emma Raducanu no juega este US Open. ¿Fue solo un "one hit wonder"?

Opinion

Emma Raducanu no juega este US Open. ¿Fue solo un "one hit wonder"?

por Sebastián Varela
Trabajar viajando: probar ser nómada digital

Opinion

Trabajar viajando: probar ser nómada digital

por Sara Vásquez
Trabajar viajando: probar ser nómada digital

Columnas

Trabajar viajando: probar ser nómada digital

por Sara Vásquez
¿Qué onda la moda de los psicodélicos? Vol. I:  Historia y cultura popular

Opinion

¿Qué onda la moda de los psicodélicos? Vol. I: Historia y cultura popular

por Maximiliano von Jentschyk Makuc
La historia del verdadero oro verde

Opinion

La historia del verdadero oro verde

por Joaquín Barañao, Red Pivotes
In a Barbie world: la muñeca que refleja lo que podrías llegar a ser

Opinion

In a Barbie world: la muñeca que refleja lo que podrías llegar a ser

por Diana Palacios
Encontraron el Anillo Único  en formato de cartas Magic: vale dos millones de dólares

Opinion Columnas

Encontraron el Anillo Único en formato de cartas Magic: vale dos millones de dólares

por Pedro Torrealba Barra
Cómo un escritor pasó a ser una fábrica de cultura popular

Opinion

Cómo un escritor pasó a ser una fábrica de cultura popular

por Joaquín Barañao, Red Pivotes
Qué son los Nepo Babies: historia, política y tecnología

Opinion

Qué son los Nepo Babies: historia, política y tecnología

por Diana Palacios
Análisis psicológico del Gato con Botas 2: El último deseo

Opinion

Análisis psicológico del Gato con Botas 2: El último deseo

por Maximiliano von Jentschyk Makuc
Street Fighter 6: Capcom vuelve a la pelea

Opinion

Street Fighter 6: Capcom vuelve a la pelea

por Tomás Morales
Lo que esconde la nota perfecta del Legend of Zelda Tears of The Kingdom

Opinion

Lo que esconde la nota perfecta del Legend of Zelda Tears of The Kingdom

por Tomás Morales
¿El deporte más exclusivo de todos? Qué tan difícil es jugar en las canchas del US Open de golf

Columnas

¿El deporte más exclusivo de todos? Qué tan difícil es jugar en las canchas del US Open de golf

por José Ignacio Flores
Lo que esconde la nota perfecta del Legend of Zelda Tears of The Kingdom

Columnas

Lo que esconde la nota perfecta del Legend of Zelda Tears of The Kingdom

por Tomás Morales
Rolex y el tenis: una alianza con relojes que no puedes comprar

Columnas

Rolex y el tenis: una alianza con relojes que no puedes comprar

por Alfredo García
¿La minoría de mucho o la mayoría de nada?

Columnas

¿La minoría de mucho o la mayoría de nada?

por Joaquín Barañao, Red Pivotes
Pobres en el castillo

Columnas

Pobres en el castillo

por Joaquín Barañao, Red Pivotes
Los 90 y el cine continuado

Columnas

Los 90 y el cine continuado

por Rafael Gumucio
El método egipcio: cómo mejorar procesos

Columnas

El método egipcio: cómo mejorar procesos

por Luz Eugenia Echeverría
El método egipcio: cómo mejorar procesos

Columnas

El método egipcio: cómo mejorar procesos

por Luz Eugenia Echeverría
¿Cuánto creerle a los rankings de películas?

Columnas

¿Cuánto creerle a los rankings de películas?

por Joaquín Barañao, Red Pivotes
Hidrógeno verde, litio, energías y agua dulce

Columnas

Hidrógeno verde, litio, energías y agua dulce

por Omar Larré
¿Qué es el síndrome del impostor? Cronología antojadiza de mi identidad

Columnas

¿Qué es el síndrome del impostor? Cronología antojadiza de mi identidad

por Maximiliano von Jentschyk Makuc
¿Qué frena al litio chileno? Una ley sin pies ni cabeza

Opinion

¿Qué frena al litio chileno? Una ley sin pies ni cabeza

por Joaquín Barañao, Red Pivotes
La reconstrucción de un pueblo a trece años del terremoto

Columnas

La reconstrucción de un pueblo a trece años del terremoto

por Natalia Berbelagua
IMMORTALITY: la cineteca del inframundo

Columnas

IMMORTALITY: la cineteca del inframundo

por Tomás Morales
Lula, el ex-presidente de Brasil, vuelve al poder

Columnas

Lula, el ex-presidente de Brasil, vuelve al poder

por Stella Melaragno
Pelé: el mejor futbolista de la historia

Columnas

Pelé: el mejor futbolista de la historia

por Rodrigo Arellano
Pelé: el mejor futbolista de la historia

Columnas

Pelé: el mejor futbolista de la historia

por Rodrigo Arellano
Lula, el ex-presidente de Brasil, vuelve al poder

Columnas

Lula, el ex-presidente de Brasil, vuelve al poder

por Stella Melaragno
Microsoft y Activision: historia de una fusión por concretar

Columnas

Microsoft y Activision: historia de una fusión por concretar

por Tomás Morales
Hacia un mundo post-Google: ChatGPT

Columnas

Hacia un mundo post-Google: ChatGPT

por Ricardo Martínez
Wrapped de Spotify vs. las tiendas físicas de música: Mi lista es mejor que la tuya (?)

Columnas

Wrapped de Spotify vs. las tiendas físicas de música: Mi lista es mejor que la tuya (?)

por Ariel Núñez
Volverá la fe en las startups

Columnas

Volverá la fe en las startups

por Agustín Feuerhake
¿Cómo ganar la polla del Mundial?

Columnas

¿Cómo ganar la polla del Mundial?

por Pablo Tapia Varela
Volverá la fe en las startups

Columnas

Volverá la fe en las startups

por Agustín Feuerhake
El remake de dos clásicos:  Silent Hill 2 y Resident Evil 4

Columnas

El remake de dos clásicos: Silent Hill 2 y Resident Evil 4

por Tomás Morales
De los transfers hawaianos a las cumbres andinas: cómo nació Wikiexplora

Columnas

De los transfers hawaianos a las cumbres andinas: cómo nació Wikiexplora

por Joaquín Barañao, Red Pivotes
¿Cuántos goles lleva México en mundiales?

Columnas

¿Cuántos goles lleva México en mundiales?

por Alex Sánchez
Bienvenidos a Night City, la capital del Cyberpunk

Columnas

Bienvenidos a Night City, la capital del Cyberpunk

por Pedro Torrealba Barra
My Little Pony y un juego de peleas: Them’s Fighting Herds

Columnas

My Little Pony y un juego de peleas: Them’s Fighting Herds

por Tomás Morales
Comunidad y lenguaje desde el fin del mundo

Columnas

Comunidad y lenguaje desde el fin del mundo

por Jorge Muñoz
Adiós, Roger: el retiro de Federer

Columnas

Adiós, Roger: el retiro de Federer

por Pato Sullivan
¿Y qué tal si se le adelantaron al satélite Sputnik?

Columnas

¿Y qué tal si se le adelantaron al satélite Sputnik?

por Joaquín Barañao, Red Pivotes
Me volví digital nomad y terminé en la Patagonia: la historia de mi travesía hacia la FIN

Columnas

Me volví digital nomad y terminé en la Patagonia: la historia de mi travesía hacia la FIN

por Cecilia Ramallo
El Big Data llegó al fútbol al estilo Moneyball

Columnas

El Big Data llegó al fútbol al estilo Moneyball

por El Analista
Los ganadores y perdedores de los Premios Emmy 2022

Columnas

Los ganadores y perdedores de los Premios Emmy 2022

por Iñaki Goldaracena
“The Big Carlos” dice presente: Carlos Alcaraz, el nuevo número 1 del mundo

Columnas

“The Big Carlos” dice presente: Carlos Alcaraz, el nuevo número 1 del mundo

por Rodrigo Arellano
“The Big Carlos” dice presente: Carlos Alcaraz, el nuevo número 1 del mundo

Columnas

“The Big Carlos” dice presente: Carlos Alcaraz, el nuevo número 1 del mundo

por Rodrigo Arellano
La Reina Isabel II ha muerto. Dios salve a la Reina.

Columnas

La Reina Isabel II ha muerto. Dios salve a la Reina.

por Ariel Núñez
Cambios en el comportamiento electoral por el voto obligatorio en el plebiscito

Columnas

Cambios en el comportamiento electoral por el voto obligatorio en el plebiscito

por Gonzalo Mena
Qué implica ser mentor en un intensivo de programación en la Patagonia

Columnas

Qué implica ser mentor en un intensivo de programación en la Patagonia

por Pedro Saratscheff
Plebiscito de salida: lo que sí sabemos

Columnas

Plebiscito de salida: lo que sí sabemos

por Priscila Robledo, José Ignacio Flores, José Manuel Peña, Daniela Pradel A.
Así fue la primera semana en el Fintual Intensivo Natales

Columnas

Así fue la primera semana en el Fintual Intensivo Natales

por Andrés Arellano
Trasandino y Fintual: un objetivo a largo plazo

Columnas

Trasandino y Fintual: un objetivo a largo plazo

por Pato Sullivan
Stray: el juego de un gato perdido que te hace recordar tu humanidad

Columnas

Stray: el juego de un gato perdido que te hace recordar tu humanidad

por Carolina Maldonado Magnere
Cristóbal Henríquez: el mejor ajedrecista de Chile

Columnas

Cristóbal Henríquez: el mejor ajedrecista de Chile

por Pato Sullivan, Florencia Edwards, Sebastián Ovalle
¿Todo atado y bien atado? Depende con qué comparemos

Columnas

¿Todo atado y bien atado? Depende con qué comparemos

por Joaquín Barañao, Red Pivotes
Constituciones y educación

Columnas

Constituciones y educación

por Diana Palacios
Cómo colaboran Fintual y la academia

Columnas

Cómo colaboran Fintual y la academia

por Pedro Pineda
Nuestra intuición acerca del infinito

Columnas

Nuestra intuición acerca del infinito

por Manuel Becker Toro
La zanahoria, un impostor triple

Columnas

La zanahoria, un impostor triple

por Joaquín Barañao, Red Pivotes
El efecto e-mariposa

Columnas

El efecto e-mariposa

por Joaquín Barañao, Red Pivotes
La extraña relación entre pesca con mosca y las inversiones

Columnas

La extraña relación entre pesca con mosca y las inversiones

por Juan Pablo Rybecky
La impericia de Julio César que aún reverbera en Excel

Columnas

La impericia de Julio César que aún reverbera en Excel

por Joaquín Barañao, Red Pivotes
Un análisis a la reciente inversión de la curva

Columnas

Un análisis a la reciente inversión de la curva

por Ana Sepúlveda
Por qué WeCrashed sobresale

Columnas

Por qué WeCrashed sobresale

por Cristóbal Fredes
Bloqueos de destrucción masiva

Columnas

Bloqueos de destrucción masiva

por Agustín Feuerhake
Oleg Oprisco

Columnas

No sé nada sobre la guerra

por Sara Vásquez
Hoja de ruta para mayor diversidad en sector financiero: razones abundan

Columnas

Hoja de ruta para mayor diversidad en sector financiero: razones abundan

por Rosario Celedón
El elefante en la habitación (y cómo afecta al pequeño ahorrante)

Columnas

El elefante en la habitación (y cómo afecta al pequeño ahorrante)

por Omar Larré
El Rally de Santa Claus

Columnas

El Rally de Santa Claus

por José Manuel Peña
Las dos candidaturas presidenciales

Columnas

Las dos candidaturas presidenciales

por Pedro Pineda
Cartas a las editoras: Sequoia

Cartas a las editoras

Cartas a las editoras: Sequoia

por Florencia Edwards, Carolina Maldonado Magnere
Maria Skłodowska

Columnas

Maria Skłodowska

por Pedro Pineda
Paul Graham Y Combinator y Fintual

Columnas

El día en que Paul Graham le recomendó Fintual a Sequoia

por Agustín Feuerhake
Cartas a las editoras: aún uso mi cuenta RUT y Bitcoin para todos

Cartas a las editoras

Cartas a las editoras: aún uso mi cuenta RUT y Bitcoin para todos

por Fintual
Cartas a las editoras: no hay premio Nobel de Economía y más consejos para la salud mental

Cartas a las editoras

Cartas a las editoras: no hay premio Nobel de Economía y más consejos para la salud mental

por Fintual
SOFTWARE >COPPER

Columnas

SOFTWARE >COPPER

por Pedro Pineda
Adiós Chile: ​​la misión fallida de conseguir Tarjeta de Crédito para mi empresa de neurociencia

Columnas

Adiós Chile: ​​la misión fallida de conseguir Tarjeta de Crédito para mi empresa de neurociencia

por Timothy Marzullo
Carta de una trabajólica en rehabilitación

Columnas

Carta de una trabajólica en rehabilitación

por Sara Vásquez
Partida simultánea de ajedrez con Cristóbal Henríquez

Columnas

Partida simultánea de ajedrez con Cristóbal Henríquez

por Omar Larré
¿Cómo ayudar e impactar sin moverte de tu casa?

Columnas

¿Cómo ayudar e impactar sin moverte de tu casa?

por Sara Vásquez
La figurita de acción que recaudó 3 millones de pesos en solo 24 horas

Columnas

La figurita de acción que recaudó 3 millones de pesos en solo 24 horas

por Beatriz Ivanovic, Maximiliano von Jentschyk Makuc
A escala humana

Columnas

A escala humana

por Juan Francisco Rebolledo
Compatibilidad Competitiva

Columnas

Compatibilidad Competitiva

por Agustín Feuerhake
Sé como Charles Aránguiz

Columnas

Sé como Charles Aránguiz

por Pedro Pineda
Cómo empezamos Fintual (parte 2)

Columnas

Cómo empezamos Fintual (parte 2)

por Andrés Marinkovic
El miedo

Columnas

El miedo

por Florencia Edwards
Dear Intern

Columnas

Dear Intern

por Francesca Finaldi
La espada

Columnas

La espada

por Agustín Feuerhake
Diversidad que nos hace mejores II

Columnas

Diversidad que nos hace mejores II

por Sebastián Lisboa
Unicornershop

Columnas

Unicornershop

por Pedro Pineda
Cocina con Arnaud: Boeuf Bourguignon o estofado de res

Columnas

Cocina con Arnaud: Boeuf Bourguignon o estofado de res

por Arnaud Hudaverdian
Cómo lograr 30 horas al día mientras estudias y trabajas

Columnas

Cómo lograr 30 horas al día mientras estudias y trabajas

por Isidora Vizcaya
Cómo empezamos Fintual

Columnas

Cómo empezamos Fintual

por Andrés Marinkovic
Sobre el negocio del fracaso y sus errores

Entrevistas Columnas

Sobre el negocio del fracaso y sus errores

por Montserrat Bonilla
Artículos constitucionales techie

Columnas

Artículos constitucionales techie

por Pedro Pineda
Píldoras para superhéroes

Columnas

Píldoras para superhéroes

por Pedro Pineda
Cómo fuimos la primera startup chilena en quedar en Y Combinator

Columnas

Cómo fuimos la primera startup chilena en quedar en Y Combinator

por Pedro Pineda
Lanzar una startup en 11 horas

Columnas

Lanzar una startup en 11 horas

por Pedro Pineda
El camino a la igualdad para las nuevas generaciones

Columnas

El camino a la igualdad para las nuevas generaciones

por Francisca Dominguez
Cartas a las editoras: discriminación positiva, el nuevo asesor de negocios/financiero y día de la mujer

Cartas a las editoras

Cartas a las editoras: discriminación positiva, el nuevo asesor de negocios/financiero y día de la mujer

por Florencia Edwards, Francesca Finaldi, Carolina Maldonado Magnere
Cartas a las editoras: un arma de doble filo, la paradoja de Braess y una falacia al hablar de economía

Cartas a las editoras

Cartas a las editoras: un arma de doble filo, la paradoja de Braess y una falacia al hablar de economía

por Florencia Edwards, Francesca Finaldi, Carolina Maldonado Magnere
Por qué !&%$ existe un día de la mujer

Opinion

Por qué !&%$ existe un día de la mujer

por Isidora Vizcaya
Cartas a las editoras: semana 1 de febrero

Cartas a las editoras

Cartas a las editoras: semana 1 de febrero

por Florencia Edwards, Carolina Maldonado Magnere, Francesca Finaldi
Cartas a las editoras: semana 25 de enero

Cartas a las editoras

Cartas a las editoras: semana 25 de enero

por Florencia Edwards, Carolina Maldonado Magnere, Francesca Finaldi
Cartas a las editoras: semana 18 de enero

Cartas a las editoras

Cartas a las editoras: semana 18 de enero

por Florencia Edwards, Carolina Maldonado Magnere, Francesca Finaldi
Decorar te hace feliz

Columnas

Decorar te hace feliz

por Luca Rebori
Por qué dejé mi puesto de CEO

Columnas

Por qué dejé mi puesto de CEO

por Victor Hugo Flores
Pase maestro, lo estábamos esperando

Columnas

Pase maestro, lo estábamos esperando

por Pedro Pineda
Primarias 2020: adiós a los intendentes regionales

Columnas

Primarias 2020: adiós a los intendentes regionales

por Carolina Maldonado Magnere
El problema de las encuestas en las elecciones

Columnas

El problema de las encuestas en las elecciones

por Pedro Pineda
El Papa afirmó su apoyo a las uniones civiles de parejas del mismo sexo

Opinion

El Papa afirmó su apoyo a las uniones civiles de parejas del mismo sexo

por Nico Soto-Aguilar
Nobel de física chileno

Columnas

Nobel de física chileno

por Pedro Pineda
Armenia vs Azerbaijan

Columnas

Armenia vs Azerbaijan

por Pedro Pineda
¿KIM 4?

Columnas

¿KIM 4?

por Pedro Pineda
Diversidad que nos hace mejores

Columnas

Diversidad que nos hace mejores

por Nico Soto-Aguilar
El gran vacío en la inversión en capital de riesgo en Chile

Columnas

El gran vacío en la inversión en capital de riesgo en Chile

por Fintual
Sobre la reforma previsional

Columnas

Sobre la reforma previsional

por Omar Larré