
Interface to infrastructure.
© 2026 DEVANGELO · Built with code + curiosity
Building digital experiences where engineering meets design.
Core identity
I design and build digital products that feel calm, polished, and easy to trust. My work sits at the intersection of UX, system design, and engineering — helping teams turn big ideas into clean interfaces, reliable workflows, and fast product experiences.
Timeline
Built my first client-first product experiences and learned the value of performance and clarity.
Worked across frontend, backend, data models, and deployment workflows for more complete product delivery.
Built systems that balance fast iteration with dependable architecture and measurable results.
Most things people call a website are really a system. There is an interface someone has to trust, data that has to stay correct, and a deployment that has to survive real traffic. I work on all three.
That means the UI and the experience around it, the API and the logic behind it, the schema everything sits on, the auth that keeps it private, and the pipeline that ships it. One person, so there are no seams between the front and the back.
I spend most of my time on the parts nobody names: how fast the first paint is, whether a form tells you what went wrong, whether it still works on a three-year-old phone.
Tools I actually use. Nothing on this list is here just to make it longer.
Frontend
Backend
Database
Tools
Select a tool to read how it is used.
Work out what the product has to do, and who for, before deciding what it looks like.
Plan the interface and the structure underneath it at the same time. Screens and schema together.
Frontend, backend, database and integrations in one codebase, shipped in reviewable pieces.
Responsiveness, accessibility, security and performance, on real devices rather than only the one it was built on.
Launch, watch it, improve it. A release is the start of the product, not the end of the project.
It has to hold up outside my machine: slow connections, small screens, keyboard only.
Layouts composed per breakpoint. Mobile gets its own composition rather than a compressed desktop.
Server rendering by default, code splitting, deferred hydration, and images sized for the viewport asking for them.
Hashed passwords, server-issued sessions, HTTP-only cookies, CSRF-protected writes, rate-limited logins.
Relational schemas with constraints and migrations, so data stays correct while the product changes.
Third-party services behind server routes, keys held on the server, failures handled explicitly.
Server-rendered metadata, Open Graph, canonical URLs, sitemap, robots, structured data.
Semantic markup, keyboard paths, visible focus, labelled controls, contrast, reduced motion.
Validation at every boundary, useful messages instead of dead ends, and real empty and failed states.
Environment separation, no secrets in the client, and a build that runs the same on any Node host.
Tell me what you're working on.