I'm a full stack developer in Porto, Portugal. From 2022 to 2026 I worked remotely for Visrez, building tools hotels and resorts use to plan events and show off their venues. That meant an interactive resort map in React and Mapbox, a 3D event space app in Vue and Three.js, and the Ruby on Rails backend behind both. I proposed the map product and built most of it, and it grew to dozens of clients paying around $20k a year each
You can try demos of that work at hsal.es. The site's source is in cv, and it's where most of my commits go right now
I'm looking for my next full stack role. Write to [email protected]
When a tool I use has a bug, I'd rather fix it than work around it. Some of what got merged:
- Astro's Rust compiler: fixes for combinators inside
:global()and JSX in object literals - React:
transitionrun,transitionstartandtransitioncancelevents - Symfony: ICU formatted messages in
trans - {fmt}: the
nspecifier for tuples and pairs - Leaflet's type definitions: updates for 1.8 and 1.9, then
strictNullChecks
- GNU social, 2021 to 2022. I was a core maintainer and led the v3 rewrite, about 1,200 commits funded by an NLnet NGI0 grant. It moved the eldest federated social network to Symfony 5 with a modular, event-driven design
- ProtoSyn, 2021. My startup's graphical node-based Vue app generated Julia code for protein simulations. It was a finalist at the European Innovation Academy
- Blender, 2019. In Google Summer of Code I made OBJ and STL import and export about three times faster
I design parts in FreeCAD for my own projects and for products, and I like making physical things. For my 10 inch rack I made the mounts that hold a Banana Pi R4 router and an ONTi switch. I've also made Gridfinity bins and holders for my tools, like calipers, scissors, soldering tips and a rotary grinder



