A daily scraper that fixes itself when LinkedIn's markup breaks
Python scraping pipeline that collects job listings, normalizes records, persists run history in SQLite, and exports datasets through CLI workflows.
A full view of public work across automation, data engineering, AI tooling, and scientific software.
14 projects
A daily scraper that fixes itself when LinkedIn's markup breaks
Python scraping pipeline that collects job listings, normalizes records, persists run history in SQLite, and exports datasets through CLI workflows.
A stateless weekly pipeline running on free infrastructure
Analytics pipeline that transforms raw job snapshots into curated DuckDB/Parquet datasets, bilingual reports, and a public MkDocs documentation site.
Deterministic codebase audit tool: structured evidence, not vibes.
Repository analysis tool that scans codebases, detects language and framework signals, summarizes dependencies, and outputs structured Markdown or JSON audit reports.
Token-exact RAG ingestion where the hot path runs in Rust.
Token-aware RAG ingestion pipeline where Rust handles performance-critical chunking via PyO3, Python orchestrates embeddings, and Qdrant stores searchable vectors.
Local pipeline that turns a Twitch VOD into publish-ready 9:16 clips using Whisper + LLM selection.
Local media automation pipeline that downloads VODs, transcribes Spanish audio, ranks candidate moments by chat activity, uses an LLM to select highlights, and cuts 9:16 MP4 clips.
A simulation + optimization lab for shelter budget allocation under uncertainty.
Discrete-event simulation and Bayesian-optimization lab that answers a shelter's budget question: given a fixed budget split across foster support, clinic hours, isolation capacity, and adoption events, which allocation minimizes overflow during kitten season?
Which His-Purkinje conduction parameters a 12-lead ECG can identify: 4 of 7, with formal calibration.
Amortized, calibrated identifiability analysis of the His-Purkinje conduction system from a simulated 12-lead ECG: which conduction parameters the ECG can and cannot recover at a stated noise floor, measured on a calibrated posterior.
Shows each of 5 quiniela players their live odds of winning the pool, updated on every real match result; with a what-if builder for any hypothetical.
Live World Cup 2026 dashboard for a 5-person quiniela: it Monte-Carlo-simulates the rest of the tournament 10,000 times from live Elo ratings to give each player their odds of finishing 1st–5th, with completed results pinned and a scenario builder for what-ifs.
Modernized an academic JAX Bayesian-optimization library into an installable PyPI package
Took an academic JAX Bayesian-optimization library that no longer installed on modern Python and turned it into an installable, CI-linted, automatically published PyPI package. A maintenance-and-packaging fork: the optimization math is upstream (Predictive Intelligence Lab); the distribution engineering is the contribution.
The fractal-Purkinje method as an installable library
Python package for generating Purkinje-network geometries over cardiac surface meshes, with simulation, visualization, and PyPI packaging.
From a research notebook to a CI-gated, bit-exact Python library
A Python research library for computational cardiology: load a myocardial mesh, a Purkinje fibre tree, and electrode positions, run an iterative Purkinje-muscle coupling loop, and synthesise a 12-lead ECG. Used as the forward-simulation backbone in an M.Sc. thesis on probabilistic Purkinje-network reconstruction.
A config-driven, leak-free walk-forward harness that ships as a real package
Package-first research toolkit for market experiments: validated YAML configs, data preparation, baselines, scikit-learn training, a leak-free rolling walk-forward evaluator, diagnostics, reports, and a paper-only Alpaca trading path.
End-to-end demo of a personal finance dashboard: synthetic brokerage statements ingested by a Python ETL pipeline into DuckDB, surfaced as a React/Next.js allocation and performance dashboard.
Interactive SQLite query lab running in the browser via sql.js/WebAssembly. Query synthetic portfolio holdings, monthly returns, and goals with plain SQL; no server, no backend.