RESTful API with Web Scraping: My FastAPI + Flask Project

What This Project Is I built a backend that scrapes websites, stores data in PostgreSQL and MongoDB, and exposes REST APIs through FastAPI and Flask. I made it as a portfolio piece — something I could demo and actually run on my machine. 1. What Does This Project Do? (Simple Explanation) This project is a data aggregator backend. It can: Scrape product or article data from websites Store that data in two databases (PostgreSQL for structured data, MongoDB for flexible logs) Expose REST APIs so other apps can create, read, update, and delete data Call external APIs and return the results You can think of it as: ...

March 7, 2026 · 7 min · Saad

Jenkins + Docker Pipeline from GitHub

What I Built I wanted Jenkins to pull code from GitHub, build a Docker image, and run a container automatically. This post is the pipeline I put together for that. Goal: From Manual to Automatic Manually, we usually do this: Clone a GitHub repository Run docker build Run docker run Check the output With Jenkins, all of this happens automatically when the pipeline runs. You click Build Now (or trigger from GitHub), and Jenkins does the rest. ...

February 10, 2026 · 4 min · Saad

Jenkins on Arch Linux: How I Set It Up on i3

Why I Wrote This I run Arch Linux with i3 and wanted Jenkins locally for CI/CD experiments. This covers Java 21, the Jenkins install, a test job, and a GitHub pipeline — exactly what I ran on my machine. 1. What is Jenkins? (Simple Explanation) Jenkins is an automation server. You can tell Jenkins to: Get your code (for example from GitHub) Run commands (build, test, scripts) Show you if things passed or failed Instead of you running commands manually every time, Jenkins does it automatically. ...

February 9, 2026 · 7 min · Saad

Ansible: Docker and Kubernetes Node Setup

Why This Post Exists After writing my first real Ansible playbook, I realized something: Installing software manually once is easy. Installing it correctly, repeatedly, and safely is not. So I decided to automate something real and useful: Install Docker Engine (official way) Prepare an Ubuntu server to become a Kubernetes node Do everything using Ansible No SSH-ing into the server again and again This post documents that journey. Real Setup (Same as Before) Nothing fancy. Just real machines. ...

January 17, 2026 · 4 min · Saad

Ansible for Beginners: My First Real Automation

What is Ansible? (In Simple Words) Think of Ansible as a remote control for your servers. Instead of: SSH into server Run commands manually Forget what you changed Repeat the same steps again and again You tell Ansible: “Hey, I want this server to look like this.” And Ansible makes it happen — again and again, without breaking things. The best part? No agent needed Just SSH Simple YAML files Very human-readable My Setup (Real World) This is exactly what I used: ...

January 15, 2026 · 4 min · Saad

Terraform: How I Stopped Clicking Around in AWS

What Terraform Is (For Me) Terraform is how I describe cloud stuff in code instead of clicking through the AWS console. I write what I want in .tf files, run terraform apply, and it gets created. Same result every time. Why Use Terraform? No More Manual Clicking: Automate infrastructure setup instead of clicking through AWS Easy Updates: Change your code and run terraform apply to update everything Backup Your Infrastructure: Keep your setup in version control (like Git) Reuse Everywhere: Run the same setup in dev, staging, and production without changes Cost Preview: See what resources cost before you create them Work with Multiple Clouds: Manage AWS, Azure, and Google Cloud from one tool Basic Concepts (Made Simple) Providers A provider tells Terraform which cloud service to use. Think of it as picking AWS, Google Cloud, or Azure before you start building. ...

December 14, 2025 · 6 min · Saad

Agentic RAG: My Multi-Agent Setup with Gemini and ChromaDB

What I Built Basic RAG retrieves docs and generates an answer. I wanted something smarter — a system that picks the right strategy and retries with heavier techniques when the first answer isn’t good enough. This project uses three agents: Router Agent — reads the question and checks answer quality Basic Generator Agent — fast retrieval for simple questions Advanced Generator Agent — uses heavier techniques for hard questions The system tries the fast path first. If the answer is weak, it automatically switches to advanced methods like query decomposition, HyDE, and multi-query retrieval. ...

October 29, 2025 · 6 min · Saad

LlamaIndex + Text-to-SQL: What I Learned

What I Was Trying to Do I had structured data in SQLite and didn’t want to write SQL for every question. LlamaIndex let me ask things like “which city has the most people?” in plain English — it figures out the query, runs it, and returns the answer. Key capabilities include: Translating natural language into SQL queries. Converting unstructured context into structured insights. Dynamically retrieving relevant schemas or tables for complex databases. Note: Never expose full write-access databases to LLMs. Always use read-only credentials or sandboxed environments for safety. ...

October 27, 2025 · 3 min · Saad

RAG Text-to-SQL: Asking My Database Questions in Plain English

What I Built I hate writing SQL for simple questions. This project lets me ask things like “how many customers are from Brazil?” in plain English — it generates the SQL, runs it, and gives me a readable answer. All local, using Ollama and ChromaDB. Easy to use — ask questions in everyday language Private — everything runs locally on your machine Fast feedback — generates and runs SQL in seconds Schema-aware — understands table names and relationships Interactive — ask follow-up questions in a chat-style flow Error handling — catches common issues like wrong table name casing System Architecture My RAG Text-to-SQL system consists of five core components: ...

October 25, 2025 · 7 min · Saad

Local RAG with Ollama and ChromaDB: Running AI Offline

Why I Built This I wanted a chatbot that answers questions from my own documents — without sending data to a cloud API. This RAG setup runs fully offline with Ollama and ChromaDB on my machine. Privacy — your data stays on your machine No API costs — no usage fees or rate limits Speed — no network delay for each query Control — you choose what goes into the knowledge base Offline use — works without internet after setup Architecture Overview My local RAG system consists of four main components: ...

June 29, 2025 · 5 min · Saad