Hi, I'm
I build web applications from start to finish. React, Vue, Angular on the frontend, Node.js on the backend, databases, deployments — the whole deal.

$ ./configure-ui.sh
▶Your screen, your rules.
Pick how you want to experience this site. Everything updates live. Your choice is saved between visits.
// theme
// layout
// fun mode
// language
// font size
1 | 7 years in web development. Projects were all over the place: landing pages, admin panels, embeddable widgets, online stores, banking apps, analytics dashboards. Some ran on React, some on Angular, some on Vue — each one needed its own approach, its own architecture, its own set of trade-offs.
2 | Full cycle, end to end: from requirements to production. Frontend, backend, databases, CI/CD, infrastructure. Things work better as a coherent system than as a patchwork of disconnected parts.
3 | Main stack is JavaScript/TypeScript. React and Next.js on the frontend, Express and NestJS on the backend, MongoDB and PostgreSQL for data. Right tool for the job, not the other way around.
# E-commerce Platform
E-commerce looks simple from the outside — browse, add to cart, pay. But build one yourself and the decisions start stacking up fast: how to handle layout across devices, which payment providers to support and how to swap them out by region, how much control to hand to the client without letting them wreck the store. This project is a walkthrough of those choices.
$ click to try it yourself
Mobile first, obviously. More than half of all e-commerce traffic comes from phones, so if your store doesn't feel native on a 375px screen, you've already lost. Layouts built from small screens up, not the other way around.
$ click to try it yourself
Payments are tricky — PayPal dominates in the US, Stripe is the go-to across Europe, and sometimes neither fits: local regulations or bank requirements mean you need a direct integration with a specific acquiring bank. So the payment layer is built to be swappable — plug in whatever fits your market.
$ click to try it yourself
The client is going to live with this thing long after the developer is gone. So the admin panel had to be solid — add products, change prices, update banners, manage orders. All without touching code. The kind of CMS that doesn't make you want to pull your hair out.
$ click to try it yourself
# Real Estate Listing
110 properties across 22 Lisbon districts — real addresses, real coordinates. The filter bar covers deal type, property kind, bedroom count, and price. Price goes beyond presets: choose Custom and a range slider appears, letting you dial in the exact ceiling. Every filter lands instantly: the list and the map update together, no submit, no reload.
$ click to try it yourself
The list and the map share the same state at all times. Hover a card — the map pans to its pin. Hover a pin — the matching card scrolls into view. Click to lock a selection and both panels reflect it. Two ways to navigate the same data, always in sync.
$ click to try it yourself
Filters cover price and type — but not geography. A draw tool handles that: trace a polygon around a neighborhood or drop a radius on any point, and the listing panel clips to exactly what falls inside. On the same map, a price heatmap layers value density across the city, making it easy to see where things get expensive and where the deals concentrate before clicking a single card.
$ click to try it yourself
Each listing opens a full sheet with a photo gallery, floor stats, and a live mortgage calculator — adjust down payment, rate, and term and the monthly figure recalculates on the spot. Point-of-interest overlays pull metro stops, hospitals, schools, and parks straight from the OpenStreetMap Overpass API with a toggle per category. First-time visitors get a guided onboarding tour — 5 steps on desktop, 4 on mobile — that walks through every major feature and then gets out of the way.
$ click to try it yourself
# Dev Survey Explorer
Stack Overflow publishes developer survey results every year — 65,000 respondents, 185 countries, data going back to 2017. The raw numbers are public but they're not easy to read. I took that dataset and built an interactive dashboard around it: 16 chart panels across six topic areas — languages, tech stack, AI adoption, salaries, developer profiles. The layout is built on dockview so panels are draggable and resizable, and six presets let you reconfigure the whole view in one click.
$ click to try it yourself
Every metric in the survey has a year attached to it, which makes year-over-year comparison the most interesting thing you can do with the data. A range bar at the top clips the dataset to any window — last 3 years, last 5, all the way back to 2017. Everything rerenders immediately: language popularity curves, salary comparisons, AI adoption rates. The same charts tell a completely different story depending on the window you're looking through.
$ click to try it yourself
A multi-panel resizable dashboard works on a wide screen. On a phone it falls apart. Instead of squashing the layout or hiding panels behind menus, mobile gets an entirely different interaction model: full-screen charts swiped left and right within a topic, and up and down to switch between topics. The data is the same, the year range controls work the same — the navigation is just built for thumbs instead of a mouse.
$ click to try it yourself
# Booking App
Most booking demos open straight to a form. This one starts with a landing page — because clients don't arrive at the calendar directly. They come via a link, a referral, a Google search. They need to be sold on the service before they pick a date. So the demo opens as a full brand: hero, services, brand story. The booking form is one click away, not the first thing you see.
$ click to try it yourself
The booking flow is clean and guided — pick a service, pick a date, pick a slot, leave your details, done. The calendar blocks weekends and shows which times are already taken. No confusion, no dead ends. The whole thing works just as well on a phone as on a desktop.
$ click to try it yourself
After booking, all your appointments live in one place. The barbershop leaves notes on each session — who your master is, what to expect. You can add your own notes too. And if plans change, cancelling is one click with a quick confirm so you don't do it by accident.
$ click to try it yourself
Server-side JavaScript runtime, event-driven architecture
REST APIs, middleware pipelines, lightweight and fast
Enterprise-grade backend: DI, modules, decorators
HTTP endpoints, CRUD, resource-based architecture
Flexible API queries, schema-first design, resolvers
Real-time bidirectional communication, WebSockets
Containerized environments, reproducible deployments
Reverse proxy, load balancing, static file serving
Server administration, shell scripting, systemd
S3, Lambda, EC2, cloud infrastructure and services
Deployments, edge functions, preview environments
GitHub Actions, automated pipelines, deploy workflows
Version control, branching strategies, CI/CD workflows
Every project is different — different goals, different budgets, different timelines. Here's how our collaboration might look depending on what you need.
MVP / Prototype
Test your idea before going all-in
You've got a hypothesis, a concept, maybe some sketches on a napkin. You don't need a polished product yet — you need to build something real, put it in front of users, and see if it clicks. That's where I come in.
01.Kick-off call
We sit down and figure out what exactly we're testing. Not the whole grand vision — just the core. What's the one thing your product needs to do to prove the idea works? We cut everything else ruthlessly.
02.Scoping & wireframes
I put together a rough feature map and basic wireframes. Nothing fancy — just enough so we're both on the same page about what gets built and what doesn't. Usually takes a day or two.
03.Rapid prototyping
I go heads-down for one to two weeks and build the thing. Real code, real functionality — not a clickable Figma. You get a working app you can actually show to people.
04.Review & polish
We go over it together. You click through everything, tell me what feels off, what's missing, what needs tweaking. I fix it up, we sand down the rough edges.
05.Deploy to staging
We push it out to a test environment. Now you can share the link, gather feedback, show it to investors, test with real users — whatever you need to validate the idea.
Let's work together
Got a project in mind? Drop me a line — I'm always open to interesting work.