Matheus MonteiroFull stack developer · Freelance and consulting
Caxias do Sul, RS — Brazil29°10′S 51°11′W·Local timemove your cursor — every node notifies its dependentstap the grid — every node notifies its dependents
Software, from the inside out.
Custom software for real problems.Custom softwarefor realproblems.Integrations forsystems thatdon't talk.Back end, front endand everythingin between.Ideas off the pageand intoproduction.Custom softwarefor realproblems.
I build complete web applications, integrations and automation for companies that need to simplify processes, connect systems and get digital products off the ground.
From shaping the solution to front end, back end and deployment, I turn business needs into software that is useful, maintainable and ready to evolve.
Systems that keep operations running.Systemsthatkeepoperationsrunning.
Work done as an employee at companies, not as freelance contracts. Client names and internal details are left out; the descriptions stay at the engineering level.
A warehouse management system built from scratch, kept in sync with the ERP and turned into a PWA for Android handhelds.
Context
The warehouse needed to control stock, receiving, internal moves and shipping of materials, in step with the production orders and movements recorded in the ERP.
My contribution
I built the WMS end to end as the company's full stack developer: the screens and stock rules, the ERP integration and the PWA version for the handhelds.
Technologies
PWA
ERP
Tailwind CSS
daisyUI
What was done
The complete WMS: stock, receiving, internal moves and shipping.
ERP integration that automatically syncs production orders, stock movements and logistics processes.
Turning the WMS into a PWA for Android handhelds, designed for mobility, performance and use on an industrial floor.
Consistent interfaces with Tailwind CSS and daisyUI, with attention to accessibility and usability.
What was delivered
Receiving, internal moves, stock and shipping run on the company's own system, synced automatically with the ERP and usable on the warehouse's Android handhelds.
Every order from two products goes through a single microservice, which charges through third-party payment services and issues the service invoices.
Context
Orders from the company's products are sent to a billing microservice, which integrates the third-party payment services and the service that issues Brazilian service invoices (NFS-e).
My contribution
I contribute as part of the team: queue- and job-based processing, invoice storage on S3, reconciliation jobs and GraphQL in the back end of one of the products.
Technologies
Laravel
Laravel Queues
Horizon
AWS S3
AWS RDS
GraphQL
What was done
Contributed to the microservice in Laravel, with Laravel Queues, Horizon and jobs to process orders asynchronously.
Invoice upload and download on AWS S3 with pre-signed URLs; the database on AWS RDS.
Jobs that reconcile transaction amounts and statuses.
GraphQL in the back end of one of the products that integrate with the microservice.
What was delivered
A single billing point for orders from two products, with asynchronous processing and routines that check transaction amounts and statuses.
Migrating the company's internal system to an MVC architecture on an in-house framework inspired by Laravel.
Context
The company's internal system was a legacy PHP application. The restructuring prioritized organization, maintainability, scalability and fewer external dependencies.
My contribution
I led the restructuring into MVC, defined the architecture and coding standards, and built the Database Manager.
Technologies
PHP
MVC
SQL Server
PostgreSQL
SOLID
What was done
A full restructuring of the system into MVC, on an in-house framework inspired by Laravel.
A Database Manager that abstracts and manages SQL Server and PostgreSQL in the same application.
Defining the architecture, standardizing the code and evolving the platform continuously with SOLID principles.
What was delivered
An organized MVC codebase with fewer external dependencies, and access to SQL Server and PostgreSQL through the same layer.
I've been building software since 2023 — on a lending platform, on multi-tenant B2B systems and on the internal system of a manufacturing company, where I built a WMS that runs on Android handhelds, integrations with ERP and CRM, and the modernization of a legacy PHP codebase. Today I'm a back-end developer at My Smart Clinic, contributing to the billing microservice that connects payments and invoice issuing.
What drives me is understanding how things work underneath. I like architecture — clear responsibilities, explicit decisions, SOLID where it earns its place — and I like opening the black box even more: reading a framework's source, working out why an abstraction leaks, rewriting it from scratch to check that I really understood it. That's how Ion started.
Day to day, that turns into pragmatism. I aim for software the next person can maintain and integrations that fail predictably. I've gathered requirements directly with clients, led technical meetings and taken part in the architecture decisions of the systems I've worked on.
Since 2025 I've also taught programming logic, PHP and Python. Explaining a concept to someone who's just starting is the best test of whether I actually understand it.
spec.sheet29°10′S 51°11′W
Based in
Caxias do Sul, RS, Brazil
Currently
Mid-level Back-end Developer · My Smart Clinic
In parallel
Technology Instructor · Flexxo TI
Education
Associate degree in Systems Analysis and Development · FSG (in progress)
Focus
Full stack: business systems, integrations and back end
Languages
Portuguese (native) · English (intermediate)
§05Experience
One main line and a parallel branch.Onemainlineandaparallelbranch.
Software engineering since 2023. Teaching since 2025, in parallel.
Travel in time
Drag along the line to see where I was and what I worked with, month by month.
The billing microservice that receives orders from My Smart Clinic and Olá Doutor and connects them to payments and invoice issuing.
Contributing to the billing microservice in Laravel, with Laravel Queues, Horizon and jobs
Integrations with third-party payment services and with service-invoice (NFS-e) issuing
Invoices on AWS S3, with pre-signed URLs for upload and download; the database on AWS RDS
Jobs that reconcile transaction amounts and statuses; GraphQL in the back end of one of the products
PHP
Laravel
Laravel Queues
Horizon
Redis
AWS S3
AWS RDS
GraphQL
Nov 2025 — Jul 2026 · Caxias do Sul, RS
Full Stack DeveloperOrbe do Brasil
Restructuring the internal system, a WMS wired to the ERP, and the integrations that connect the company.
Migrated a legacy PHP system to MVC on an in-house framework inspired by Laravel
Built a complete WMS integrated with the ERP, turned into a PWA for Android handhelds
SSO with LDAP and Keycloak; a Database Manager for SQL Server and PostgreSQL
Integrations with ERP, CRM and OpenProject; dashboards in Apache Superset
PHP
MVC
SQL Server
PostgreSQL
Keycloak
LDAP
PWA
Tailwind CSS
daisyUI
Apache Superset
Jan 2025 — present · Caxias do Sul, RS
Technology InstructorFlexxo TI
Teaching programming logic, PHP and Python to classes of different levels.
Planning classes, teaching materials and hands-on projects
Algorithms, data structures and programming best practices
One-on-one follow-up and mentoring on projects for the job market
PHP
Python
Jan 2024 — Oct 2025 · Caxias do Sul, RS
Full Stack DeveloperDWT TI
Enterprise systems for industrial and commercial clients, from requirements to deployment.
A multi-tenant B2B purchasing platform, with RBAC using CASL
REST APIs documented with Swagger/OpenAPI; database migrations with Prisma
CI/CD with automated deployment to Microsoft Azure
Requirements gathering and technical meetings directly with clients
Node.js
TypeScript
PHP
Next.js
MySQL
Prisma
CASL
Swagger/OpenAPI
Azure
Mar 2023 — Jan 2024 · Caxias do Sul, RS
Full Stack DeveloperME Empresta
A lending and investment platform, on web and mobile.
Features for the payroll-loan platform, from planning to implementation
REST APIs connecting the web and mobile applications
Integrations with third-party services and APIs
Scrum with two-week sprints and code review
React
Next.js
Node.js
TypeScript
PHP
Laravel
MySQL
§06Expertise
Where each tool came in.Whereeachtoolcamein.
Organized by system layer, not by logo. Hover a technology, or reach it with the keyboard, to see where it was used.
What's your problem?
Pick a situation to see what I'd use and where I've done something similar.
L1
Back end & Architecture
APIs, business rules and the structure that keeps them maintainable.
L2
Front end & Interfaces
Web and mobile interfaces, from internal dashboards to PWAs.
L3
Data & Infrastructure
Where data lives and how code reaches production.
L4
Systems & Integrations
Identity, permissions and how systems talk to each other.
Pick a technology
§07Side project · framework
To understand frameworks, I wrote one.Tounderstandframeworks,Iwroteone.
Ion is a reactive micro-framework for server-rendered HTML — PHP, Laravel, any back end. State lives in Proxy-based stores; every binding is a small effect that records exactly the keys it reads and writes straight to the DOM, with no virtual DOM.
Package
@matheusmntt/ion
Version
v1.1.0
Size
4.4 kB gzip
Dependencies
none at runtime
Language
TypeScript
Releases
npm via GitHub Actions
Status
experimental
How a write reaches the DOM
01
Write
Assigning state.count = 1 goes through the Proxy's set trap. If the value is the same, nothing happens.
02
Tracking
Bindings, effects and computeds recorded the keys they read on their last run. Only they are notified.
03
Scheduling
Reactions go into a Set: many writes in the same tick, one run per reaction — in a microtask, or when a batch() returns.
04
DOM
Each binding compares the new value with what the DOM already holds and writes only if it changed.
Reactivity lab
This is where a small app built with Ion runs side by side with a map of what happens on every write: the state change, the scheduler's queue, the bindings and effects that run, and the DOM writes. The lab needs JavaScript.
What this lab changed in Ion
Building this visualization exposed real problems in Ion 1.0: bindings that re-ran on every write to their store, duplicated notifications, a loop detector that never fired. Version 1.1 fixes all of that and gained an official inspector — which is what powers everything you see here.
Personal and experimental projects, kept apart from professional work. Besides Ion, some are public and some are for my own use.
Demo application
Ion Todo
A task list written with nothing but Ion, to validate the framework in a real scenario — two stores, nine computed values, components, effects, a plugin and local persistence.
Counters, filters and progress derived from computed values
A simulated financial ecosystem — store, payment gateway, bank and invoicing — for studying payment reconciliation: detecting, classifying and tracking discrepancies across independent sources. Deliberately over-engineered.
14 ADRs plus architecture and requirements documents
TypeScript domain core: money in integer cents, rates in basis points, typed errors
Property-based tests with fast-check and Vitest
Docker Compose infrastructure with separate networks and an nginx edge proxy
Planned topology
Go, Python, PHP and Kafka are planned, not yet implemented.
A party calculator built for Brazil. A few questions — type of party, guests, duration, time of day, city and how much the crowd drinks — become a shopping list in the units stores actually sell, like cases, packs and 10 kg bags of ice, with an estimated cost and where each number comes from.
Calculation engine adjusted for the region's climate in that month, duration, time of day and crowd profile
Seven party types, an adjustable menu and a budget mode
List sharing over WhatsApp, a who-brings-what split and a Pix collection with a QR code generated by the API
No sign-up, plus a “Too much or too little?” check-in after the party
The API's OpenAPI contract generates the types the interface uses
From answers to store units
TypeScript
Fastify
Zod
Drizzle
SQLite
React 19
TanStack Query
Tailwind CSS
Vitest
Code not published
Personal-use PWA
Personal finances
An installable app for managing personal finances: monthly bills, income, debts and goals, with a balance projection for the months ahead. A framework-free front end and a Node.js back end with no external dependencies.
Server-side payslip PDF parsing with no libraries, checking the amounts against the totals before saving
Month-by-month projection with investment returns, regressive income tax, goals and a scenario simulator
Bank slip PDF import with barcode verification
Hand-made SVG charts, navigable by keyboard
Password access with scrypt, an HttpOnly session and login throttling, plus a back office for editing the data
Projection: dashed is forecast
JavaScript
Node.js
SQLite
PWA
SVG
Docker
Code not published
§09Reading
What I'm reading.WhatI'mreading.
The books I'm reading now, the ones I've finished and the ones in the queue. A shelf that keeps growing along with everything else.
§10Contact
Have somethingHavesomethinginteresting in mind?interestinginmind?Let's build it.Let'sbuildit.
Tell me what you need: a new system, an integration, an MVP or a system that needs to evolve. Email is the fastest way; I also reply on LinkedIn.
This form drafts an email with your answers and opens your email app. Nothing is sent or stored by this site.
Project sheet
Draft
Project
—
Client
—
Reply to
—
Deadline
—
Budget
—
Problem
—
0 of 6 fields
The sheet lives only in your browser. Nothing is sent until you send the email.
Frequently asked questions
What kinds of projects do you take on?+
Custom web applications and systems, integrations and automation, MVPs, and consulting to evolve existing systems — the four services described above.
Can you work on a system that already exists?+
Yes. Much of my experience is evolving systems in use: I modernized a legacy PHP system, integrated enterprise systems and maintained platforms in production. I start by understanding the code and the context before proposing changes.
How does a project start?+
With a conversation to understand the problem. Then we agree on scope, priorities and next steps — the stages are under “How it works”.
Do you take on small projects or MVPs?+
Yes. A small, well-defined scope is often the best starting point; the right size comes out of the first conversation.