
Senior Software Engineer · Remote
I build scalable digital products and explore how AI solves visual problems.
Senior web and mobile engineering in the JavaScript ecosystem, grounded in Computational Mathematics, Computer Science, and applied computer vision.
- Web & mobile
- White-label platforms
- Computer vision
- Applied AI
About
Engineering depth, mathematical curiosity.
I connect senior product engineering with an academic path in Computational Mathematics and Computer Science. My work spans React and React Native delivery, scalable white-label architecture, automation, quality systems, optimization, and computer vision.
Career
Professional experience
A web and mobile career shaped by long-lived products, reusable architecture, and testable delivery.
Milan, Italy · Remote
Engineering scalable products across a React and React Native ecosystem for international clients.
- Evolve reusable white-label foundations so multiple products can grow without duplicating core work.
- Build engineering and product automations that make delivery more consistent.
- Improve testability and end-to-end coverage across web and mobile with Cypress and Maestro.
- Share responsibility for the official Cagliari Calcio app, serving more than 10,000 users across Android and iOS.
- JavaScript
- TypeScript
- React
- React Native
- Cypress
- Maestro
Belo Horizonte, Brazil
Built cross-platform web and mobile interfaces with Angular and Ionic, establishing the frontend foundation of my career.
Projects
Experiments made tangible.
A curated set of products and academic implementations. Repository cleanup will not change this editorial order.
Active project
Jig Solver
A computer-vision platform that digitizes physical jigsaw pieces, evaluates compatibility, reconstructs the puzzle, and guides physical assembly through a camera-based assistant.
- Approach
- A typed Next.js client coordinates a Python and FastAPI solving engine, OpenCV analysis, persisted placements, and a Three.js workspace.
- Contribution
- I designed and implemented the product architecture, puzzle-analysis workflow, reconstruction lifecycle, and camera-guided assembly experience.
- Outcome
- The working product analyzes pieces, ranks compatibility, persists solutions, and guides physical assembly with stable camera tracking.
- Next.js 16
- React 19
- TypeScript
- Python
- FastAPI
- OpenCV
Open jigsolver.app(opens in a new tab)↗Private project
Planner
A private, installable personal-finance dashboard with a secure assistant for understanding expenses, income, cash flow, debts, and purchase plans.
- Approach
- A statically exported Next.js application uses Firebase Auth, Firestore, and callable Functions. Deterministic summaries constrain the provider-neutral BYOK assistant.
- Contribution
- I built the product end to end, from financial models and responsive workflows to Firestore isolation, encrypted credentials, testing, and delivery automation.
- Outcome
- The PWA brings recurring expenses, analytics, reports, financing projections, goals, and read-only AI guidance into one protected workspace.
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS 4
- Firebase
- Zod
Simplex
A command-line linear-programming solver that classifies optimal, infeasible, and unbounded problems.
- Approach
- A two-phase tableau implementation uses an auxiliary problem, Bland’s rule, numerical tolerance, and explicit feasibility or optimality certificates.
- Contribution
- I implemented input parsing, pivoting, basis construction, result serialization, and certificate validation in Python and NumPy.
- Outcome
- A broad fixture corpus covers feasible, infeasible, unbounded, degenerate, and harder linear programs.
- Python
- NumPy
- Linear optimization
View source(opens in a new tab)↗Pokémon Base
A routed Pokédex-style web application for listing, querying, and inspecting Pokémon and their evolutions.
- Approach
- Angular 7 lazy-loaded feature modules separate list, query, and detail experiences, backed by a typed HTTP service and reusable presentation components.
- Contribution
- I structured the frontend, data wrapper, routing, filters, charts, detail views, and component tests.
- Outcome
- The result is a cohesive multi-view exploration interface rather than a single static catalogue.
- Angular 7
- TypeScript
- RxJS
- Chart.js
View source(opens in a new tab)↗Greedy K-means
An empirical comparison between a greedy 2-approximation for k-center and classical K-Means clustering.
- Approach
- The experiment runs both methods across ten datasets and two Minkowski distances, measuring radius, silhouette, adjusted Rand index, and runtime.
- Contribution
- I implemented the greedy center selection, cluster assignment, evaluation pipeline, notebooks, and reproducible result tables.
- Outcome
- Per-dataset and aggregate tables make the quality-versus-computational-cost tradeoffs directly inspectable.
- Python
- Jupyter
- scikit-learn
- Clustering
View source(opens in a new tab)↗LZ78 Compression
A lossless text-compression implementation based on the LZ78 dictionary algorithm.
- Approach
- A compressed trie stores discovered phrases while separate command-line flows encode text to Z78 and reconstruct it back to text.
- Contribution
- I implemented the trie, compression and decompression pipelines, command validation, output handling, and test corpus.
- Outcome
- Ten representative text inputs and an accompanying report document round-trip behavior and implementation choices.
- Python
- Trie
- Lossless compression
View source(opens in a new tab)↗