name: Muhammad Awais
role: AI Engineer · Managing Director @ AI GenMat
education: BS Software Engineering — FAST-NUCES Islamabad (2026-2029)
education: BS Artificial Intelligence — FAST-NUCES Peshawar (2025-2026)
site: https://ik-awais.github.io
portfolio:
generator: Hugo v0.154.5 (extended)
deploy: GitHub Pages via GitHub Actions
branch: main
build_time: ~90 seconds
css: 1600+ lines — zero framework
js: 520+ lines — vanilla, zero dependencies
specialization:
- Agentic AI & Multi-Agent Systems
- LLM Fine-tuning & RAG Pipelines
- NLP & Computer Vision
- GenAI Automation & AI Infrastructure
projects: 4 AI/ML projects
blog_posts: 4 (Tech Survival Series)
contact:
work: m.awais@aigenmat.com
linkedin: linkedin.com/in/muhammad-awais-ai-engineer
upwork: upwork.com/freelancers/~018a2d0e2f88ac4838| Project | Description | Stack |
|---|---|---|
| LectureLens | Full RAG lecture Q&A system — Flask backend, ChromaDB vector store, BAAI/bge embeddings, SQLite FTS5, dark-themed Chat UI + admin dashboard | Flask ChromaDB HuggingFace SQLite Python |
| AI Research Assistant Agent | Autonomous agentic system that searches the web, deduplicates sources, and generates structured research reports with citations | LangChain OpenAI Streamlit Python |
| Document Q&A System | RAG pipeline for uploading documents and asking natural language questions with source citations | LangChain FAISS Streamlit Python |
| MediScan AI | End-to-end medical imaging pipeline — ViT classification, IsolationForest anomaly scoring, LLaMA 3.1 radiology report generation | PyTorch HuggingFace FastAPI OpenCV LLaMA 3.1 |
| # | Post | Topics |
|---|---|---|
| 01 | Hypervisors, KVM & QEMU Complete Guide | KVM · QEMU · virt-manager · Ubuntu 24.04 · Windows 11 VM · Kali · Parrot OS |
| 02 | How I Built This Portfolio with Hugo from Scratch | Hugo · CI/CD · GitHub Actions · GitHub Pages · Bug Fixes |
| 03 | You Don't Need to Be a Programmer to Be a Tech Person | CLI · Docker · Git · APIs · Cloud · AI Tools · Networking |
| 04 | Operating Systems Explained for Normal People | Windows 11 · macOS · Linux · OS Fundamentals |
portfolio/
├── .github/workflows/deploy.yml <- GitHub Actions CI/CD (triggers on main)
├── content/
│ ├── blog/ <- 4 published posts (Tech Survival Series)
│ └── projects/ <- 4 AI/ML project pages (incl. LectureLens)
├── layouts/
│ ├── _default/
│ │ ├── baseof.html <- Base template (nav, footer, head, scripts)
│ │ ├── list.html <- Archive pages (/projects/, /blog/)
│ │ └── single.html <- Post/project pages + sticky ToC
│ └── index.html <- Homepage template
├── static/
│ ├── css/main.css <- 1600+ lines — dark/light theme, responsive
│ ├── js/main.js <- 520+ lines — cursor, animations, form, theme
│ └── _headers <- CSP security headers (Netlify/Cloudflare ready)
└── hugo.toml <- Site configuration
git push main
|
v
GitHub Actions triggers deploy.yml
|
v
Checkout repo -> Setup Hugo v0.154.5 extended
|
v
hugo --minify --baseURL "${{ steps.pages.outputs.base_url }}/"
|
v
Upload public/ as GitHub Pages artifact
|
v
Deploy -> https://ik-awais.github.io (~90 seconds total)
| Layer | Implementation |
|---|---|
| Email Validation | RFC 5321 format · TLD 2-12 chars · blocks consecutive dots |
| Disposable Blocking | 50+ throwaway providers blocked (Mailinator, YOPmail, etc.) |
| Honeypot | Hidden field — invisible to humans, filled by bots |
| Rate Limiting | 3 submissions/session · 60s cooldown between sends |
| CSP Headers | Content-Security-Policy · X-Frame-Options · X-Content-Type-Options |
| # | Problem | Fix |
|---|---|---|
| 1 | Raw HTML to Hugo migration | Rebuilt index.html into full content/layout/template structure |
| 2 | No templates found | layouts/default/ -> layouts/_default/ (missing underscore) |
| 3 | CSS/JS not loading locally | baseURL set to production URL — fixed with baseURL = "/" |
| 4 | Blog content invisible | .reveal set opacity: 0 — removed, added opacity: 1 !important |
| 5 | ToC sidebar empty | JS approach failed — switched to Hugo native TableOfContents |
| 6 | Formspree rejecting AJAX | reCAPTCHA blocked free plan — honeypot + validation + rate limiting |
| 7 | Branch migration | portfolio -> main: conflicts resolved, deploy.yml updated |
| 8 | GH Pages deploy failing | Deploy branch not in github-pages environment allowlist |
| 9 | Light theme washed out | #f5f5ef -> #f0f2f5 (GitHub/VS Code cool grey convention) |
| 10 | Wrong data on project cards | .WordCount -> .Date.Format "Jan 2006" |
| 11 | Footer icon links dull/white | Added explicit color:#00d4ff !important + purple hover to .footer-right a |
| 12 | Work email dull purple in footer | Set .footer-brand-email to #00d4ff natural, purple on hover |
| 13 | Card-thumb showing 2-letter text icon | Replaced with 8 deterministic SVG geometric glyphs (title+tag hash) |
| 14 | Homepage cards missing thumbnail | Added card-thumb.html partial to index.html project grid |
| 15 | Constellation nodes too large/slow | Reduced radius by 2px, increased count 34→55, boosted velocity 0.22→0.38 |
# Clone
git clone https://github.com/ik-awais/ik-awais.github.io.git
cd ik-awais.github.io
# Serve locally
hugo server -D
# -> http://localhost:1313/
# Build for production
hugo --minify
# -> output in public/| Issue | Cause | Fix |
|---|---|---|
| CSS/JS not loading locally | baseURL set to production URL | Set baseURL = "/" for local dev |
| Blog content invisible | .reveal sets opacity: 0 | Remove .reveal from content wrapper |
| ToC sidebar empty | JS ran before DOM ready | Use Hugo's native TableOfContents |
| Formspree rejecting submissions | reCAPTCHA on free plan blocks AJAX | Disable reCAPTCHA in Formspree dashboard |
| Deploy fails on GitHub Actions | Branch not in environment allowlist | Add main in Settings -> Environments -> github-pages |
| Old content after push | GitHub Pages cache | git commit --allow-empty -m "force rebuild" && git push |
| Theme not persisting | localStorage key mismatch | Confirm main.js uses theme as storage key |
| Missing files after merge | --theirs skips unique files | Run git checkout -- . to force-sync |
