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.
Looking for Product Engineer or Full-Stack Engineer roles.
I’m João Forja, a software engineer with more than nine years of experience building and shaping software products end to end. I combine deep frontend expertise with backend delivery, product and design judgment, and applied AI. Outside work, I train Brazilian jiu-jitsu and surf.
Based in Faro, Portugal. Available for remote roles from Portugal.





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.