I built an end-to-end merchant support AI backend for a real commerce scenario. The project combines FastAPI, OpenAI embeddings, ChromaDB, LangGraph, and Pydantic to answer operational questions, retrieve FAQ and product context, recommend products, and escalate when the retrieved evidence is weak. This focused proof of concept was created to validate a support-agent architecture for conversational commerce use cases. It showcases a modern applied AI stack, clear service boundaries, and a pragmatic approach to retrieval-augmented and agent-oriented backend design.
I built a geospatial/data science POC to create a 2025 baseline for Chincha Norte, a Peruvian island where ecosystem restoration work is beginning. The project combines satellite imagery, terrain analysis, vessel context, and lightweight validation to answer a simple but important question: how can we measure whether restoration efforts are helping? This post is both technical and personal. It is about remote sensing and also about meaning, learning, and the kind of work I want to do with the time I have.
I built an experimentation-style workflow on top of the UCI Online Retail dataset using Databricks Free Edition, Spark SQL, and Python. The dataset contains no real intervention, so the result is not a causal estimate of treatment impact. What it did allow was something still useful: practicing the mechanics around experimentation, including population definition, deterministic cohort assignment, metric construction, and statistical comparison. The project also clarified a lesson for me: in experimentation, the hardest part is often not the test itself, but the validity of the setup that produces the data.
An introduction to the task of statistical and neural summarization. Also, a practical experiment to try, evaluate, and select a SOTA model for personal use. Summarization is a human right! Read on to learn more :)
At some point, it becomes tedious to work with Kaggle or Colab, and you need to have more flexibility to produce better code. In this article, I detail key challenges of remote training, delve into crucial Transformer concepts, and share some practical tips for accomplishing this task.
A learning process is not complete unless we practice solving real problems from start to finish. Kaggle Competitions are an excellent resource for this. Read on to find out how to approach and get the most out of them!
Transformer models have replaced RNNs allowing SOTA results for many NLP tasks. This Encoder-Decoder architecture plus the use of the Attention mechanism and Transfer Learning are the base of modern NLP. Read further to understand how the training dataset travels through the network, how it changes for the Attention calculations, and how transfer learning dramatically improves the model performance. Code included below!
Encoder-Decoder architectures enable modern machine translation. They can handle any sequence of words as input. The Attention mechanism helps to focus on the most relevant elements of the source sentence when predicting the following word in the target language. Read on to understand the details of Neural Machine Translation and its implementation with PyTorch. As always, code is included!
Human communication can transmit complex ideas through the composition of words into grammatical structures. For machines to understand what we say, they need to know the building blocks of these structures and how they depend on each other. Read on to learn more about these dependencies and how to code a neural network capable of learning these complex relationships!
A look at the basics of the most popular framework for creating word embeddings. In this article, I review the mathematical foundations of word2vec and its implementation in Python using NumPy. Code included!
For machines to understand our language, we need to represent words numerically. We can do so with supervised or unsupervised ML techniques. After training our model, we can use the concept of similarity for various tasks, and in doing so, oh surprise, we run into bias! Read on to know more! (Jupyter Notebook included)
With pyenv, it is possible to install isolated python versions on our computers. By adding the power of poetry, we can effortlessly manage the project's dependencies. Both tools allow us to minimize the time needed to be productive and start coding ASAP. Read on to find out how to get started!