eHealth-KD Challenge 2021
5th-place submission for the eHealth-KD Challenge at IberLEF 2021 by the UH-MMM team. Neural models for Named Entity Recognition and Relation Extraction in Spanish medical text.
~ / projects
From NLP research and AutoML to simulators, scrapers and an editor written in Assembly. Everything links to source.
5th-place submission for the eHealth-KD Challenge at IberLEF 2021 by the UH-MMM team. Neural models for Named Entity Recognition and Relation Extraction in Spanish medical text.
A meta-learning subsystem for AutoGOAL, an open-source AutoML framework: it learns from past experiments to predict which ML pipelines will do well on a new dataset, before training anything.
A Telegram bot written in Go that keeps a group chat in sync with Trakt.tv: new-episode notifications with streaming links, shared watch tracking, and two-way sync between chat buttons and Trakt history.
Infrastructure-as-code for a single-node home server: about 25 containers across GitOps-managed Docker Compose stacks, published through a Cloudflare Tunnel and fully observable with Prometheus, Grafana, Loki, and Tempo.
An interactive dashboard for cryptocurrency markets, joining technical indicators computed from live price data with sentiment analysis of Twitter activity.
An NLP system that detects negation in Spanish text: it finds the words that express negation and works out which parts of the sentence they affect.
A complete compiler for COOL, a statically-typed object-oriented language, from source code to runnable MIPS assembly through all four classic phases: lexing, parsing, semantic analysis, and code generation.
A Vim-like text editor written wholly in x86 assembly that boots straight on the hardware: no operating system, no libraries, just the keyboard, the screen, and the code in between.
A group expense-splitting app built by a team of four on .NET 10: one shared Blazor UI running on the web, WebAssembly, and native mobile/desktop through MAUI, orchestrated with Aspire.
A desktop app that keeps MCP server configurations in sync between Claude Desktop and Claude Code, with care for the mess of running both across Windows and WSL.
A C++ command-line tool that keeps a Home Assistant dashboard in sync with a homelab's Docker containers: it queries Portainer, checks the result against a curated YAML file, and regenerates the Lovelace view.
A web app that automates enrollment for the University of Havana's distance education programs, from applicant registration through entrance exams to major assignment.
Hands-on Jupyter notebooks made for teaching machine learning at the university: practical sessions where students learn the algorithms by using them.
A discrete-event simulation of a week of airport operations, estimating runway idle time under scheduled flights, random arrivals, maintenance, and weather.
A 32-bit MIPS-style processor built gate by gate in Logisim: register file, ALU, control unit, and split instruction/data caches, verified by running real assembly programs on it.
A solver and generator for Hidato logic puzzles written in Haskell: it can crack any puzzle you give it and invent new solvable ones from scratch.
A machine learning study on telling schizophrenic patients from healthy controls using EEG brain responses, with wavelet-based feature extraction and SVM classification.
Four optimization problems, each solved several ways (dynamic programming, backtracking, divide and conquer, greedy) with a complexity analysis of every attempt.
A simulator of how operating systems share the processor between competing jobs, with four classic scheduling algorithms and a comparison of their performance.
A search engine built from scratch on the vector space model: documents and queries become weighted vectors, ranked by similarity, with clustering, a web crawler, and evaluation on standard test collections.
A full-stack financial dashboard built following Vercel's official Next.js Learn course: App Router, React Server Components, streaming, and a PostgreSQL data layer, deployed on Vercel.
A statistical analysis of four years of household electric power measurements, using hypothesis testing, regression, PCA, and clustering to find consumption patterns.
A fuzzy logic engine built from scratch that reasons with imprecise concepts like 'near' or 'hot', covering the full pipeline from fuzzification to defuzzification.
A data collection tool that gathers mobile app market statistics from SensorTower: rankings, downloads, and pricing for the top apps across countries and categories.
The same game built independently in different frontend stacks, React on one side and Python's FastHTML with HTMX on the other, as a small, comparable playground for trying frameworks.
An interpreter for the COOL programming language extended with automatic type inference: declare a variable as AUTO_TYPE and the system deduces what it must be.
A web tool that analyzes context-free grammars: it computes their key properties, finds which parser families can handle them, and suggests fixes for problem grammars.
A proof-of-concept chat channel built on a blockchain: every message becomes a block, so no one can quietly edit the history.
A multi-agent simulation where a robot must keep a house clean while children move around making a mess, testing how reactive agent behavior holds up in a changing environment.
Hands-on data analysis projects from DataCamp's Data Scientist with Python track: real datasets explored, cleaned, and visualized in Jupyter notebooks.