Download Versión en español


Abraham Toriz Cruz


Xalapa, Veracruz, México

+52 1 (55) 3852 0622

categulario [at] gmail [dot] com


Mathematician. Happy programmer. Mountain guide once a month.

I believe in open source, so most of my work is publicly available either on gitlab or on github.

I enjoy both learning and teaching. I've taught so many courses and workshops on programming at Universidad Veracruzana that I can't remember.

One of xalapacode's organizers.

Professional development

Freelance programmer.
Software Architect at Tracsa, Guadalajara, MEX.
Software Developer at Auronix, Mexico City, MEX.
B.S. Mathematics at Universidad Veracruzana, Veracruz, MEX.





Karel is a small education-oriented programming language that supports function definition, loops, and recursion.

I created a GUI using bootstrap for an online version of the language and a view of Karel's world inside a canvas.

I am currently working on a new version of the GUI using vue.js.

demo source code legacy karel.js


Cacahuate is an enterprise process execution and tracking system. It locates the people involved in a defined process and keeps track of the events. It is easily integratable with existing systems via HTTP APIs.

For this project I designed an xml format that allows us to define a process with all the implied business rules and associated participants. I also wrote most of the backend code for the different components.

I designed the loosely coupled infrastructure using the rabbitmq messaging system.

demo source code docs pypi


Charpe is a notification system that subscribes to a rabbitmq queue and can send email and telegram messages. It is designed to be easily extendable to other distribution media.

source code pypi


Itacate is a python module that allows easy configuraion of any python project the same way flask is configured. It is an extraction of flask's config module.



Fleety is a vehicle-tracking platform able to send real time alerts based on rules associated with geofences and routes. I designed a modular architecture that allows horizontal scaling to satisfy the demand.

I wrote the platform's HTTP API, the redis ORM that it depends on, the modifications of an open source solution written in java that we use, a cron component that triggers events like report generation based on dates, a broker component that sends notifications through different media, and a component that generates reports.

All the components of the architecture communicate using redis's pub/sub capabilities which make them weakly coupled and easily replaceable.



Coralillo is an object mapper for the redis database. It allows defining the structure of the contained information using python classes and attributes. It supports redis geographic fields and lua scripting. It also has a package that allows easy integration with flask.

source code docs pypi

Map matching

I implemented an algorithm for finding the most likely street route that a vehicle might have taken to generate a given GPS track. The goal is to use it to clean bus routes collected by hundreds of students during an event organized by codeando xalapa.

source code

Karelapan and Karel for the CLI

Offline. I wrote Karelapan, a web platform where high school students could find programming problems for the Karel language and upload their code. The platform used django to allow easy management of the problem set, postgres's stored procedures to update students' scores, and a hand-written interpreter of the karel language to evaluate their solutions.

source code


Updated version available at This site does not eat your cookies