$ whoami

andres_tangarife

# building from silicon to cloud — embedded systems, mobile apps, web platforms, and self-hosted infrastructure.

$ stack --layers4 found
infrastructure[04]
DockernginxPostgreSQLMongoDBRedisCloudflare
web[03]
Next.js 14ReactTypeScriptTailwind CSSREST APIs
mobile[02]
React NativeJavaScriptExpo
embedded / hardware[01]
ATmega328pESP32CPythonMicroPythonPCB Design
$ uptime --self-hosted
$ ./app

AMD Price Tracker

scraping CA prices · 2× daily

Next.js 14PostgreSQLDocker

amd.paisbru.com →

$ top -bn1
$ systemctl status

self-hosted stack

running 24/7 on paisbru.com

nginxPostgreSQLMongoDBRedisCloudflare

$ cat featured/README.md

Interactive Dartboard System

End-to-end system connecting physical hardware to a mobile app. Darts are detected by ultrasonic sensors on an ESP32 with a multiplexer, scores are processed by a Python bridge, stored in a database, and displayed live on a React Native app.

$ ./pipeline --trace

Dartboard

physical board

──▶

ESP32

ultrasonic + mux

──▶

Python Bridge

serial → db

──▶

Database

dart positions

──▶

React Native

live scores

ESP32PythonMicroPythonUltrasonic SensorsMultiplexerReact NativeJavaScriptSQLite

$ ls -la projects/

more work

webinfra● live

FIFA Tracker — World Cup 2026 Album & Live Scores

Web app to track filling the Panini World Cup 2026 sticker album (980 stickers): owned / missing / duplicates, special-colour parallels with rarity, and QR swap-codes compatible with the official app's format (reverse-engineered gzip bitfields). Full accounts — email, Google and Microsoft sign-in, two-factor auth — plus a Community leaderboard with duplicate-swap matching. A live Matches section follows the real tournament: near-real-time scores (openfootball structure + ESPN overlay with graceful fallback), group standings with best-third qualification, a two-sided knockout bracket that advances winners through penalties, and tappable match pages with starting lineups drawn on a pitch by formation, team stats, goal/card timeline and live play-by-play commentary.

ReactTypeScriptViteTailwind+6
webinfra● live

MakeTabs

Turn any Spotify track into guitar tabs and 16-bit chiptunes. Songsterr-first pipeline pulls official human-transcribed tabs, with an ML fallback (Demucs + basic-pitch) for songs it doesn't have. The chiptune engine quantizes the transcription onto a beat grid and rebuilds it as melody / harmony / bass voices — with opt-in solo and drum channels — played on a Web Audio synth; a dual on-page player A/Bs the in-browser oscillator mix against a FluidSynth backend render.

PythonFastAPIReactTypeScript+6
desktopinfra▶ in-dev

Retro Creator

Desktop AI sidekick for pixel-art workflows. Electron app with tools backed by Claude (palette gen, sprite critique with vision, tileset planner with autotiling rules, animation brief, concept generator) plus per-project reference libraries and a re-runnable call history. Self-hosted ComfyUI container runs SDXL Turbo + a pixel-art LoRA on a local GPU, with img2img reference for character consistency. API keys encrypted with safeStorage (AES-GCM fallback for headless environments).

ElectronReactTypeScriptVite+5
game◇ pre-prod

GREEN DAY: Boulevard of Broken Pixels

16-bit side-scrolling tribute platformer in Godot 4. Each level is a Green Day song with chiptune backing generated live by MakeTabs. Art direction: Scott Pilgrim-inspired pixel art. Game design document complete, asset pipeline being built in Retro Creator.

Godot 4GDScriptPixel ArtAseprite+1
webinfra● live

AMD Price Tracker CA

Tracks Canadian CAD prices on AMD CPUs and GPUs across retailers — Newegg and Canada Computers via axios/cheerio, and Amazon.ca through a Playwright stealth microservice. Full price history in PostgreSQL, interactive charts, GPU AIB variants and a price-alert system, refreshed on a schedule.

Next.js 14TypeScriptPostgreSQLDocker+3
hardware

ComputerUseNanny

Custom PCB built around ATmega328p. A VL53L1X laser distance sensor detects proximity, driving an 8-LED strip and a 128×32 OLED display to give visual feedback about computer usage time.

ATmega328pCPCB DesignVL53L1X+2
mobile

MyPokeDex

Mobile Pokédex app built with React Native. Fetches Pokémon data from PokéAPI and presents it with a clean browsable interface.

React NativeJavaScriptPokéAPIExpo
web

Shop Admin Dashboard

Admin dashboard for managing an e-commerce platform. Allows updating product information through a clean Next.js interface.

Next.jsTailwind CSSJavaScript
infra

Personal Server Infrastructure

Full self-hosted stack on WSL2/Docker: nginx reverse proxy, PostgreSQL, MongoDB, Redis, Cloudflare Tunnel and Uptime Kuma monitoring, running multiple apps 24/7 behind paisbru.com — this portfolio, MakeTabs, the AMD price tracker, FIFA Tracker and its API, plus a GPU-backed ComfyUI container.

DockerDocker ComposenginxPostgreSQL+2

$ ./contact.sh

let's connect

open to opportunities, collaborations, and interesting projects.

# hosted on paisbru.com · self-hosted · docker + cloudflare tunnel