Skip to content
View erick-ti's full-sized avatar

Block or report erick-ti

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
erick-ti/README.md

Hi , I'm Erick

Software Engineer building production platforms, AI tools, ML retrieval systems, and full-stack products

PortfolioGitHubLinkedInEmail


🧩 Featured Projects

Doppel — Machine Learning Music Recommendation Engine

A hybrid music recommendation system that finds songs with a similar feel by combining cultural retrieval, metadata matching, audio embeddings, vector search, and LLM-generated explanations.

  • Architecture: Pulls candidates from Last.fm/ListenBrainz, matches tracks against MusicBrainz, and reranks by audio similarity using LAION-CLAP embeddings with PostgreSQL + pgvector.
  • Performance: Designed a lazy, self-growing vector corpus that embeds only candidates surfaced by real queries, reducing repeat-run latency by roughly 60×.
  • Evaluation: Built a 19-seed evaluation harness across 8 genres to compare CLAP audio reranking against cultural-retrieval baselines and HNSW nearest-neighbor search.
  • Product: Shipped a Next.js console for visualizing pipeline telemetry and explaining why recommendations were returned.

Stack: FastAPI, Python, PostgreSQL, pgvector/HNSW, Next.js, TypeScript, Docker, LAION-CLAP, Anthropic Claude


Millennium — Self-Hosted Trading Card Portfolio Tracker

A full-stack Yu-Gi-Oh collection and pricing system that treats a trading card collection like an investment portfolio: cost basis, market value, reconciliation confidence, pricing coverage, and unrealized gain/loss.

  • Data engine: Built a confidence-scored CSV import and reconciliation pipeline that matches collection exports against a 43,000+ printing catalog while preventing cross-edition pricing errors.
  • Portfolio logic: Tracks per-lot cost basis, market value, and unrealized gain/loss instead of flattening ownership into a single average price.
  • Infrastructure: Self-hosted on a Hetzner Linux VPS behind Caddy TLS with containerized services, pull-based deployment, nightly systemd ETL jobs, and off-box PostgreSQL backups to Cloudflare R2.
  • Quality: Shipped a Next.js product UI with interactive valuation views, OpenAPI-generated TypeScript clients, 873 automated pytest/Vitest/Playwright tests, and a live ops dashboard for pipeline health.

Stack: Django 5.2, Django REST Framework, PostgreSQL, Next.js, React, TypeScript, Playwright, Docker, Caddy, Cloudflare R2


🏭 Production Work

I currently work as a Software Engineer at CelLink, where I build and maintain internal production software used across multi-site manufacturing operations.

Selected work includes:

  • LLM agent: Built a production Microsoft Teams assistant using FastAPI, the Anthropic SDK, and the M365 Agents SDK, enabling 500+ users to query live SQL Server data in natural language and cutting ad-hoc data requests by 80% at roughly $115/month.
  • RAG system: Built an internal developer Q&A system over 170+ Confluence pages using semantic vector search, locally hosted LLMs, and the Atlassian REST API, reducing recurring software-team support requests by 20%.
  • Internal platforms: Architected and maintained 15+ production ASP.NET MVC applications on SQL Server serving 500+ employees across California and Texas sites with 99.9% uptime.
  • Performance: Reworked critical SQL Server procedures with cursor elimination, set-based CTE/CROSS APPLY rewrites, and composite indexing, reducing p95 execution time from 11s to 500ms.
  • Data infrastructure: Designed 20+ event-driven ETL pipelines processing 50,000+ manufacturing records daily, then migrated them to a K3s Kubernetes cluster with multi-node failover.

🛠️ Technical Stack

Area Tools
Languages Python, TypeScript/JavaScript, SQL, C#
Backend FastAPI, Django + DRF, Node.js/Express, ASP.NET MVC
Frontend React, Next.js, TanStack Query, Tailwind CSS, Vitest, Playwright
Databases PostgreSQL, pgvector/HNSW, Redis, SQL Server
AI/ML RAG, hybrid retrieve-rerank, LLM tool-calling, vector search, text/audio embeddings, local LLM deployment
DevOps Docker, Kubernetes/K3s, GitHub Actions, GitLab CI, Caddy, systemd, AWS S3, Cloudflare R2, Grafana, Vercel

🧠 Engineering Style

I like building pragmatic systems that survive contact with real users: clean data models, observable pipelines, boring deployment paths, fast feedback loops, and UIs that make messy operational data easier to trust.


🎓 Background

  • Software Engineer at CelLink
  • B.S. Computer Science, University of Minnesota — Twin Cities
  • Minors in Information Technology and Digital Media Studies
  • Experience across AI tooling, internal platforms, manufacturing software, ETL, full-stack applications, and self-hosted deployment

🤝 Connect

Pinned Loading

  1. doppel doppel Public

    Machine learning song recommender: cultural retrieval + CLAP audio embeddings + LLM rationales, over a two-gate async FastAPI pipeline on Postgres/pgvector, with a static Next.js showcase.

    Python 1

  2. millennium millennium Public

    A personal Yu-Gi-Oh collection tracker that treats a card collection like an investment portfolio: per-lot cost basis, confidence-scored pricing, and daily valuation. Django + Next.js, self-hosted.

    Python 1

  3. portfolio portfolio Public

    Astro