
Meta case study
Building this portfolio
Product Design × Engineering × AI-assisted development
This portfolio began as a positioning problem. The hypothesis was that the product itself could demonstrate, rather than merely describe, my ability to connect Design, Product, and Engineering.
At a glance
- Problem
- The previous portfolio no longer represented a way of working that integrates Product, Design, Engineering, and AI-assisted workflows.
- Hypothesis
- The portfolio itself could make that continuity visible through its decisions and evidence instead of merely describing it.
- Approach
- A content-first, bilingual, and accessible experience, treated as a product and implemented as an evolving system.
- Evidence
- Documented decisions, responsive QA, automated tests, lint, type checking, a production build, and public deployment verification.
- Result
- A public, bilingual, responsive portfolio that documents the decisions, implementation, and evidence behind its own construction.
Why rebuild the portfolio
The previous presentation no longer fully represented my current convergence of Product Design, UX, software-development knowledge, Engineering collaboration, implementation, and AI-assisted workflows. The goal was no longer just to show projects: it was to make visible how I think, structure decisions, build, and validate.
The product hypothesis
I treated the portfolio as a product: content first, clear evidence, two languages, accessibility, responsiveness, technical maintainability, and continuous validation. Its implementation needed to support the professional positioning, not merely package it.
- Content-first, evidence-led narrative
- Canonical PT-BR routes and an equivalent English experience
- Shared components, accessible behavior, and testable criteria

Code as a design medium in this project
There were no final UI screens designed beforehand in Figma. Decisions moved through discussion, implementation, browser rendering, human critique, testing, and refinement. This does not make Figma obsolete or define a universal method: in this product, code was one of the design media. Figma remains relevant for documentation, references, and supporting materials.
- Objective → hypothesis → implementation → render
- Human review → test → refinement
- Commit → deploy → production validation

Product and UX decisions
The bilingual architecture, editorial Home hierarchy, project ordering, navigation without artificial hierarchies, Evidence System, Light/Dark themes, and SUBITER scannability refinement are product decisions—not merely interface details.
Architecture in service of quality
Next.js App Router, React, and TypeScript support typed routes and dictionaries. Shared components and semantic tokens maintain consistency. Tailwind CSS is the current standard for new and migrated UI; shadcn/ui and Radix primitives are used where they meaningfully solve interaction and accessibility needs.

Quality as product work
Implementation speed was paired with explicit gates: automated tests, typecheck, lint, production build, responsive QA, Light/Dark QA, PT-BR/EN localization, keyboard review, reduced-motion behavior, contrast validation, human visual review, and production deployment validation.
After publication, Microsoft Clarity became a behavioral-observation layer for the portfolio. Heatmaps, session recordings, and interaction patterns can support future UX reviews with real-use evidence, while analytics remains conditional on the visitor’s choice. The loop expands to Design → implementation → automated validation → production → behavioral observation → refinement.

Documentation and conventions
Conventional Commits organizes semantic history. BEM remains in the original/legacy CSS architecture, while Tailwind is the current UI standard. Documentation evolved alongside decisions and implementation; it supports collaboration rather than replacing it.

UX and accessibility review
UX reviews were informed by usability principles and research published by Nielsen Norman Group (NN/g). Accessibility work included review, contrast validation, keyboard QA, and relevant WCAG-oriented criteria where assessed—without claims of certification or endorsement.

Human review changed the product
Visual and semantic critique found issues that automated validation alone would not. A few examples document how decisions were revised without losing scope.
- A false breadcrumb hierarchy became the contextual “← Portfolio” link.
- Primary and complementary evidence gained distinct weight; DASA disclosure was validated through 4 → 8 → 4.
- The lightbox began deriving its width from intrinsic media dimensions.
- SUBITER gained better narrative measure, a semantic responsibilities list, and restrained editorial callouts.
- Dark tokens were corrected from 3.83:1 and 3.86:1 to 4.61:1 and 4.72:1, with a regression test.
AI-assisted collaboration
AI supported different stages of the work, but not as an autonomous decision-making layer. I used ChatGPT to discuss problems, organize context, critique alternatives, and turn decisions into clearer tasks; Codex in VS Code to work directly on the repository; and GitHub Copilot Pro+ as another assistance layer integrated into the development environment.
As the project evolved, I learned that results depended less on simply “using AI” and more on framing the problem well, providing enough context, controlling scope, and validating what was produced.
The tools accelerated parts of execution. Product decisions, UX direction, quality criteria, visual review, factual validation, and final approval remained my responsibility.

Operating the AI-assisted workflow
Building the portfolio also meant learning how to operate the system surrounding the tools. I configured ChatGPT Plus, VS Code, Codex, Git, GitHub, and GitHub Copilot Pro+, together with authentication, permissions, repository workflows, and local and production environments.
Choosing the agent and capability level also became part of the project operation. Tasks were distributed across different tools according to complexity, availability, and cost, while preserving the same human review and quality criteria.
Over time, I stopped treating every task as if it required the highest available capability. Architecture problems, broad refactors, difficult debugging, and audits justified greater reasoning capacity; smaller, well-scoped changes could use configurations proportional to the problem.
Snapshot v1.0 — Git history observed August 7–11, 2026; hours estimated through August 10, 2026. 70 commits · 5 days of activity · ~22 hours of identifiable work through August 10.
Commits and activity days were recalculated from Git history covering August 7 through 11, 2026, including implementation, refinement, and validation; the hours estimate remains limited to the earlier reconstruction ending August 10.
This technical estimate is not a claim for the project’s total intellectual effort: it does not measure earlier discovery, conversations and planning outside Git, Figma work not represented by commits, or the imagery/art-direction work defined in D-022.
I did not treat this constraint as something to solve by simply spending more. Instead, I refined task boundaries, made scope more explicit, inspected the repository before implementation, separated execution from validation, and selected capacity according to task complexity.
The main lesson was that working effectively with AI also means managing context, capacity, cost, and acceptance criteria. A tool can execute part of the work; responsibility for deciding what to do, why to do it, and when it is complete remains human.
Operational cost of the experiment
Public cost documentation only includes values with explicit attribution inside this project. No price is published from ambiguous transactions, and no recurring fee is inferred without defensible evidence.
- AI tooling: operational usage is documented through capacity and credit snapshots (August 10, 2026), without publishing non-attributable monetary values.
- Hosting: Netlify, for the current production environment.
- Development and validation were executed directly by the author, with human review responsible for scope, quality, and final approval.
From localhost to production
- Problem
- The application worked locally, but the initial deployment cycle encountered incompatibility between the available runtime and current Next.js requirements.
- Diagnosis
- The production environment’s build/runtime configuration needed to be made explicit and validated.
- Decision
- Pin a supported Node version to make the environment reproducible.
- Implementation
- The .nvmrc file began declaring Node 22 in commit 588996f.
- Validation
- The production build ran and the public Netlify deployment was verified.
- Result
- The portfolio became available in production; “works locally” was not treated as the end of implementation.

What this work demonstrates
- Senior Product Design practice and hands-on execution
- Product and systems thinking
- Software-development knowledge and Engineering collaboration
- Testing discipline, accessibility awareness, and critical review
- Production awareness and technical troubleshooting without inflating the work into DevOps or SRE
Learnings from this project
- Code can be a design medium.
- Design and implementation can happen closer together.
- Automated validation and human critique address different risks.
- Speed only creates value when paired with quality controls.
- Production reveals constraints that localhost does not.
- Using AI effectively required learning to operate the system around it—not merely asking an AI to generate code.
- AI increases execution capacity but does not replace professional judgment.