Junior Software / AI Developer who'd rather ship a rough prototype than read one more tutorial.
I build backend systems, ML pipelines, and small tools that solve one problem well — then push them until they actually work, not just until the demo does.
👉 adrian-pliego.vercel.app — go take a look, it doesn't bite
🎯 Looking for: Backend, AI/ML, or Python engineering roles — remote or hybrid.
1+ year of professional experience as an AI & Software Engineer at Authect (SaaS, May 2025 – present), promoted to Project Team Lead of a 4-person engineering team. I built an AI assistant that answers plain-English questions over live customer data — the product's core feature — plus the multi-tenant backend behind it (permissions, search, pagination) in Python, TypeScript, NestJS, Prisma, and PostgreSQL.
Before software: sales at an insurance company (Generali Seguros) and an IT internship in network & systems support (Mais Informática) — part of why I default to explaining technical work in plain language instead of jargon.
| 🏢 Sectors | SaaS / B2B software, insurance, IT support |
| 🗣️ Languages | Native Spanish, C1 English (BSc coursework and exams taken in English, in the UK) |
| 🎓 Education | BSc Artificial Intelligence — Coventry University (Upper Second Class Honours) |
Full details → résumé (PDF) · LinkedIn
Languages
| 1+ yr — Production at Authect, also my primary language across every personal ML/automation project | |
| 1+ yr — Production at Authect (backend + frontend), also my portfolio site | |
| 6+ mo — Personal projects: browser extension, portfolio tooling | |
| 6+ mo — University coursework — OOP fundamentals (Minesweeper, recursion exercises) | |
| 6+ mo — University coursework — HospitalManager, a C++20/STL hospital management system | |
| 6+ mo each — Personal static sites and portfolio base styling | |
| 6+ mo — PostgreSQL at Authect, SQLite in auto_applyer — schema and query work across both | |
| 1-2 yr — Automation and config scripting across ipa-builder, overclaude, and pocket-server |
AI / Machine Learning
| 1-2 yr — BSc final year project — built an MLP from scratch, benchmarked against 5 classical baselines in macro-news-market-forecasting | |
| 1-2 yr — 3 personal projects: anomaly detection, market forecasting, investor profiling | |
| 1-2 yr each — Data pipeline for every ML project I've built, including a from-scratch neural net trained with NumPy alone in ai-tools | |
| 1-2 yr — Research and prototyping across all of the above |
Backend, automation & tooling
| 1+ yr — Production at Authect — the multi-tenant SaaS backend behind the whole product | |
| 6+ mo (Streamlit) — auto_applyer's full dashboard and lead/draft database (SQLite) | |
| 1-2 yr each — Automation and config across ipa-builder, overclaude, and pocket-server | |
| 6+ mo — auto_applyer's email drafting and send pipeline, gated behind manual approval |
Local AI infra
| n8n 6+ mo, ComfyUI 1-2 yr, Kokoro TTS 6+ mo, ffmpeg 6+ mo — orchestrated in youtube-ai-pipeline, a fully local, self-hosted narrated-video pipeline, no cloud inference |
Frontend
| React 19 + Vite 6+ mo each, Tailwind CSS 1-2 yr, GSAP + Framer Motion 6+ mo each — rebuilt my portfolio (ADRO_OS) from scratch with a GSAP-pinned scroll and Framer Motion reveals — plus the ai-tools interactive demos |
CI/CD, DevOps & hosting
| 1+ yr — Production releases at Authect — also what ipa-builder's entire build pipeline runs on | |
| 1+ yr — Production at Authect — also containerized in 4+ personal projects | |
| 1-2 yr — AI-LogAnomalyDetectionSystem's automated test suite | |
| 2-3 yr — Daily, across every professional and personal project | |
| 1-2 yr — ipa-builder's scoped, fine-grained checkout of a separate target repo | |
| 1-2 yr — Hosts my live portfolio |
Practices
| Practiced daily leading a 4-person team at Authect — short iterations, re-planning when priorities shift | |
Applied in HospitalManager's Paciente/Medico/Cita design (see Engineering mindset below) |
| 🧠 AI / ML pipelines | Forecasting, anomaly detection, and applied research — built with PyTorch and scikit-learn, evaluated honestly |
| 🔁 Automation & tooling | Python tools that replace repetitive manual work, with real safety rails instead of blind auto-pilot |
| ⚙️ Developer infrastructure | CI/CD pipelines and small open-source tools that solve exactly one annoying problem |
| 🧩 Systems & OOP design | Modeling real entities and relationships with SOLID-minded C++/Java, not defaulting to a framework because it's expected |
| 🧪 Applied experiments | Projects built to answer a specific question — including the ones where the answer wasn't flattering |
|
A curated, pre-wired setup for Claude Code that combines the best community add-ons into one install — instead of five separate repos you'd have to find, compare, and glue together yourself. Problem: Claude Code's ecosystem has a dozen good ideas scattered across a dozen repos, several solving the same problem twice.
Built: benchmarked the candidates (e.g.
Why it's interesting: zero inbound ports and an opt-in, off-by-default support nudge — the same "don't be sneaky" product instinct as |
Open-source pipeline that builds unsigned iOS Problem: testing your own iOS app normally means owning a Mac or paying Apple. Built: a GitHub Actions workflow that spins up a macOS runner to compile any Expo/React Native project, using scoped fine-grained tokens to securely check out a different target repo.
Why it's interesting: it's pure CI/infrastructure engineering — no app code, just a secure, reusable build pipeline solving a real cost problem. |
|
The retro-terminal-OS portfolio this README keeps pointing you to — boot sequence, a cursor-reactive canvas hero, and six real projects each visualized with a metaphor matched to what they actually do. Problem: a conventional Hero → About → Skills → Projects page doesn't say anything about how you build. Built: Vite + React 19 + TypeScript, hand-rolled canvas2D renderers (no WebGL) — including a hidden ASCII bust generated from a real photo via luminance + Sobel edge detection — plus GSAP-pinned scroll and Framer Motion reveals.
Why it's interesting: |
📈 Quant research — macro news forecasting · mandate investor profilingTwo-part BSc final year project: can daily macro news predict next-day ETF returns, and can investor "mandates" (not just a risk score) drive better portfolio allocation? Built: a PyTorch MLP vs. 5 classical baselines under strict walk-forward validation for the forecasting side; a Random Forest mandate predictor feeding a regime-aware, backtested ETF allocator on the portfolio side.
Why it's interesting: both repos report the results that didn't work too — e.g. the Markowitz baseline beating the mandate strategy on Sharpe — instead of only showing wins. |
|
Self-hosted pipeline that turns a script into a narrated, AI-illustrated video — entirely on local hardware. Problem: generate narrated AI-image videos end-to-end without paying for cloud inference. Built: n8n orchestrates a fully local flow — Kokoro TTS, ComfyUI (Krea2 Turbo + a style-reference LoRA) for character-consistent scene images, and an ffmpeg assembly service.
Why it's interesting: documents real hardware limits honestly — 6GB VRAM minimum, ~30GB peak RAM, ~90s per image — instead of glossing over what it actually takes to run. |
Unsupervised anomaly detection over OpenSSH logs — flagging suspicious activity without labeled attack data. Problem: in security logs, "normal" vastly outweighs "attack," and clean labels rarely exist. Built: a config-driven pipeline (Isolation Forest, LOF, One-Class SVM) with temporal feature engineering, weak-label heuristics for evaluation, and PR-AUC/Recall@K as proxy metrics.
Why it's interesting: forces careful evaluation design when ground truth barely exists — accuracy alone would be meaningless here. |
|
An old Android phone, de-Googled and rooted, turned into a 24/7 home server — no Raspberry Pi, no cloud bill. Problem: reaching a laptop remotely (to wake it, check email, watch markets) normally means buying always-on hardware. Built: a spare phone running Termux + a local LLM, reachable only over a private VPN (Tailscale) — it sends Wake-on-LAN packets, drafts email replies, and reports through private Telegram bots, with a watchdog that checks its own health every 5 minutes.
Why it's interesting: zero cloud cost, zero exposed ports, and every risky action (shutting down a machine, sending an email) needs an explicit human confirmation first — safety-first automation, same instinct as |
✉️ auto_applyerLocal tool that automates the boring parts of a job search — without turning into a spam bot. Problem: cold-emailing job leads by hand doesn't scale, but fully automating it turns into exactly the "AI spam" that gets you ignored or blocked. Built: a Python + Streamlit dashboard that imports and scores leads, drafts personalised emails, then holds every single one for manual approval before it can send — dry-run by default, rate-limited, live-sending needs an explicit double opt-in.
Why it's interesting: built to run my own graduate job search — the safety controls (approval gate, rate limits, no test-data leaks) exist because I used it on real people, not sample data. |
- 📱 Just shipped pocket-server — my most recently pushed project, turning an old Android phone into a home server
- 🔒 Added a Firefox autofill extension + cover-letter generation to simply-apply-firefox-autofill, a fork of an open-source job-search tool, with a security fix from my own review
- 🎮 Pulled the interactive demos out of my portfolio's hidden terminal into their own repo: ai-tools — sort/pathfinding visualizers and a from-scratch neural net digit recognizer
- 📊 Working through the next steps I flagged myself in the FYP repos — time-series cross-validation and better regime coverage for the portfolio backtests
- 🧰 Still looking for the next small, annoying manual task worth turning into a tool — that's how
auto_applyerandpocket-serverstarted
- Prototype first, read the docs when it breaks — not before
- One command that runs the whole pipeline beats ten manual steps in a README
- Walk-forward validation isn't optional when the whole point is "did this actually generalize"
- If a project of mine has a
Limitationssection, I probably wrote it myself before anyone had to ask - Reach for OOP + SOLID when the domain has real entities and relationships to model — see
HospitalManager'sPaciente/Medico/Citadesign — not just because it's expected - Work in short, iterative loops with visible scope cuts and honest retros — Agile as a working habit, not a slide
Open to junior backend, AI/ML, and Python engineering roles — and always up for talking about a weird technical idea.