Olá 👋
Hi there, I’m Hugo.
By day I'm a full-stack developer. At night I write Haskell to quiet the functional demons inside my head. For the last seven years I’ve been helping startups turn ideas into software.
I care about functional programming and type systems, and about code that’s a pleasure to come back to. Away from the keyboard I’m usually in the ocean or on a climbing wall.
Keep scrolling to learn more about me

How I got here
I’ve been writing software professionally for about seven years now, and recreationally for maybe 7 more. Programming has been a passion since I was 15, writing programs on my Texas-Instruments calculator.
Somewhere along the way I fell for functional programming. I found that types and immutability let me reason about a system instead of guessing at it. I write about that sort of thing on the blog.
These days I work with startups on full-stack. I like joining early and staying long enough to see the things I built getting traction.
When I’m not working I’m surfing, climbing, or working on my next unfinished coding project.
A few things about me
Lisbon, Portugal
Would've been a nomad if only I wasn't from around here.
Surfing
Ericeira is 15 minutes away, Matadouro in the summer, Pescadores in the winter, those who know, know.

Rock climbing
Bouldering through the week, real rock when the weekend allows.
Pepita
My overweight chihuahua is also the chief morale officer / occasional pair programmer.

Functional programming
Monads, effect systems, and other cool things that The Big OOP doesn't want you to know.
Startups
There's something to be said about working in small teams and building projects from the ground up.
Hills I’m willing to die on
AI code you generate is your code
“The LLM wrote it” is not an excuse for an outage. I use them everywhere — brainstorming, drafting, review — but the diff ships under my name, and I don’t send anything out that I can’t explain line by line.
Cleverness is a tax your teammates pay
I will happily run a Brainfuck interpreter inside the typechecker for sport. In a codebase people have to maintain though it pays off to keep it simple stupid.
…and some things I was wrong about
- That a test suite slows you down… No, it buys you the nerve to delete things.
- That I could ship that feature in two days… Estimating development time has been an hard earned skill.
