The Fastest Way I’ve Found to Build a Solid UI Without a Designer
The experience-based workflow I use to turn product requirements into a polished, usable interface quickly when design support is limited.
Open to Senior Frontend and Full Stack Engineer roles.
I’m João Forja. I turn complex product problems into reliable, intuitive software, combining frontend engineering with product, design, and business judgment from idea to production. Outside work, I train Brazilian jiu-jitsu and surf.
Based in Faro, Portugal. Available for remote opportunities.





Practical notes on React, testing, and software design.
The experience-based workflow I use to turn product requirements into a polished, usable interface quickly when design support is limited.
It's not always obvious which tests we should be writing for our React components. One way to solve this problem is to use a combination of Input Space Partitioning and Whitebox testing to guide us during the process.
It's not always obvious how to decompose a React component. This article explains a guideline you can use to validate a decomposition.
Learn about: testing, relying on TypeScript to improve correctness, and modeling data-structures while building a multilevel-list React component. In this part, we'll focus on modeling the underlying data structure to support the multilevel-list component.