Skip to content

I build the software companies run on.

Full stack developer and data engineer in Piura, Peru. Eight products in production — ERPs, payroll, e-commerce, electronic invoicing — four of them mine and sold by subscription, four built for clients who paid for them. Everything below has a live URL or a public repository.

Engineering notes

Four problems worth writing about. Each one links to the code or to the running system.

Legacy integration

Writing to FoxPro tables that are still open

FoxPro still runs real operations, and the application sits open on every desk from eight in the morning. Moving that history anywhere normally means closing the business for a weekend. Instead I wrote a DBF engine in Python with no dependencies: it parses the table header, appends and edits records at their byte offsets, and takes byte-range locks, so it holds only the bytes of the record it is touching. The legacy application keeps reading and writing the same file at the same time and never notices. Over 500,000 historical records reached reporting, web systems and analytics without closing for a single day.

Proof: py-foxpro-engine

Go · real time

A restaurant backend without an ORM

Mozaico is the repository with the most commits I have written. The backend is Go with Gin and sqlx — no ORM on purpose: the SQL is written by hand and sits next to the query it serves, with PL/pgSQL functions in PostgreSQL for the operations that must not be split. Order state travels to the floor and kitchen screens over gorilla/websocket, so a dish marked ready appears where it is needed without a reload or a poll. The client is React 19 and TypeScript 5.9 on Vite.

Proof: mozaicopro.djasoft.net.pe

Applied AI

Two AI designs, deliberately opposite

AlmaZen ships a conversational agent that answers on stock, sales, margins and customer debt through 29 read-only tools, and every tool is gated by its own permission: a user who cannot see margins does not get the margin tool in their toolset, so the question has nowhere to resolve. Master Color runs a public sales chatbot with no tools at all — it sees the catalog and nothing else, because anyone on the internet can talk to it. Same technology, opposite threat models: one is authenticated and constrained per user, the other is anonymous and constrained by having nothing to reach for.

Proof: almazenapp.djasoft.net.pe

Regulated domains

The part that is only hard if you are here

Peruvian electronic invoicing end to end on Greenter: submission to SUNAT, handling the CDR that comes back, voids and summary documents. Alongside it, SIAGIE and MINEDU rules in education, SUSALUD in healthcare, RENIEC lookups and the ubigeo tables. None of it is intellectually glamorous and all of it decides whether the software is usable at all — which is why an imported SaaS rarely gets it right. The reusable half is published on Packagist.

Proof: sunat-comprobantes

Open source

The products stay private because they are sold. These are the pieces that carry the engineering and none of the business rules, published in full.

  • py-foxpro-enginePython · MIT

    Reads and writes FoxPro (.dbf) tables at the byte level with byte-range locking — appends records while the 1990s application is still open on every desk. No dependencies.

  • sunat-comprobantesPackagist · MIT

    Peruvian electronic invoicing (SUNAT) utilities, published on Packagist as djasoft/sunat-comprobantes.

  • nomencladorPython · MIT

    Bulk-renames PDF invoices — reading native text, falling back to OCR when the PDF is a scan, and applying each insurer’s required naming scheme.

  • The decoupled version of AlmaZen, published in full: a Laravel API and a Vue 3 client, under PolyForm Noncommercial.

Stack

What I actually ship with, not what I have read about.

Backend
Go · Gin · sqlx · PHP · Laravel · TypeScript · NestJS · Python
Frontend
React 19 · Vue 3 · Livewire · Astro · Tailwind
Data
PostgreSQL · PL/pgSQL · Firestore · FoxPro · DBF · ETL
Mobile
Flutter
Infrastructure
Firebase · Cloudflare Pages · AWS S3 · GitHub Actions · WebSockets

Contact

Open to engineering roles and to consulting on legacy integration, Peruvian tax and regulatory domains, or putting an LLM inside a product without handing it the keys.