{"id":25971,"date":"2023-03-28T21:25:56","date_gmt":"2023-03-28T21:25:56","guid":{"rendered":"https:\/\/building.nubank.com\/functional-programming-with-clojure-why-and-how-does-nubank-use-it-and-scale-so-well\/"},"modified":"2024-05-22T14:03:31","modified_gmt":"2024-05-22T14:03:31","slug":"programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien","status":"publish","type":"post","link":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/","title":{"rendered":"Programaci\u00f3n funcional con Clojure: \u00bfpor qu\u00e9 y c\u00f3mo Nubank la usa y escala tan bien?"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">La programaci\u00f3n funcional es un enfoque para resolver problemas con ideas centradas en una excelente cobertura de pruebas, mayor encapsulaci\u00f3n de c\u00f3digo, reutilizaci\u00f3n y mantenimiento de sistemas. Clojure no solo tiene un paradigma atractivo, tambi\u00e9n es un lenguaje de programaci\u00f3n funcional consolidado, con total interoperabilidad con Java y una buena pila a su alrededor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, cuando pensamos en la escalabilidad y en la rapidez con la que Nubank tuvo que organizarse y no perder el control de la calidad de los servicios que se estaban creando, una arquitectura bien definida y de alto est\u00e1ndar, para ser utilizada en conjunto con Clojure, fue de gran ayuda para garantizar el \u00e9xito de la decisi\u00f3n del lenguaje y el dise\u00f1o de una cultura para entregar c\u00f3digo de una manera m\u00e1s frecuente y confiable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 es la programaci\u00f3n funcional?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/building.nubank.com\/es\/what-is-functional-programming-and-how-do-we-use-that-technology-at-nubank\/\">La programaci\u00f3n funcional<\/a> es un estilo de programaci\u00f3n que sigue el paradigma funcional y, para quienes no lo saben, los paradigmas son enfoques para resolver problemas y lo que los diferencia es c\u00f3mo idealizan la soluci\u00f3n de un problema.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conceptos y pautas de programaci\u00f3n funcional.<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Inmutabilidad<strong>\u00a0<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Este es el concepto de no modificar ninguna variable durante la ejecuci\u00f3n, de manera que solo tenemos variables que son de <em>solo lectura, <\/em>entonces, una vez que creas una variable con un valor no modificable, si necesitas usarla, se puede crear una nueva usando el valor de la otra m\u00e1s las otras entradas que deseas proporcionar.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ventaja: Sabes exactamente cu\u00e1l es la variable en cualquier momento de la ejecuci\u00f3n, por lo que la depuraci\u00f3n se vuelve m\u00e1s f\u00e1cil.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><em>La inmutabilidad es la idea clave de la programaci\u00f3n funcional<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Funciones de Primera Clase<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Esta es la idea de que una funci\u00f3n en este lenguaje no tiene restricciones ni limitaciones y puede tratarse como una variable.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ventajas: Se puede asignar a variables regulares, se puede pasar como argumentos o como retorno de funciones y se puede incluir en cualquier estructura de datos.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Funciones Puras<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Esas son funciones en las que solo tienes un resultado posible basado en una entrada, por lo que siempre puedes hacer una predicci\u00f3n. Por ejemplo, en la funci\u00f3n matem\u00e1tica \u201cx + 2 = y\u201d, si \u201cx\u201d es 2, \u201cy\u201d siempre ser\u00e1 4, y esto es exactamente lo que es una funci\u00f3n pura.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ventaja: Tu tienes control total sobre las pruebas y garantizas que suceda lo que desea<em>s.<\/em><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Composici\u00f3n de Funciones\u00a0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Como su nombre lo indica, puedes utilizar la composici\u00f3n de funciones para obtener el resultado deseado.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ventaja: Aislar l\u00f3gicas en muchas funciones peque\u00f1as, lo que aumenta la facilidad para probar y desacoplar l\u00f3gicas.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Expresiones\u00a0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Las funciones siempre deber\u00edan devolver algo. La programaci\u00f3n funcional no aprueba la creaci\u00f3n de funciones de declaraci\u00f3n, que tienen resultados nulos, con procedimientos realmente dif\u00edciles de controlar y predecir lo que sucede en su interior.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ventaja: Mejorar la cobertura de las pruebas.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Recursiones<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Over Loops, por lo que la iteraci\u00f3n se realiza bas\u00e1ndose en el principio de que no tenemos variables mutables y la recursividad usar\u00e1 el \u00faltimo resultado para aplicar el siguiente sin romper la idea, y tambi\u00e9n evitando efectos secundarios que son bastante comunes en las interacciones de bucle.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ventaja: M\u00e1s control sobre el c\u00f3digo, ya que no perdemos el control de lo que se hace en cada iteraci\u00f3n de un bucle. Reducci\u00f3n de efectos secundarios.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfPor qu\u00e9 Nubank eligi\u00f3 utilizar Clojure como su principal lenguaje de programaci\u00f3n?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando se fund\u00f3 Nubank, necesit\u00e1bamos un lenguaje potente que nos ayudara a crear la mejor aplicaci\u00f3n de tecnolog\u00eda financiera y quer\u00edamos que fuera la mejor en t\u00e9rminos de <strong>calidad, coherencia y velocidad de desarrollo<\/strong>. Y todas esas ideas quedaron reflejadas en Clojure. Hubo algunas cosas que evaluamos como ventajas:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lenguaje objetivo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Clojure es directo al grano y muy conciso para crear escenarios complejos, cualidades que lo convierten en un lenguaje totalmente no detallado. Esto nos permiti\u00f3 codificar m\u00e1s en menos tiempo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>\u00a1Excelente cobertura de pruebas! No fueron necesarios equipos de Garant\u00eda de Calidad.<\/em><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prueba mientras codificamos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Podr\u00edamos tener una infraestructura preconfigurada para ejecutar las pruebas al mismo tiempo que la modific\u00e1bamos, con una cobertura de prueba de casi el 100% de las pruebas unitarias m\u00e1s la prueba de integraci\u00f3n. Y todo eso garantizaba la calidad del servicio y de lo hecho, por lo que no necesit\u00e1bamos tener m\u00e1s gente para validarnos esos escenarios.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Interoperabilidad de Java<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para aquellos que no conocen bastante bien clojure, el lenguaje est\u00e1 construido sobre la JVM (Java Virtual Machine) por lo que podemos usar todo en ese entorno, como bibliotecas Java, frameworks o cualquier otra implementaci\u00f3n con Java. Sin embargo, es un beneficio tener esta vasta tecnolog\u00eda disponible si la necesitamos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Incre\u00edble comunidad y documentaci\u00f3n de calidad.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Clojure tiene un gran espacio comunitario, en el que las personas participan en la discusi\u00f3n y evoluci\u00f3n del idioma, por lo que es muy f\u00e1cil para ti comenzar y descubrir d\u00f3nde necesitas aprender sobre \u00e9l. Adem\u00e1s, la gente que estaba en Nubank cuando todo era s\u00f3lo un espejismo ten\u00eda una gran implicaci\u00f3n y cari\u00f1o con Clojure, por lo que fue una decisi\u00f3n f\u00e1cil de tomar.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo es que Nubank ha escalado tan bien usando Clojure?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nubank ha crecido extraordinariamente en los \u00faltimos a\u00f1os y la evoluci\u00f3n de nuestro constante crecimiento en la parte de ingenier\u00eda se debe a la organizaci\u00f3n y arquitectura t\u00e9cnica que suaviz\u00f3 este proceso de crecimiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Arquitectura de microservicios con una arquitectura de software bien definida.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hoy en d\u00eda, <a href=\"https:\/\/building.nubank.com\/es\/microservices-at-nubank-an-overview\/\">la arquitectura de microservicios de Nubank<\/a> tiene alrededor de 1000 microservicios escritos en Clojure. Adem\u00e1s, todos los microservicios tienen la misma estructura de carpetas basada en nuestra arquitectura de software definida, Diplomat Architecture. Por lo tanto, es f\u00e1cil entender c\u00f3mo funcionan los microservicios y d\u00f3nde encontrar cosas. Dicho todo esto, esto hace que la escalabilidad sea m\u00e1s f\u00e1cil, ya que podemos mover ingenieros entre equipos, y ellos solo necesitan aprender el contexto empresarial y c\u00f3mo se organiza en la arquitectura de microservicios; sin embargo, los servicios en s\u00ed son sencillos y muy f\u00e1ciles de manipular.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Adem\u00e1s, podemos aumentar o disminuir los equipos seg\u00fan las prioridades, sin preocuparnos por el seguimiento de los ingenieros o el tiempo de incorporaci\u00f3n.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tener convenciones de c\u00f3digo, arquitectura de software, cultura de pruebas y una gran infraestructura ya preparada para aceptar todo ello permite a los equipos y empresas crecer de una manera m\u00e1s optimizada, centr\u00e1ndose mucho m\u00e1s en la resoluci\u00f3n de problemas que en mantener las cosas funcionando en base a las personas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfCu\u00e1les son los beneficios y ventajas que nos hicieron elegir un lenguaje de programaci\u00f3n tan diferente? <\/p>\n","protected":false},"author":178110183,"featured_media":24973,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[2499,2589],"tags":[2584,2583,2590,2500],"ppma_author":[2395],"class_list":["post-25971","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering-es","category-software-engineering-es","tag-clojure-es","tag-engineering-es","tag-nubank-es","tag-software-engineering-es"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Programaci\u00f3n funcional con Clojure: \u00bfpor qu\u00e9 y c\u00f3mo Nubank la usa y escala tan bien? - Building Nubank<\/title>\n<meta name=\"description\" content=\"\u00bfCu\u00e1les son los beneficios y ventajas que nos hicieron elegir un lenguaje de programaci\u00f3n tan diferente?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Programaci\u00f3n funcional con Clojure: \u00bfpor qu\u00e9 y c\u00f3mo Nubank la usa y escala tan bien? - Building Nubank\" \/>\n<meta property=\"og:description\" content=\"\u00bfCu\u00e1les son los beneficios y ventajas que nos hicieron elegir un lenguaje de programaci\u00f3n tan diferente?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/\" \/>\n<meta property=\"og:site_name\" content=\"Building Nubank\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-28T21:25:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-22T14:03:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/12\/Functional-Programming_Feature_1200x675.jpg?fit=1200%2C675&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Heloisa Carbone - Senior Software Engineer at Nubank\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Heloisa Carbone - Senior Software Engineer at Nubank\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\\\/\"},\"author\":{\"name\":\"Heloisa Carbone - Senior Software Engineer at Nubank\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#\\\/schema\\\/person\\\/f4c4df17c8d3f1dc13bc0c1021863c19\"},\"headline\":\"Programaci\u00f3n funcional con Clojure: \u00bfpor qu\u00e9 y c\u00f3mo Nubank la usa y escala tan bien?\",\"datePublished\":\"2023-03-28T21:25:56+00:00\",\"dateModified\":\"2024-05-22T14:03:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\\\/\"},\"wordCount\":1173,\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/Functional-Programming_Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"keywords\":[\"Clojure\",\"Engineering\",\"Nubank\",\"Software engineering\"],\"articleSection\":[\"Engineering\",\"Software Engineering\"],\"inLanguage\":\"es\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\\\/\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\\\/\",\"name\":\"Programaci\u00f3n funcional con Clojure: \u00bfpor qu\u00e9 y c\u00f3mo Nubank la usa y escala tan bien? - Building Nubank\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/Functional-Programming_Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"datePublished\":\"2023-03-28T21:25:56+00:00\",\"dateModified\":\"2024-05-22T14:03:31+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#\\\/schema\\\/person\\\/f4c4df17c8d3f1dc13bc0c1021863c19\"},\"description\":\"\u00bfCu\u00e1les son los beneficios y ventajas que nos hicieron elegir un lenguaje de programaci\u00f3n tan diferente?\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/building.nubank.com\\\/es\\\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/Functional-Programming_Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2022\\\/12\\\/Functional-Programming_Feature_1200x675.jpg?fit=1200%2C675&ssl=1\",\"width\":1200,\"height\":675,\"caption\":\"People working together with data\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Programaci\u00f3n funcional con Clojure: \u00bfpor qu\u00e9 y c\u00f3mo Nubank la usa y escala tan bien?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#website\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/\",\"name\":\"Building Nubank\",\"description\":\"We make the extraordinary happen\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/#\\\/schema\\\/person\\\/f4c4df17c8d3f1dc13bc0c1021863c19\",\"name\":\"Heloisa Carbone - Senior Software Engineer at Nubank\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/building.nubank.com.br\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/avatar_user_178110183_1680038246-96x96.pngdb367e5ebdbd4425e8eb0cd1eda9d96b\",\"url\":\"https:\\\/\\\/building.nubank.com.br\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/avatar_user_178110183_1680038246-96x96.png\",\"contentUrl\":\"https:\\\/\\\/building.nubank.com.br\\\/wp-content\\\/uploads\\\/2023\\\/03\\\/avatar_user_178110183_1680038246-96x96.png\",\"caption\":\"Heloisa Carbone - Senior Software Engineer at Nubank\"},\"description\":\"Heloisa Carbone is responsible for building internal Data platforms, helping to connect the Data universe with Nubank's products. She has a degree in Computer and Information Science from Universidade de S\u00e3o Paulo. Heloisa has extensive experience working on backend applications. Before joining Nubank, in 2019, she has worked in companies such as Accenture, IBM and some Startups. In her spare time, Heloisa is a speaker and mentor to other women engineers that are starting careers in technology.\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/es\\\/author\\\/heloisa-carbone\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Programaci\u00f3n funcional con Clojure: \u00bfpor qu\u00e9 y c\u00f3mo Nubank la usa y escala tan bien? - Building Nubank","description":"\u00bfCu\u00e1les son los beneficios y ventajas que nos hicieron elegir un lenguaje de programaci\u00f3n tan diferente?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/","og_locale":"es_ES","og_type":"article","og_title":"Programaci\u00f3n funcional con Clojure: \u00bfpor qu\u00e9 y c\u00f3mo Nubank la usa y escala tan bien? - Building Nubank","og_description":"\u00bfCu\u00e1les son los beneficios y ventajas que nos hicieron elegir un lenguaje de programaci\u00f3n tan diferente?","og_url":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/","og_site_name":"Building Nubank","article_published_time":"2023-03-28T21:25:56+00:00","article_modified_time":"2024-05-22T14:03:31+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/12\/Functional-Programming_Feature_1200x675.jpg?fit=1200%2C675&ssl=1","type":"image\/jpeg"}],"author":"Heloisa Carbone - Senior Software Engineer at Nubank","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Heloisa Carbone - Senior Software Engineer at Nubank","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/#article","isPartOf":{"@id":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/"},"author":{"name":"Heloisa Carbone - Senior Software Engineer at Nubank","@id":"https:\/\/building.nubank.com\/es\/#\/schema\/person\/f4c4df17c8d3f1dc13bc0c1021863c19"},"headline":"Programaci\u00f3n funcional con Clojure: \u00bfpor qu\u00e9 y c\u00f3mo Nubank la usa y escala tan bien?","datePublished":"2023-03-28T21:25:56+00:00","dateModified":"2024-05-22T14:03:31+00:00","mainEntityOfPage":{"@id":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/"},"wordCount":1173,"image":{"@id":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/12\/Functional-Programming_Feature_1200x675.jpg?fit=1200%2C675&ssl=1","keywords":["Clojure","Engineering","Nubank","Software engineering"],"articleSection":["Engineering","Software Engineering"],"inLanguage":"es"},{"@type":"WebPage","@id":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/","url":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/","name":"Programaci\u00f3n funcional con Clojure: \u00bfpor qu\u00e9 y c\u00f3mo Nubank la usa y escala tan bien? - Building Nubank","isPartOf":{"@id":"https:\/\/building.nubank.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/#primaryimage"},"image":{"@id":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/12\/Functional-Programming_Feature_1200x675.jpg?fit=1200%2C675&ssl=1","datePublished":"2023-03-28T21:25:56+00:00","dateModified":"2024-05-22T14:03:31+00:00","author":{"@id":"https:\/\/building.nubank.com\/es\/#\/schema\/person\/f4c4df17c8d3f1dc13bc0c1021863c19"},"description":"\u00bfCu\u00e1les son los beneficios y ventajas que nos hicieron elegir un lenguaje de programaci\u00f3n tan diferente?","breadcrumb":{"@id":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/#primaryimage","url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/12\/Functional-Programming_Feature_1200x675.jpg?fit=1200%2C675&ssl=1","contentUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/12\/Functional-Programming_Feature_1200x675.jpg?fit=1200%2C675&ssl=1","width":1200,"height":675,"caption":"People working together with data"},{"@type":"BreadcrumbList","@id":"https:\/\/building.nubank.com\/es\/programacion-funcional-con-clojure-por-que-y-como-nubank-la-usa-y-escala-tan-bien\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/building.nubank.com\/es\/"},{"@type":"ListItem","position":2,"name":"Programaci\u00f3n funcional con Clojure: \u00bfpor qu\u00e9 y c\u00f3mo Nubank la usa y escala tan bien?"}]},{"@type":"WebSite","@id":"https:\/\/building.nubank.com\/es\/#website","url":"https:\/\/building.nubank.com\/es\/","name":"Building Nubank","description":"We make the extraordinary happen","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/building.nubank.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/building.nubank.com\/es\/#\/schema\/person\/f4c4df17c8d3f1dc13bc0c1021863c19","name":"Heloisa Carbone - Senior Software Engineer at Nubank","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/building.nubank.com.br\/wp-content\/uploads\/2023\/03\/avatar_user_178110183_1680038246-96x96.pngdb367e5ebdbd4425e8eb0cd1eda9d96b","url":"https:\/\/building.nubank.com.br\/wp-content\/uploads\/2023\/03\/avatar_user_178110183_1680038246-96x96.png","contentUrl":"https:\/\/building.nubank.com.br\/wp-content\/uploads\/2023\/03\/avatar_user_178110183_1680038246-96x96.png","caption":"Heloisa Carbone - Senior Software Engineer at Nubank"},"description":"Heloisa Carbone is responsible for building internal Data platforms, helping to connect the Data universe with Nubank's products. She has a degree in Computer and Information Science from Universidade de S\u00e3o Paulo. Heloisa has extensive experience working on backend applications. Before joining Nubank, in 2019, she has worked in companies such as Accenture, IBM and some Startups. In her spare time, Heloisa is a speaker and mentor to other women engineers that are starting careers in technology.","url":"https:\/\/building.nubank.com\/es\/author\/heloisa-carbone\/"}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2022\/12\/Functional-Programming_Feature_1200x675.jpg?fit=1200%2C675&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pbKBB5-6KT","jetpack_sharing_enabled":true,"authors":[{"term_id":2395,"user_id":178110183,"is_guest":0,"slug":"heloisa-carbone","display_name":"Heloisa Carbone - Senior Software Engineer at Nubank","avatar_url":"https:\/\/building.nubank.com.br\/wp-content\/uploads\/2023\/03\/avatar_user_178110183_1680038246-96x96.png","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/25971","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/users\/178110183"}],"replies":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/comments?post=25971"}],"version-history":[{"count":3,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/25971\/revisions"}],"predecessor-version":[{"id":29330,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/posts\/25971\/revisions\/29330"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/media\/24973"}],"wp:attachment":[{"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/media?parent=25971"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/categories?post=25971"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/tags?post=25971"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/building.nubank.com\/es\/wp-json\/wp\/v2\/ppma_author?post=25971"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}