12+ years in IT, independent since 2019. APIs, data pipelines, automation, and applied LLM/AI work — see the full profile for background, full stack, and contact.
💡 Most of my professional projects are private due to client NDAs. The 16 public repositories below demonstrate the technologies I use in practice, grouped by area. Click a group to expand it.
4 projects — Model Context Protocol, RAG, LLM evaluation, and ML prediction
Model Context Protocol server that queries and compares Claude, GPT, and Gemini side by side through a single interface.
Stack: MCP Claude / GPT / Gemini adapters httpx
- Adapter-per-vendor design — adding a new provider means adding one file, not touching existing ones
- Providers are opt-in based on which API keys are configured, with no hard failure when one is missing
- Comparison logic is decoupled from the MCP transport layer, so it's testable on its own and via a real MCP session
End-to-end retrieval-augmented generation pipeline that answers questions grounded in a document set, with citations back to the source chunks.
Stack: Hybrid retrieval (RRF) Qdrant fastembed TF-IDF FastAPI Claude
- Retrieval is chosen by configuration — TF-IDF, semantic (embeddings in Qdrant), or hybrid, which merges both rankings with Reciprocal Rank Fusion; TF-IDF stays a first-class mode that runs fully offline with no model download
- Each mode is measured on a 40-question golden set (hit rate@3: hybrid 0.975, semantic 0.900, TF-IDF 0.875), and CI fails if hybrid falls below the TF-IDF baseline — the README also says where semantic search alone loses
- Every generated answer returns alongside the exact chunks it was grounded in, not just a confident-sounding response
Rubric-based evaluation pipeline for LLM outputs, producing labeled data usable for fine-tuning.
Stack: Anchored rubrics LLM-as-judge Preference data (DPO-shaped)
- A golden-set agreement check validates the LLM judge against human-labeled examples before trusting its scores
- Score gaps between ranked outputs are converted directly into DPO-style preference pairs
Classification models predicting short-term price direction, benchmarked against a naive baseline.
Stack: scikit-learn Random Forest MLP
- Chronological train/test split and lookahead-free features — avoids the temporal leakage that quietly inflates backtest accuracy
- Every model is compared against a baseline predictor, so "better than chance" is actually demonstrated, not assumed
3 projects — REST APIs and high-performance data pipelines
Production-ready REST API template with JWT authentication and full CRUD, intended as a real starting point, not a toy example.
Stack: FastAPI SQLAlchemy JWT Pydantic
- JWT auth with bcrypt password hashing and refresh-token handling built in, not bolted on later
- Interactive Swagger/OpenAPI docs generated automatically from the Pydantic schemas
Async REST API combining Django Ninja's typed routing with MongoDB as the primary store.
Stack: Django Ninja MongoDB Motor JWT
- Fully async data access via Motor, paired with Django Ninja's type-hinted request/response validation
- Argon2 password hashing, stronger by default than the more common bcrypt/PBKDF2 choices
Modern ETL pipeline built for throughput, moving data through Parquet and SQL without a Pandas bottleneck.
Stack: Polars DuckDB Parquet
- Benchmarked at 10-100x faster than an equivalent Pandas pipeline, with the benchmark included in the repo, not just claimed
- DuckDB used for the SQL-shaped transforms, Polars for the rest — each tool used where it's actually faster
4 projects — scraping, Telegram/Discord bots, and no-code integration
Complete scraping toolkit covering three different extraction strategies for three different kinds of target.
Stack: Selenium Playwright BeautifulSoup Polars
- Three scrapers, not one — BeautifulSoup for static HTML, Playwright/Selenium for JS-rendered pages, picked per target instead of forcing one tool everywhere
- Built-in rate-limiting to avoid hammering target sites, with results exported to Parquet via Polars
Real-time price-alert bot that watches the Binance API and notifies users the moment a threshold is crossed.
Stack: python-telegram-bot Binance API asyncio SQLAlchemy
- Fully async with
asyncio+aiohttp, so price polling never blocks the bot's command handling - Per-user alert thresholds persisted via SQLAlchemy, scheduled with APScheduler instead of a naive sleep loop
Moderation bot built around Discord's modern slash-command interface, with persisted infractions.
Stack: discord.py SQLAlchemy asyncio
- Slash commands throughout, not legacy prefix commands — matches how Discord actually expects bots to behave today
- Moderation actions and infractions persisted to a database, so history survives a bot restart
Webhook-driven automation suite connecting no-code platforms (n8n, Make) to a custom Flask backend for logic that doesn't fit visual workflows.
Stack: Flask n8n Make Webhooks
- Used where it genuinely fits: no-code platforms handle orchestration, Flask handles the logic (e.g., lead scoring) that needs real code
- Integrates with Telegram and Slack as delivery channels for automated workflow outputs
3 projects — technical analysis, strategy simulation, and EA trade analysis
Interactive dashboard with technical indicators for market analysis, built for quick visual read of price action.
Stack: Streamlit Plotly yfinance
- SMA, EMA, RSI, MACD, and Bollinger Bands, plotted on interactive Plotly candlestick charts
- Display and analysis only, by design — no order execution path, so it can't be mistaken for a live trading tool
Backtester comparing money-management strategies across thousands of simulated trade sequences.
Stack: Monte Carlo simulation DuckDB Kelly Criterion
- Fixed, Martingale, D'Alembert, Fibonacci, and Kelly Criterion compared on ruin rate, not just average return — the metric that actually matters for risk of blowing an account
- Hundreds of Monte Carlo trials aggregated and queried via DuckDB SQL
A real MetaTrader 5 Expert Advisor paired with a Python/Polars pipeline that analyzes its exported trade log.
Stack: MQL5 Polars MetaTrader 5
- A complete, functioning EA with percent-risk position sizing, not a stripped-down demo
- Win rate, profit factor, expectancy, and max drawdown computed directly from the EA's own trade log
2 projects — automation scripts and a multi-platform security scanner
Multi-platform security analysis platform (Web, Mobile, Desktop) combining SAST, SCA, secret detection, and authorized DAST, with AI-generated fix prompts.
Stack: Next.js Semgrep Gitleaks OSV-Scanner Nuclei Claude API
- Orchestrates Semgrep, Gitleaks, OSV-Scanner/Trivy, MobSF, Nuclei, and Checkov behind one pipeline, instead of running each tool by hand
- Every finding gets an automatically generated, ready-to-paste Claude Code fix prompt with the exact file, line, and expected fix
- Active pentest (Nuclei) requires explicit, audited authorization confirmation on two independent layers before it runs against any URL — never runs against a target without consent
A collection of 8 standalone automation scripts for everyday system and file tasks.
Stack: Python pathlib psutil
- Covers file organizing, backups, duplicate finding, log analysis, Excel handling, email automation, and system monitoring
- Each script is self-contained and runnable on its own — no shared framework required to use just one of them
📧 lacerdatradercode@outlook.com · 💼 LinkedIn · 🐙 Profile