Projects

Selected work

Case studies from RAG systems, agentic AI, and predictive modeling to large-scale data engineering. Most of these are private or internal builds — each card is honest about what's public and what isn't.

AREAI (Real-Agent)

A GERANDCO Technology in-house product: a conversational AI assistant for real estate workflows, built on retrieval-augmented generation over a scraped corpus of Nigerian real-estate listings.

Private / not yet public
ChromaDB BGE Embeddings Phi (Ollama) Python RAG
Read the case study
What it does
AREAI retrieves and answers natural-language questions over a corpus scraped from Nigerian real-estate listing sites — jiji.ng (20,000+ listings) and nigerianpropertycenter.com (5,000+ listings) — rather than requiring users to manually search and filter listings themselves.
Architecture
Listings are embedded with the BGE (BAAI General Embedding) model and stored in a ChromaDB vector database. At query time, relevant listings are retrieved by similarity search, then passed as grounding context to a Phi model running locally via Ollama, which generates the final answer.
Documentation
I wrote a full installation guide for the system as an academic submission, covering setup of the embedding pipeline, vector store, and local model runtime.
Status
Not publicly hosted yet — the repository isn't live at github.com/pgshandino/Real-Agent currently, so no public link is provided here until that changes.

Vetaly

A veterinary digital health platform — I co-founded it and lead its technical platform as CTO.

Live product
Product Analytics Health Records AMU Surveillance
Read the case study
What it does
Vetaly is an animal health management product covering veterinarian connections, health record tracking, and antimicrobial-use (AMU) surveillance.
My role
As co-founder and CTO, I built and maintain Vetaly's technical platform end to end and own its uptime and reliability. I also set up the product and data analytics instrumentation used to track acquisition, activation, and monetisation.
Status
Active since January 2026.

Candleweb Crypto Trading Decision Engine

A Claude-powered agentic decision engine for crypto trading, integrated with the existing Candleweb agent backend.

Private / internal
Claude Agno FastAPI Python
Read the case study
What it does
A trading decision engine that uses Claude, orchestrated through the Agno agent framework, to reason over technical signals and produce trading decisions — plugged into the existing Candleweb agent backend rather than built as a standalone tool.
Indicator library
A custom-built technical indicator library covering 439 indicators across 13 indicator families, giving the agent a much wider signal surface than a typical off-the-shelf technical analysis library.
Architecture
Agno orchestrates the Claude-powered decision-making agents, with a FastAPI service layer exposing the engine's outputs to the rest of the Candleweb backend.
Status
Private/internal — no public repository or demo at this time.

OneAgent — Nigerian PIT Filing & Advisory App

A full-stack Nigerian personal income tax filing and financial advisory web app with a live, deterministic tax engine.

In development
React FIRS Tax Bands JavaScript
Read the case study
What it does
OneAgent walks a user through a multi-step wizard to file Nigerian Personal Income Tax (PIT), computing what's owed using a live, deterministic engine that implements FIRS's graduated tax bands directly — not an estimate or a lookup table.
Built as
A single-file React application, covering the full wizard UI and tax computation logic client-side. Because it processes personal financial data, data access and consent were treated as first-class design concerns, not an afterthought.
Honest status
The tax computation engine is live and deterministic. The financial advisory layer currently returns mocked output — it is not yet backed by live AI-generated advice, and the app is upfront about that being in development rather than presenting it as a finished feature.

Bank Customer Churn — Predictive Modeling

A KNIME predictive modeling workflow that scores bank customers on churn risk, from demographics and behavior data through to an evaluated classifier.

Internal workflow
KNIME Predictive Modeling Classification
Read the case study
Workflow
Built as a KNIME workflow in four stages: Demographics, Customer Behavior, and Customer Churn (exploratory analysis), followed by a Predictive Modelling stage that trains and evaluates a churn classifier. Algorithm choice and the dataset's exact size/source are [ADD: model/algorithm used, dataset source and size] — not captured in the workflow export, so ask me before quoting a source.
Evaluation results
On a held-out set of 3,000 customer records, the model scored 81.3% overall accuracy. Broken down by class: customers who churned were identified with 54.3% recall and 54.8% precision (F-measure 0.545), while customers who stayed were identified with 88.4% recall and 88.1% precision (F-measure 0.883). In the confusion matrix, 336 churners were correctly flagged and 283 were missed; 277 retained customers were incorrectly flagged as churn risks.
Reading the results honestly
The model is noticeably better at recognizing customers who will stay than customers who will churn — it misses close to half of actual churners. That's a real limitation worth stating plainly rather than leading with the headline 81.3% accuracy figure alone.

Nigerian Real Estate Listings Scraper

An async Python scraper engineered to reliably crawl 50,000+ listing URLs on a Nigerian real-estate site without falling over.

Private / internal
Python aiohttp BeautifulSoup asyncio
Read the case study
The engineering problem
Scraping 50,000+ URLs reliably means the failure modes matter more than the happy path: rate limits, timeouts, and dropped connections happen constantly at that scale.
How it holds up
Built on aiohttp for concurrent async requests and BeautifulSoup for parsing, with resumability so a crashed or interrupted run picks back up rather than restarting from zero, and exponential backoff so it degrades gracefully under rate-limiting instead of hammering the target site.
Status
Private/internal tooling — no public repository at this time.

Job Listings Data Pipeline & Dashboard

An analytics pipeline that turns messy, multi-sheet job listings workbooks into clean data and a set of reusable charts.

Private / internal
Python Pandas Plotly Express Excel
Read the case study
What it does
Ingests multi-sheet Excel workbooks of job listings data, cleans and reshapes them with a standalone Python transformation script, and exposes the results through ten production-ready Plotly Express chart functions built for reuse across reports.
Status
Private/internal — no public repository or hosted dashboard at this time.
More

Selected engineering work

Smaller pieces of work that don't need a full case study, but are worth a mention.

  • Built a Node.js/Express backend for a tax assessment application, including fixing resource-link scoping by residency verdict.
  • Debugged a Node.js/Supabase backend around Node 20's lack of native WebSocket support.
  • Found and fixed a SQL-injection-style vulnerability in a PostgREST filter that used user-controlled input unsafely.
  • Designed a 16-week Data Science & AI Bootcamp curriculum covering Excel, Power BI, SQL, Python, machine learning, and deployment.
Get in touch

Let's connect one-on-one

Have questions, ideas, or a project to discuss? Let's schedule a session to explore solutions, insights, and opportunities tailored to your needs.