Senior Full-Stack Engineer with 13+ years of experience building scalable web applications — primarily with Laravel / PHP on the backend and React / Next.js / TypeScript on the frontend.
I design systems around Clean Architecture and Domain-Driven Design, and I enjoy owning products end to end: from discovery and scope definition to architecture, delivery and production. Previously Technical Lead at Bikeflip, an Italian bicycle marketplace. Today I work as an independent engineer through nullio.xyz, mostly with startups and European clients.
I believe technology is a powerful tool for social impact, supporting a free, accessible, and open internet.
B2B hospitality exchange platform — hospitality businesses list their structures and exchange stays with each other through a points-based system (ExchangePoints) instead of money.
End-to-end build: discovery, scope negotiation, architecture, backend and frontend.
Stack
- Backend: Laravel 11 · PHP 8.3 — REST API
- Frontend: Next.js · TypeScript · React
- Two independent repositories (API + web app)
Architecture & approach
- Clean Architecture + DDD: business rules live in the domain layer, isolated from the framework, HTTP and persistence
- Code organised by bounded contexts: Structures, Exchanges, ExchangePoints, Notifications, Identity
- Use cases (application services) orchestrate each business operation; controllers stay thin
- Domain events drive side effects (notifications, emails) without coupling modules
- Scheduled daily jobs for time-based business rules (expirations, reminders, status transitions)
- Phased delivery by milestones, with a formal change-request process to protect scope
- AI-assisted development with documented conventions (
CLAUDE.md,AGENTS.md) and phased implementation plans per repository
flowchart LR
W[Next.js / TypeScript<br/>Web App] -->|REST| H[HTTP Layer<br/>Controllers · Requests · Resources]
H --> A[Application Layer<br/>Use Cases]
A --> D[Domain Layer<br/>Entities · Value Objects · Rules · Events]
A --> I[Infrastructure<br/>Eloquent · Mail · Queue · Scheduler]
I -.implements.-> D
Key features
- Multi-step structure onboarding wizard for hospitality properties
- Exchange request flow with a full status lifecycle (request → acceptance → confirmation)
- ExchangePoints ledger — every credit/debit tracked as an auditable movement
- Safe handling of simultaneous exchange requests on the same structure
- Notification domain (in-app + email) driven by domain events
- Email verification flow and privacy-aware address visibility rules
My own SaaS: AI-generated showcase videos for e-commerce products — upload a product image, get a ready-to-publish video.
- Backend API with Laravel, frontend with React + Next.js (i18n: pt-BR, en, it)
- Integration with Replicate and multiple generative AI video models (Kling and others)
- Credit management system for AI usage, with admin panel
- WebSocket integration for real-time generation status updates
- Asynchronous, queue-based pipeline for AI media generation
Website for the music project Nullio — acoustic guitar and voice. Built with Laravel + Inertia.js + React.
- Custom audio player and streaming
- Integration with Google Analytics and Meta tracking
- Visitor insights: countries, new vs. returning visitors, most visited pages
- Performance and engagement monitoring
Portfolio website for the tattoo artist Solztt, focused on turning visitors into booked clients. Built with Laravel + Inertia.js + React.
- Integration with Google Analytics and Meta tracking
- User behaviour tracking and most visited pages analysis
- Visitor insights: countries, new vs. returning visitors
- Performance and engagement monitoring
Backend: Laravel · PHP 8.3 Frontend: React · Next.js · TypeScript · Inertia.js Architecture: Clean Architecture · DDD · REST APIs · Event-driven design · Queues & Scheduled Jobs Databases: MySQL · PostgreSQL Integrations: Generative AI (Replicate) · WebSockets · Google Analytics · Meta Pixel Workflow: AI-assisted development (Claude Code) · Milestone-based delivery
Portuguese (native) · English · Italian

