[{"data":1,"prerenderedAt":573},["ShallowReactive",2],{"featuredWork":3},[4,176,333,448],{"_path":5,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":9,"description":8,"order":10,"slug":11,"company":12,"role":13,"stack":14,"duration":22,"demoUrl":23,"featured":24,"cover":25,"summary":26,"body":27,"_type":170,"_id":171,"_source":172,"_file":173,"_stem":174,"_extension":175},"/work/fit-energia-landing-platform","work",false,"","High-Conversion Landing Platform",1,"fit-energia-landing-platform","Fit Energia · Santander Group","Senior Product Engineer (Squad Lead)",[15,16,17,18,19,20,21],"Next.js","Ruby on Rails","PostHog","TypeScript","A/B Testing","Edge Optimization","CI/CD","Jun 2025 – Present","https://lp.fitservicos.com.br/",true,"/assets/img/work/fit-energia-cover.jpg","End-to-end ownership of a high-conversion landing page platform for a Santander Group energy company. From product discovery through to a 23% lift in lead conversion via A/B testing and feature flagging.",{"type":28,"children":29,"toc":162},"root",[30,39,45,51,56,61,67,72,128,134,139,144,150],{"type":31,"tag":32,"props":33,"children":35},"element","h2",{"id":34},"the-problem",[36],{"type":37,"value":38},"text","The Problem",{"type":31,"tag":40,"props":41,"children":42},"p",{},[43],{"type":37,"value":44},"Fit Energia, part of the Santander Group, needed a landing page platform capable of supporting rapid experimentation across multiple acquisition funnels. The existing approach was slow to iterate, hard to test, and disconnected from the data needed to make good product decisions.",{"type":31,"tag":32,"props":46,"children":48},{"id":47},"my-role",[49],{"type":37,"value":50},"My Role",{"type":31,"tag":40,"props":52,"children":53},{},[54],{"type":37,"value":55},"I joined as Senior Product Engineer and Squad Lead, owning the product from discovery through delivery. That meant aligning with stakeholders on the right problems before writing a line of code, then leading a cross-functional squad of 5 across engineering, design, and product to build and ship it.",{"type":31,"tag":40,"props":57,"children":58},{},[59],{"type":37,"value":60},"I worked across every layer: discovery sessions with business stakeholders, architecture decisions with the infra team, implementation with dev, and design reviews to keep the experience consistent under pressure.",{"type":31,"tag":32,"props":62,"children":64},{"id":63},"what-we-built",[65],{"type":37,"value":66},"What We Built",{"type":31,"tag":40,"props":68,"children":69},{},[70],{"type":37,"value":71},"The platform is a Next.js frontend served with edge optimization, pulling content from a Rails monolith through a carefully designed API layer. The result is fast delivery globally, with content managed by the existing backend teams without friction.",{"type":31,"tag":73,"props":74,"children":75},"ul",{},[76,88,98,108,118],{"type":31,"tag":77,"props":78,"children":79},"li",{},[80,86],{"type":31,"tag":81,"props":82,"children":83},"strong",{},[84],{"type":37,"value":85},"Next.js frontend:",{"type":37,"value":87}," server-side rendering and edge delivery for SEO and conversion performance",{"type":31,"tag":77,"props":89,"children":90},{},[91,96],{"type":31,"tag":81,"props":92,"children":93},{},[94],{"type":37,"value":95},"Rails content layer:",{"type":37,"value":97}," structured API from the existing Rails monolith, avoiding a CMS migration that would have stalled the project",{"type":31,"tag":77,"props":99,"children":100},{},[101,106],{"type":31,"tag":81,"props":102,"children":103},{},[104],{"type":37,"value":105},"Edge optimization:",{"type":37,"value":107}," worked with the infra team to reduce TTFB and improve Lighthouse scores across all acquisition pages",{"type":31,"tag":77,"props":109,"children":110},{},[111,116],{"type":31,"tag":81,"props":112,"children":113},{},[114],{"type":37,"value":115},"A/B testing with PostHog:",{"type":37,"value":117}," experimentation on copy, layout, and CTAs without code deploys for each variant",{"type":31,"tag":77,"props":119,"children":120},{},[121,126],{"type":31,"tag":81,"props":122,"children":123},{},[124],{"type":37,"value":125},"CI/CD pipeline:",{"type":37,"value":127}," automated deployment reducing lead time from 1 week to 1 day",{"type":31,"tag":32,"props":129,"children":131},{"id":130},"engineering-approach",[132],{"type":37,"value":133},"Engineering Approach",{"type":31,"tag":40,"props":135,"children":136},{},[137],{"type":37,"value":138},"The squad ran genuine XP: paired on critical paths, tested before shipping, integrated continuously. Deployment frequency went from sporadic to 7x what it was before. Time-to-market dropped 40%.",{"type":31,"tag":40,"props":140,"children":141},{},[142],{"type":37,"value":143},"I also led the Platform Chapter, a cross-team initiative to raise engineering quality standards across systems, not just within my squad.",{"type":31,"tag":32,"props":145,"children":147},{"id":146},"outcome",[148],{"type":37,"value":149},"Outcome",{"type":31,"tag":40,"props":151,"children":152},{},[153,155,160],{"type":37,"value":154},"The platform directly contributed to a ",{"type":31,"tag":81,"props":156,"children":157},{},[158],{"type":37,"value":159},"23% increase in lead conversion",{"type":37,"value":161}," through rigorous A/B testing and data-driven iteration. What started as a landing page project became the acquisition engine for Fit Energia's growth.",{"title":8,"searchDepth":163,"depth":163,"links":164},2,[165,166,167,168,169],{"id":34,"depth":163,"text":38},{"id":47,"depth":163,"text":50},{"id":63,"depth":163,"text":66},{"id":130,"depth":163,"text":133},{"id":146,"depth":163,"text":149},"markdown","content:work:fit-energia-landing-platform.md","content","work/fit-energia-landing-platform.md","work/fit-energia-landing-platform","md",{"_path":177,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":178,"description":8,"order":163,"slug":179,"company":180,"role":181,"stack":182,"duration":189,"demoUrl":190,"featured":24,"cover":191,"summary":192,"body":193,"_type":170,"_id":330,"_source":172,"_file":331,"_stem":332,"_extension":175},"/work/o-novo-mercado","VOD & Marketplace Platform","o-novo-mercado","O Novo Mercado","Senior Product Engineer",[183,184,18,185,186,187,188],"Vue 3","Nuxt 3","Vitest","Histoire","Amplitude","Feature Flags","Feb 2022 – Nov 2024","https://www.onovomercado.com.br/","/assets/img/work/onm-cover.jpg","Three years of end-to-end ownership across a 300k MAU VOD platform and freelancer marketplace. Built the component library, introduced experimentation infrastructure, and drove an 18% uplift in subscription conversion.",{"type":28,"children":194,"toc":323},[195,199,212,216,221,225,233,238,256,264,269,292,300,305,309,314,318],{"type":31,"tag":32,"props":196,"children":197},{"id":34},[198],{"type":37,"value":38},{"type":31,"tag":40,"props":200,"children":201},{},[202,204,210],{"type":37,"value":203},"O Novo Mercado is Brazil's largest digital marketing ecosystem. The engineering team was moving fast but without the infrastructure to move ",{"type":31,"tag":205,"props":206,"children":207},"em",{},[208],{"type":37,"value":209},"confidently",{"type":37,"value":211},". No shared component system, no experimentation tooling, no reliable way to know if what they shipped actually worked.",{"type":31,"tag":32,"props":213,"children":214},{"id":47},[215],{"type":37,"value":50},{"type":31,"tag":40,"props":217,"children":218},{},[219],{"type":37,"value":220},"Senior Product Engineer with end-to-end ownership across multiple product squads. I worked closely with the CEO and Product leadership on prioritisation and delivery, and led the XP adoption that changed how the team worked.",{"type":31,"tag":32,"props":222,"children":223},{"id":63},[224],{"type":37,"value":66},{"type":31,"tag":40,"props":226,"children":227},{},[228],{"type":31,"tag":81,"props":229,"children":230},{},[231],{"type":37,"value":232},"Vue Component Library",{"type":31,"tag":40,"props":234,"children":235},{},[236],{"type":37,"value":237},"A fully-tested, documented component library (Vitest + Histoire) used across all product squads. It eliminated the \"build it again\" problem that had been slowing every team down.",{"type":31,"tag":73,"props":239,"children":240},{},[241,246,251],{"type":31,"tag":77,"props":242,"children":243},{},[244],{"type":37,"value":245},"Reduced UI development time by 40% across squads",{"type":31,"tag":77,"props":247,"children":248},{},[249],{"type":37,"value":250},"Served a platform with 300k+ monthly active users",{"type":31,"tag":77,"props":252,"children":253},{},[254],{"type":37,"value":255},"Full test coverage with Histoire for visual documentation",{"type":31,"tag":40,"props":257,"children":258},{},[259],{"type":31,"tag":81,"props":260,"children":261},{},[262],{"type":37,"value":263},"Experimentation Infrastructure",{"type":31,"tag":40,"props":265,"children":266},{},[267],{"type":37,"value":268},"Introduced feature flags and Amplitude-driven experimentation to the platform. Something that hadn't existed before.",{"type":31,"tag":73,"props":270,"children":271},{},[272,277,282],{"type":31,"tag":77,"props":273,"children":274},{},[275],{"type":37,"value":276},"Defined the experimentation workflow from zero",{"type":31,"tag":77,"props":278,"children":279},{},[280],{"type":37,"value":281},"Ran activation, engagement, and monetization funnel experiments",{"type":31,"tag":77,"props":283,"children":284},{},[285,287],{"type":37,"value":286},"Directly influenced an ",{"type":31,"tag":81,"props":288,"children":289},{},[290],{"type":37,"value":291},"18% uplift in subscription conversion",{"type":31,"tag":40,"props":293,"children":294},{},[295],{"type":31,"tag":81,"props":296,"children":297},{},[298],{"type":37,"value":299},"Platform Ownership",{"type":31,"tag":40,"props":301,"children":302},{},[303],{"type":37,"value":304},"Owned the end-to-end frontend of the VOD platform and freelancer marketplace: subscriptions, content delivery, community flows, and marketplace transactions.",{"type":31,"tag":32,"props":306,"children":307},{"id":130},[308],{"type":37,"value":133},{"type":31,"tag":40,"props":310,"children":311},{},[312],{"type":37,"value":313},"Led XP adoption across the engineering team. Not as a mandate, but by demonstrating it worked. Pair programming, test-first development, continuous integration. The team's delivery speed and code quality both improved measurably.",{"type":31,"tag":32,"props":315,"children":316},{"id":146},[317],{"type":37,"value":149},{"type":31,"tag":40,"props":319,"children":320},{},[321],{"type":37,"value":322},"18% subscription conversion uplift. 40% reduction in UI development time. A codebase that multiple squads could contribute to confidently. Three years that built the foundation for everything after.",{"title":8,"searchDepth":163,"depth":163,"links":324},[325,326,327,328,329],{"id":34,"depth":163,"text":38},{"id":47,"depth":163,"text":50},{"id":63,"depth":163,"text":66},{"id":130,"depth":163,"text":133},{"id":146,"depth":163,"text":149},"content:work:o-novo-mercado.md","work/o-novo-mercado.md","work/o-novo-mercado",{"_path":334,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":335,"description":8,"order":336,"slug":337,"company":338,"role":339,"stack":340,"duration":345,"demoUrl":346,"videoUrl":347,"featured":24,"cover":348,"summary":349,"body":350,"_type":170,"_id":445,"_source":172,"_file":446,"_stem":447,"_extension":175},"/work/erlang-coverage-tool","Branch Coverage for the Erlang VM",3,"erlang-coverage-tool","UFMG × Dashbit","Research Developer",[341,342,343,344],"Elixir","Erlang","BEAM VM","Compiler Engineering","Feb 2022 – Feb 2023","https://dcc.ufmg.br/compiladores/","https://www.youtube.com/embed/vQUGxQqZ6as","/assets/img/work/erlang-cover.jpg","A year at the compiler level. Built branch coverage tooling for the Erlang VM in collaboration with José Valim (creator of Elixir) and the Dashbit team, extending ExCoveralls to track branch-level execution paths across Elixir production codebases worldwide.",{"type":28,"children":351,"toc":438},[352,356,368,372,377,381,389,394,402,407,415,420,424,429,433],{"type":31,"tag":32,"props":353,"children":354},{"id":34},[355],{"type":37,"value":38},{"type":31,"tag":40,"props":357,"children":358},{},[359,361,366],{"type":37,"value":360},"Erlang and Elixir had line coverage tooling. They didn't have branch coverage: the ability to know ",{"type":31,"tag":205,"props":362,"children":363},{},[364],{"type":37,"value":365},"which conditional paths",{"type":37,"value":367}," in your code were actually exercised by tests. For safety-critical and high-reliability BEAM systems, that's a significant blind spot.",{"type":31,"tag":32,"props":369,"children":370},{"id":47},[371],{"type":37,"value":50},{"type":31,"tag":40,"props":373,"children":374},{},[375],{"type":37,"value":376},"Research Developer at UFMG's LAC, in a formal partnership with Dashbit, the company behind Elixir's commercial ecosystem, led by José Valim (Elixir's creator). I designed and implemented the coverage system, working directly with the Elixir core team throughout.",{"type":31,"tag":32,"props":378,"children":379},{"id":63},[380],{"type":37,"value":66},{"type":31,"tag":40,"props":382,"children":383},{},[384],{"type":31,"tag":81,"props":385,"children":386},{},[387],{"type":37,"value":388},"Erlang Branch Coverage",{"type":31,"tag":40,"props":390,"children":391},{},[392],{"type":37,"value":393},"AST-level instrumentation using compile-time transforms. The system tracks which branches (if/case/receive clauses) are and aren't visited during test runs, reporting missed branches without meaningful runtime overhead.",{"type":31,"tag":40,"props":395,"children":396},{},[397],{"type":31,"tag":81,"props":398,"children":399},{},[400],{"type":37,"value":401},"Elixir Extension",{"type":31,"tag":40,"props":403,"children":404},{},[405],{"type":37,"value":406},"Ported and adapted the approach to Elixir's macro system, which required understanding how Elixir expands to Erlang Core before compilation. Integrated with ExCoveralls and Mix, surfacing coverage gaps inline with existing test output.",{"type":31,"tag":40,"props":408,"children":409},{},[410],{"type":31,"tag":81,"props":411,"children":412},{},[413],{"type":37,"value":414},"Production reach",{"type":31,"tag":40,"props":416,"children":417},{},[418],{"type":37,"value":419},"The tooling extended ExCoveralls, used across Elixir production codebases worldwide, to track branch-level execution paths rather than just line-level.",{"type":31,"tag":32,"props":421,"children":422},{"id":130},[423],{"type":37,"value":133},{"type":31,"tag":40,"props":425,"children":426},{},[427],{"type":37,"value":428},"This was compiler work. I spent significant time reading Erlang/OTP source, attending calls with the Elixir core team, and iterating on instrumentation approaches to avoid false negatives in complex pattern-matching branches. It required a level of care about correctness that I've carried into every codebase since.",{"type":31,"tag":32,"props":430,"children":431},{"id":146},[432],{"type":37,"value":149},{"type":31,"tag":40,"props":434,"children":435},{},[436],{"type":37,"value":437},"Working branch coverage tooling for both Erlang and Elixir, integrated with the existing test ecosystem. Presented at UFMG and shared with the Elixir and Erlang communities. A small contribution to the reliability of production BEAM systems everywhere.",{"title":8,"searchDepth":163,"depth":163,"links":439},[440,441,442,443,444],{"id":34,"depth":163,"text":38},{"id":47,"depth":163,"text":50},{"id":63,"depth":163,"text":66},{"id":130,"depth":163,"text":133},{"id":146,"depth":163,"text":149},"content:work:erlang-coverage-tool.md","work/erlang-coverage-tool.md","work/erlang-coverage-tool",{"_path":449,"_dir":6,"_draft":7,"_partial":7,"_locale":8,"title":450,"description":8,"order":451,"slug":452,"company":453,"role":454,"stack":455,"duration":460,"demoUrl":461,"featured":24,"cover":462,"summary":463,"body":464,"_type":170,"_id":570,"_source":172,"_file":571,"_stem":572,"_extension":175},"/work/convenia-dismissal-flow","HR Platform Dismissal Flow",4,"convenia-dismissal-flow","Convenia","Junior Frontend Engineer",[456,457,458,459],"Vue.js","Storybook","GraphQL","Node.js","Jan 2020 – Jan 2021","https://convenia.com.br/","/assets/img/work/convenia-cover.jpg","Designed and built the dismissal management flow for a 200k+ user Brazilian HR platform. A high-stakes, legally sensitive process that had to be technically solid and genuinely easy to use.",{"type":28,"children":465,"toc":563},[466,470,475,479,484,488,496,501,519,527,532,540,545,549,554,558],{"type":31,"tag":32,"props":467,"children":468},{"id":34},[469],{"type":37,"value":38},{"type":31,"tag":40,"props":471,"children":472},{},[473],{"type":37,"value":474},"Convenia is a Brazilian HR platform used by 200k+ users to manage the full employee lifecycle. The dismissal flow, handling the legal, financial, and administrative complexity of ending employment in Brazil, was one of the most sensitive and error-prone processes on the platform. It needed to be rebuilt.",{"type":31,"tag":32,"props":476,"children":477},{"id":47},[478],{"type":37,"value":50},{"type":31,"tag":40,"props":480,"children":481},{},[482],{"type":37,"value":483},"Junior Frontend Engineer, working closely with product and backend teams to redesign and implement the dismissal flow end-to-end.",{"type":31,"tag":32,"props":485,"children":486},{"id":63},[487],{"type":37,"value":66},{"type":31,"tag":40,"props":489,"children":490},{},[491],{"type":31,"tag":81,"props":492,"children":493},{},[494],{"type":37,"value":495},"Dismissal Flow",{"type":31,"tag":40,"props":497,"children":498},{},[499],{"type":37,"value":500},"A step-by-step guided flow for HR managers handling employee dismissal in Brazil, covering notice periods, final payments, legal documentation, and system offboarding.",{"type":31,"tag":73,"props":502,"children":503},{},[504,509,514],{"type":31,"tag":77,"props":505,"children":506},{},[507],{"type":37,"value":508},"Multi-step form with state management across complex conditional logic",{"type":31,"tag":77,"props":510,"children":511},{},[512],{"type":37,"value":513},"Real-time validation against Brazilian labour law rules",{"type":31,"tag":77,"props":515,"children":516},{},[517],{"type":37,"value":518},"Clear, human language for a process that's usually buried in legal jargon",{"type":31,"tag":40,"props":520,"children":521},{},[522],{"type":31,"tag":81,"props":523,"children":524},{},[525],{"type":37,"value":526},"Design System Contribution",{"type":31,"tag":40,"props":528,"children":529},{},[530],{"type":37,"value":531},"As part of this work, I contributed to the shared Vue + Storybook design system, building components that were reused across the platform and reduced UI technical debt by 30%.",{"type":31,"tag":40,"props":533,"children":534},{},[535],{"type":31,"tag":81,"props":536,"children":537},{},[538],{"type":37,"value":539},"GraphQL BFF",{"type":31,"tag":40,"props":541,"children":542},{},[543],{"type":37,"value":544},"Collaborated with backend teams to implement a GraphQL BFF layer with Node.js, improving data contracts and reducing overfetching for the dismissal and related HR flows.",{"type":31,"tag":32,"props":546,"children":547},{"id":130},[548],{"type":37,"value":133},{"type":31,"tag":40,"props":550,"children":551},{},[552],{"type":37,"value":553},"This was my first production role. The codebase was large and the stakes were real. Mistakes in a dismissal flow have legal consequences for companies. I learned to write carefully, test thoroughly, and ask good questions before shipping.",{"type":31,"tag":32,"props":555,"children":556},{"id":146},[557],{"type":37,"value":149},{"type":31,"tag":40,"props":559,"children":560},{},[561],{"type":37,"value":562},"A dismissal flow that HR managers could complete confidently, with fewer errors and support tickets. The design system contributions lived on well beyond my time at the company.",{"title":8,"searchDepth":163,"depth":163,"links":564},[565,566,567,568,569],{"id":34,"depth":163,"text":38},{"id":47,"depth":163,"text":50},{"id":63,"depth":163,"text":66},{"id":130,"depth":163,"text":133},{"id":146,"depth":163,"text":149},"content:work:convenia-dismissal-flow.md","work/convenia-dismissal-flow.md","work/convenia-dismissal-flow",1780153358134]