Lucas Mariz
Lucas Mariz

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.

Senior Software Engineer

ABILITYA · Full-time

Jun 2020 — Present · 6 yrs 4 mos

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

Frontend Developer

Pluritech Brasil

Sep 2018 — Jun 2020 · 1 yr 10 mos

Belo Horizonte, Brazil

Built cross-platform web and mobile interfaces with Angular and Ionic, establishing the frontend foundation of my career.

  • Angular
  • Ionic
  • JavaScript

Selected work

Products in production and research in the field.

Two outcomes that connect product responsibility, mobile scale, data, and applied research.

Accepted paper · MLSA 2026

Role Vectors: Tracking-Based Representations of Football Players’ Tactical Behavior

I co-authored this tracking-based representation of football players’ relative tactical roles, including interpretable in-possession and off-ball behavior profiles.

International presentationNaples, Italy · September 7, 2026

Academic path

Education

2023—2027

Bachelor's degree, Computer Science

Universidade Federal de Minas Gerais (UFMG)

Expected graduation in 2027

2019—2023

Bachelor's degree, Computational Mathematics

Universidade Federal de Minas Gerais (UFMG)

Completed in 2023

2015—2017

IT Technician

Colégio Técnico da UFMG (COLTEC)

Completed in 2017

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)
Jig Solver workspace showing analyzed puzzle pieces

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)

Capabilities

Tools in context, not progress bars.

Product engineering

JavaScript, TypeScript, React, React Native, Angular, Ionic

Quality & delivery

Cypress, Maestro, automation, testability, GitHub Actions

Applied research

Python, OpenCV, computer vision, AI, optimization

Languages

Portuguese — native · English — Cambridge C1 · French — learning

Contact

Let’s build something thoughtful.

I am open to conversations about software engineering, mobile products, computer vision, applied AI, and ambitious product ideas.