Full-stack developer from Lisbon, with an MSc in Computer Science and Engineering from Instituto Superior Técnico. I like building small, fast, well-polished tools, mostly with TypeScript, Svelte and Rust. Outside of code I play the violin and tinker with electronics.
- Gira+ · gira-mais.app: an alternative app for Lisbon's GIRA bike-sharing system, focused on speed, reliability and a clean UI. Co-created and maintained with @ttmx. TypeScript, SvelteKit, MapLibre, Capacitor
- OpenStand · try it: open-source sheet music reader and performance tool (PWA) with setlists, annotations, ChordPro and hands-free page turning with pedals, MIDI or face gestures. TypeScript, React, pdf.js, Cloudflare Workers
- Movie Night · try it: a definitely not overengineered app for choosing what to watch with friends: swipe, veto, runoff, winner. SvelteKit, Drizzle, SQLite
- Patchbay: a friendly cross-platform GUI for SSH: browse and transfer files, forward ports, open terminals. Rust, Tauri, Svelte
- Claude Taskbar Usage: Claude's 5-hour and weekly usage limits as a tiny widget in the Windows taskbar (Rust)
- Trip Finder · try it: find the cheapest round-trip flight combinations across multiple airports and dates
- Muscle Map · try it: pick exercises and see which muscles the session actually trains
- Timer · try it: minimal keyboard-driven timer for interval sequences
- Slack Office Attendance Bot: asks your teammates whether they'll be at the office tomorrow
- Passhash · try it: generate strong passwords by hashing simpler ones
- The Long Couch: watch videos together with a synchronized player (React, socket.io)
- Automaton Simulator: create and simulate Turing machines in the browser, my first React project
- 1-2-1: peer-to-peer video calls and file transfers over WebRTC
- Interrail 2019: an interactive web album of a three-week Interrail trip across Europe
- py3d: a tiny wireframe 3D engine in Python
- backpropagation: neural network training from scratch with NumPy
- deep-generative-models: autoencoders and VAEs on stacked MNIST
- timeseries-forecast: LSTM forecasting of power system imbalance
- movie-genre-prediction: genre classification from plot summaries with Naive Bayes, SVM and DistilBERT




