[{"data":1,"prerenderedAt":216},["ShallowReactive",2],{"engineering-entries":3},[4,43,65,97,121,152,185],{"id":5,"title":6,"context":9,"date":16,"description":18,"extension":22,"links":23,"meta":24,"order":32,"provisional":33,"status":23,"stem":34,"technologies":35,"__hash__":42},"engineering/engineering/airline-backend.md",{"es":7,"en":8},"Servicios backend para una aerolínea","Backend services for an airline",[10,13],{"es":11,"en":12},"Proyecto profesional","Professional project",{"es":14,"en":15},"Cliente anonimizado","Anonymized client",{"es":17,"en":17},"2024–2025",[19],{"es":20,"en":21},"Construí servicios backend reactivos y APIs REST para consultar perfiles, vuelos y ofertas de un programa de lealtad, además de canjear beneficios y generar vales digitales. Integré estos servicios con sistemas legados del sector e incorporé autenticación, caché distribuida con Redis, controles de seguridad, registro de eventos, pipelines de CI/CD y observabilidad.","I built reactive backend services and REST APIs for retrieving profiles, flights, and loyalty-program offers, as well as redeeming benefits and generating digital vouchers. I integrated these services with legacy industry systems and incorporated authentication, distributed caching with Redis, security controls, event logging, CI/CD pipelines, and observability.","md",null,{"body":25},{"type":26,"value":27,"toc":28},"minimark",[],{"title":29,"searchDepth":30,"depth":30,"links":31},"",2,[],1,false,"engineering/airline-backend",[36,37,38,39,40,41],"Java","Spring Boot","Redis","REST APIs","CI/CD","Observability","pWnUNYbT2GWehaFX4B2PAP_ee1bXHnVmGsZ4_uzz_gI",{"id":44,"title":45,"context":48,"date":51,"description":53,"extension":22,"links":23,"meta":57,"order":30,"provisional":33,"status":23,"stem":62,"technologies":63,"__hash__":64},"engineering/engineering/credit-platform-backend.md",{"es":46,"en":47},"Servicios backend para una plataforma crediticia","Backend services for a credit platform",[49,50],{"es":11,"en":12},{"es":14,"en":15},{"es":52,"en":52},"2023–2024",[54],{"es":55,"en":56},"Construí servicios backend reactivos y APIs REST para consultar perfiles y categorías crediticias, consolidar información y señales de riesgo provenientes de distintas fuentes, y habilitar funciones adicionales para monitorear y gestionar el expediente del cliente. El trabajo incluyó autenticación, controles de seguridad, caché distribuida con Redis, registro de eventos y pipelines de CI/CD.","I built reactive backend services and REST APIs for retrieving profiles and credit categories, consolidating information and risk signals from multiple sources, and enabling additional features for monitoring and managing customer records. The work included authentication, security controls, distributed caching with Redis, event logging, and CI/CD pipelines.",{"body":58},{"type":26,"value":59,"toc":60},[],{"title":29,"searchDepth":30,"depth":30,"links":61},[],"engineering/credit-platform-backend",[36,37,38,39,40],"G9Sd8BcqqPajLBdCGYUYR8r7I0PscQicXllDB1WYCEE",{"id":66,"title":67,"context":69,"date":73,"description":74,"extension":22,"links":78,"meta":85,"order":90,"provisional":33,"status":23,"stem":91,"technologies":92,"__hash__":96},"engineering/engineering/currentico.md",{"es":68,"en":68},"Currentico",[70],{"es":71,"en":72},"Proyecto personal","Personal project",{"es":52,"en":52},[75],{"es":76,"en":77},"Aplicación multiplataforma para convertir colones costarricenses a otras monedas utilizando tipos de cambio bancarios actuales de Costa Rica. Su arquitectura separa las capas de aplicación, dominio y datos.","A multiplatform app for converting Costa Rican colones to other currencies using current bank exchange rates in Costa Rica. Its architecture separates application, domain, and data layers.",[79],{"label":80,"href":83,"external":84},{"es":81,"en":82},"Repositorio","Repository","https://github.com/rodamaj/currentico",true,{"body":86},{"type":26,"value":87,"toc":88},[],{"title":29,"searchDepth":30,"depth":30,"links":89},[],3,"engineering/currentico",[93,94,95],"Flutter","Dart","BLoC","Nvch-lBHPjcOWCtfeSac7dtlUM_RlaEhGUdgCXoXxUc",{"id":98,"title":99,"context":102,"date":105,"description":107,"extension":22,"links":23,"meta":111,"order":116,"provisional":33,"status":23,"stem":117,"technologies":118,"__hash__":120},"engineering/engineering/ordering-app.md",{"es":100,"en":101},"Aplicación móvil de pedidos","Mobile ordering application",[103,104],{"es":11,"en":12},{"es":14,"en":15},{"es":106,"en":106},"2022–2024",[108],{"es":109,"en":110},"Desarrollé una aplicación multiplataforma para explorar distintas opciones de menú y gestionar pedidos. Implementé la interfaz y los flujos de la aplicación en Flutter, la integración con Firebase y el manejo de estado mediante BLoC.","I developed a cross-platform application for exploring different menu options and managing orders. I implemented the interface and application flows in Flutter, the Firebase integration, and state management with BLoC.",{"body":112},{"type":26,"value":113,"toc":114},[],{"title":29,"searchDepth":30,"depth":30,"links":115},[],4,"engineering/ordering-app",[93,94,119,95],"Firebase","sL5aazPY70zPnMfE8SYf9NdwVYOr8zlboJqfrBfF7qc",{"id":122,"title":123,"context":126,"date":128,"description":131,"extension":22,"links":135,"meta":139,"order":144,"provisional":33,"status":23,"stem":145,"technologies":146,"__hash__":151},"engineering/engineering/personal-site.md",{"es":124,"en":125},"Sitio personal","Personal website",[127],{"es":71,"en":72},{"es":129,"en":130},"2021–presente","2021–present",[132],{"es":133,"en":134},"Sitio bilingüe que reúne mi identidad profesional y académica, proyectos, exploraciones y espacios personales en un índice pequeño.","A bilingual site that brings together my professional and academic identity, projects, explorations, and personal spaces in a small index.",[136],{"label":137,"href":138,"external":84},{"es":81,"en":82},"https://github.com/rodamaj/rodamaj.github.io",{"body":140},{"type":26,"value":141,"toc":142},[],{"title":29,"searchDepth":30,"depth":30,"links":143},[],5,"engineering/personal-site",[147,148,149,150],"Nuxt","Vue","TypeScript","GitHub Pages","i5YIXYOWdK1imoLWF5Rvljum5GKX859pJ3vCHlysEKU",{"id":153,"title":154,"context":156,"date":160,"description":163,"extension":22,"links":167,"meta":171,"order":176,"provisional":33,"status":23,"stem":177,"technologies":178,"__hash__":184},"engineering/engineering/hawkeyes.md",{"es":155,"en":155},"Hawkeyes",[157],{"es":158,"en":159},"Proyecto académico en equipo","Team academic project",{"es":161,"en":162},"2020 · actualizado en 2026","2020 · updated in 2026",[164],{"es":165,"en":166},"Juego web distribuido en el que varias personas compiten por encontrar logotipos en un tablero aleatorio y adaptable. Incluye partidas privadas configurables y comunicación en tiempo real entre clientes y servidor mediante WebSockets; la copia pública actualiza las dependencias sin alterar la autoría ni la experiencia original.","A distributed web game in which multiple players compete to find logos on a randomized, responsive board. It includes configurable private games and real-time client-server communication through WebSockets; the public copy updates the dependencies without altering the original authorship or experience.",[168],{"label":169,"href":170,"external":84},{"es":81,"en":82},"https://github.com/rodamaj/hawkeyes",{"body":172},{"type":26,"value":173,"toc":174},[],{"title":29,"searchDepth":30,"depth":30,"links":175},[],6,"engineering/hawkeyes",[179,180,181,182,183],"JavaScript","HTML","CSS","Node.js","WebSockets","IDjZTeIv_U1aEVwUj4FUzoqyuHlTemShXvNcnP7bHOk",{"id":186,"title":187,"context":189,"date":191,"description":194,"extension":22,"links":198,"meta":202,"order":207,"provisional":33,"status":23,"stem":208,"technologies":209,"__hash__":215},"engineering/engineering/trueques-ucr.md",{"es":188,"en":188},"Trueques UCR",[190],{"es":158,"en":159},{"es":192,"en":193},"2020 · renovado en 2026","2020 · reworked in 2026",[195],{"es":196,"en":197},"Mercado universitario para publicar artículos y gestionar trueques, ofertas y notificaciones. La versión actual conserva el diseño MVC y la identidad del proyecto original mientras lo lleva a ASP.NET Core, con autenticación, persistencia mediante Entity Framework Core y una base de datos SQLite autocontenida.","A university marketplace for publishing items and managing trades, offers, and notifications. The current version preserves the MVC design and identity of the original project while bringing it to ASP.NET Core, with authentication, Entity Framework Core persistence, and a self-contained SQLite database.",[199],{"label":200,"href":201,"external":84},{"es":81,"en":82},"https://github.com/rodamaj/trueques-ucr",{"body":203},{"type":26,"value":204,"toc":205},[],{"title":29,"searchDepth":30,"depth":30,"links":206},[],7,"engineering/trueques-ucr",[210,211,212,213,214],"ASP.NET Core MVC",".NET","Entity Framework Core","ASP.NET Core Identity","SQLite","RTFkIjydYnIPQRzHNzoE0EPVFoHf2jfL4w7vPqNrxQE",1785469067398]