Hi! I am a bilingual digital publishing and product professional with
several years of experience spanning scholarly publication production,
K-12 educational materials, and fiction books. I am specialized in
designing, managing, and developing workflows for transmedia content
production. I thrive in ambiguity, in environments that involve
reimagining how operations work and testing new technologies. I enjoy
programming my tooling with Python and AI-assisted prototyping as much
as I enjoy reading philosophy and writing essays and short stories.
Archivo de la Palabra
Perform a full-text search of the Mexican Academy of Language’s
Spanish corpus. I built the system and product design.
#visit#git
Women Deprived of Freedom
Read and listen to the poetry of incarcerated women. I built
the web UI/UX, book and cover design.
#visit#git
A Larger Reality
Play or read English-Spanish transmedia sci-fi stories. I built
the website UI and the video game UX.
#visit#git
My Digital Corner
Check out this hacked tablet for kids featuring media and video
games, with harmful sites blocked. I built the minimum viable
product.
#git
PocketAI
Use AI on your device. No servers. Download once, use offline.
I built the proof of concept with agentic coding.
#visit#git
Nieve de Chamoy
Watch my first steps in cross-media product design and
creation. I was a co-founder and CTO of this independent
publishing company.
#visit
Palabrertijos
Practice your French with this flashcard app I created for my
French exam. I built the app UI/UX and the icon.
#visit#git
Education
M.A., Philosophy, The Creator and the Created (Spanish) National Autonomous University of Mexico
August 2017 – May 2022
Mexico City
Intellectual property · Commons · Free and open source software ·
Authorship
B.A., Philosophy, The Founding and Settlement of Colima (Spanish) University of Colima
August 2007 – October 2011
Colima, Mexico
Hermeneutics · Historiography · Philosophy of history · Regional history
National Endowment for Culture and Arts Mexican Federal Government
May 2022
Master Research with Honorific Mention National Autonomous University of Mexico
May 2022
Stimulus Program for Artistic Creation and Development ColimaState Government
February 2022
Peña Colorada Award for Valedictory Honors University of Colima
November 2011
Case Study
Archivo de la Palabra
Full-text search Spanish corpus built with Django and Python.
Overview
Members of the Mexican Academy of Language and target
users.
The Mexican Academy of Language is the correspondent
academy in Mexico of the Royal Spanish Academy. Like the
other member academies, its principal function is to
ensure the proper usage of the Spanish language. Archivo
de la Palabra is one of its projects, and its objective
is to offer an open-access Spanish corpus platform for
academics and researchers.
My role began as a consultant and instructor. Over time
I was brought on to design their XML Schema, and
eventually became the lead designer and developer of
their platform.
Search engineComputational linguisticsOpen Access
Requirements
Metadata and document management
Enabling the ability to add, remove, and edit documents and
their metadata within the platform.
Easy to use for everyone
Reducing the conventional cognitive load found in linguistic
everyday tools.
Minimalistic by design
Prioritizing functionality without sacrificing aesthetics.
XML workflow
Validating, tokenizing, and indexing XML files seamlessly
into the corpus.
Process
01 – CQPweb & FreeLing Trials
The user wanted to use
CQPweb
as the front end and
CWB
as a corpus search engine. During the trials, we
discovered that CQPweb lacked metadata and document
management support, and its UI/UX design made the
platform difficult to use or customize. The user also
wanted to use
FreeLing
for natural language processing (NLP). Unfortunately,
during our trial, we found that FreeLing’s development
had stalled and its APIs were outdated or
non-functional.
02 – DjangoCWB Development
Under these circumstances, I proposed developing a
Django CMS platform to replace CQPweb while keeping CWB
as the corpora engine. For NLP tasks, I suggested using
spaCy or
NLTK. Since Django is a Python framework and spaCy and NLTK
are Python packages, they share a common language across
the front-end, document management, and corpora search,
reducing the skills required for future devs.
03 – DjangoCWB System Design
To allow more flexibility when managing documents, I
designed DjangoCWB around three main objects: corpora,
locales, and documents. With this structure, every
document is assigned to one locale, enabling a
multilingual corpus, and to one or more corpora,
avoiding duplication and allowing different document
metadata per corpus.
04 – Linguistic Data Display
In all the corpora platforms we reviewed, linguistic
data wasn’t present in the interface and users were
expected to already know where to find it. To address
this UX issue, I designed modal windows that display the
data and allow users to apply it directly to their
search in just one click.
05 – Query Made Simple (in progress)
CWB has its query language,
CQP, with a 76-page manual. Due to copyright concerns,
most of this language can’t be used in DjangoCWB, and
yet it still has a steep learning curve, requiring
constant instruction for users to find the linguistic
data they need. For these reasons, I am currently
designing a query interface similar to
GitLab’s work items search bar
(prototype) where users can easily select the type of tokens they
are looking for, without needing to learn CQP syntax.
06 – Markup Made Simple (in progress)
XML markup also has a steep learning curve that has
prevented the markup team from producing more documents
and training new personnel efficiently. Taking advantage
of the fact that markup is for documents, I am currently
working with the markup team so they can create valid
XML files without knowing XML at all, using
Editor.js
as a visual editor instead (prototype).
Outcome
Search result in DjangoCWB.
The platform has been
live
since 2026 as a minimum viable product. Thanks to the
results, we were granted additional funding that allowed
us to hire a software engineer. Currently, in my spare
time, I focus on the design while leading the engineer
towards better performance, deployment, and
maintainability. This year, the objective is to finish
the products in progress and design a user panel. In the
medium to long term, the Mexican Academy of Language
plans to offer the platform to other academies as a path
toward the self-sustainability of Archivo de la Palabra.
Through this project, I was able to design every aspect
of a digital product while learning about systems
design, user-centered design, object-oriented
programming, and computational linguistics.
Case Study
PocketAI
Private AI chat under your control and in your browser.
Overview
Mantis, an alien bug and distant relative of Zorak,
one of Space Ghost’s greatest enemies.
Pocket AI is a personal toy project where I tested the
possibility of having my own local AI chat. Instead of
using a paid AI service, I wanted an AI chat under my
control. I tried first with a self-hosted AI solution
(Open WebUI), but I realized I was looking for something
more minimalistic and transitory. So Pocket AI is where
I experimented with
Transformers.js
and
Bulma.io
to create an AI chat I can share as a file.
Pocket AI’s chat name is Mantis, a Dokarian alien bug.
Instead of a realistic humanization of AI, I opted for a
sci-fi characterization.
Local AIProof of conceptOpen Source
Requirements
Portability
Simplifying distribution by allowing AI chats to be shared
as files.
Local AI
Seeking independence and freedom in everyday AI use.
Minimalistic design
Avoiding servers, bloated software, and software as a
service.
Ephemeral memory
Testing an easy way to enforce privacy by not memorizing
anything outside the chat.
Offline first
Finding a way to use AI even if there is no internet
connection.
Process
01 – Make Claude produce its replacement
Part of the test was trying agentic coding in Spanish
using a trial and error approach. By the third iteration
in Claude chat, I had a product that met my initial
design, functionality, and usability expectations.
02 – Improve, fix, and deploy
In the next step, I used Claude Code to improve the
UI/UX, fix a couple of bugs and glitches, and deploy the
chat as a GitLab Page. With this, I completed a full
cycle from conception to deployment in just a few days.
Outcome
A chat with Mantis asking about Transformers.js.
The test is available
online. The main barrier I encountered was the hardware, even
the smallest model would freeze my computer for a couple
of seconds. As a product, it is unpolished but
promising, since it fulfills the initial requirements.
The prototyping experience with agentic coding has been
one of my most pleasant ways of using AI. Taking
advantage of the expected limitations of a prototype and
of the known issues in AI code quality, it is possible
to go from brainstorming to a functional prototype in
just a couple of hours. In this approach, the design
aspect of the product allows you to look past its
engineering limitations.