Adrián Carrillo, home
Work

WorkOptimuz in production

Electronic invoicing for Ecuador

Every sale at the register becomes an invoice authorized by the SRI, Ecuador’s tax authority. If the SRI goes down, the system recovers without issuing a duplicate.

0 duplicate invoices

Role
Software developer at Optimuz
Status
in production since October 2026
Stack
Laravel 13, PHP 8.3, PostgreSQL 16, React 19, TypeScript, MUI, TanStack Query, NestJS, Docker, nginx, Linux
Links
optimuz.dev private repositories
Home screen of the new dashboard. It shows today’s invoiced total, how many invoices are authorized, sending or need review, and the latest invoices issued.

The problem

Small businesses in Ecuador must issue an electronic invoice, authorized by the tax authority (SRI), for every sale. Doing it by hand is slow and error-prone.

What I did

I develop and modernize Optimuz’s invoicing product without interrupting invoicing.

  • From the register to the SRI. I integrated Loyverse POS: every sale becomes an authorized invoice on its own, and the customer gets the PDF and the XML by email.
  • Guaranteed issuing. If the SRI goes down, the system resends the same signed XML. Neither the invoice number nor the sale is duplicated.
  • Lumen 8 to Laravel 13, with no downtime. I validated the migration by comparing hundreds of responses against the old version, with automatic rollback.
  • A new dashboard in React 19. I migrated it from Angular 13 screen by screen, sharing the session.
  • The new POS. I designed a Flutter app that takes payments offline, with identical tax math in Dart and PHP. Management approved the design and it is in development.
Sign-in screen of the new dashboard, built with React 19: an invoice stamped “Autorizado SRI” and the line “You sell. We take care of the SRI.”, next to the form.
Sign-in screen of the previous dashboard, built with Angular 13: a generic office illustration next to the form.
Sign-in screen of the new dashboard, built with React 19: an invoice stamped “Autorizado SRI” and the line “You sell. We take care of the SRI.”, next to the form.
Sign-in screen of the previous dashboard, built with Angular 13: a generic office illustration next to the form.
Invoice list in the new dashboard, built with React 19: period filters, SRI status and per-invoice actions.
Invoice list in the previous dashboard, built with Angular 13.
Invoice list in the new dashboard, built with React 19: period filters, SRI status and per-invoice actions.
Invoice list in the previous dashboard, built with Angular 13.
The same screens, before and after. The data is fictional. The interface is in Spanish. Drag the divider or use the arrow keys.
  • Home screen on a phone, with today’s invoiced total and an hourly sales chart.

    Home

  • Invoice list on a phone.

    Invoices

  • Side menu open on a phone.

    Menu

The new dashboard was designed for phones too. The interface is in Spanish.

Outcome

In production since October 2026, with hundreds of authorized invoices and zero duplicates.

  • 0 duplicate invoices across hundreds issued
  • −61% download size React dashboard vs. Angular
  • −72% code in the new dashboard

Command palette

Home
Work
About
Contact
Résumé
Uses: my tools
SRI electronic invoicing 0 duplicate invoices
TAXIBOCARCHI 88.3% model F1 score
Aurum VIP Club 3 steps to book with a deposit
Clothing store system offline works without internet
Cambiar a español ES
Copy my email danilocarrillo1515@gmail.com
Message me on WhatsApp WhatsApp
Open LinkedIn linkedin.com
Open GitHub github.com/AdrianC1530