The damage calculator in Champions MetaDesk Studio

An unofficial desktop and web workbench for competitive Pokémon Champions: roster, team builder, live tournament meta from Limitless and Victory Road, and a two-way damage calculator. The damage engine is a Python port of Smogon's calculator, replayed against nearly a thousand scenarios generated by the original, where every roll has to match. Tested and linted in CI on every push, and released as standalone apps for Windows, macOS and Linux.

  • Python
  • Flet
  • SQLModel
  • SQLite
  • GitHub Actions
  • PyInstaller

Backend and infrastructure

  • basic_api

    Python

    A FastAPI starter with the authentication layer already solved: OAuth2 with signed JWTs, async PostgreSQL through SQLModel, and login by username, email or phone against one identity. The closest public equivalent to the auth work described in the case studies.

    • FastAPI
    • OAuth2
    • JWT
    • SQLModel
    • asyncpg
  • A FastAPI service for common celestial-mechanics calculations. Physics and backend in the same repository, which is roughly how the two halves of my work meet.

    • FastAPI
    • Python
    • orbital mechanics
  • Daemons

    Python

    The daemons running on my own Linux server. Small, unglamorous, and the reason I am comfortable claiming systemd and Debian administration on a CV.

    • Linux
    • systemd
    • self-hosted
  • A multipurpose Telegram bot, including a dynamic-DNS updater for a home server on a changing IP.

    • Telegram
    • dynamic DNS
    • self-hosted

Data analysis

  • Rental and sale prices for apartments in Bogotá: extraction, cleaning, visualisation and predictive modelling. A rework of an existing open-source dataset project rather than a fork left untouched.

    • ETL
    • Pandas
    • modelling
  • Financial analysis for a dental clinic, reading from MySQL and analysed in Pandas. Real books rather than a sample dataset.

    • Pandas
    • MySQL
    • EDA
  • A Monte Carlo study of a Monopoly board: which squares actually pay, and how long it takes to find out.

    • Monte Carlo
    • simulation
    • statistics

Numerical methods and physics

  • Fourier analysis, ordinary differential equations and PDEs, in C++ and Python. University coursework, kept public because it is where the numerical methods behind the Kalman filtering work were actually learned.

    • Fourier
    • PDEs
    • C++
  • Interpolation, numerical integration, Monte Carlo, least squares and hidden Markov models. Coursework, paired with another student.

    • Monte Carlo
    • least squares
    • HMM
  • University

    Jupyter

    Physics coursework and lab analysis from the degree at Universidad de los Andes: modern physics, waves and fluids, mechanics, astrophysics.

    • physics
    • lab analysis
    • NumPy

All repositories on GitHub