Computer Science (Co-op) Student — Cybersecurity

Ayaan Azfar

University of Guelph • Cybersecurity Intern at Scotiabank • 3.7 GPA

From building an AI profile scoring platform at HowCrackedRU to a campus-wide messaging platform GryphChat.com with 100+ users, I care about software that makes a measurable impact.

Python TypeScript Swift C / C++ SQL PowerShell Next.js PyTorch Splunk AWS Azure Docker
Portrait of Ayaan Azfar

Project 01

HowCrackedRU — AI Profile Scoring Platform

How do you objectively measure a developer's profile? I built an AI scoring platform that ingests resume, LinkedIn, and GitHub data into an Anthropic Claude inference layer to produce a weighted, multi-source score for university developers.

  • Multi-source data pipeline pulls resume, LinkedIn, and GitHub data into a Claude inference layer for weighted scoring.
  • Serverless backend on Supabase and Vercel with Google OAuth, Row-Level Security, and Stripe one-time payments.
  • Optimized per-score cost to $0.01 through model selection and prompt engineering.
Next.js TypeScript Python Supabase Stripe Anthropic Claude
HowCrackedRU AI scoring platform

Project 02

CampusChat — Class Communities

Campus-wide real-time messaging platform used by 100+ University of Guelph students. Students can discover class group chats, message peers, run polls, and plan study sessions — all in one place.

  • OAuth 2.0 (Google) and credentials authentication using NextAuth.
  • Next.js 16 (App Router) and React 19 for scalable UI and routing.
  • Prisma and Postgres to model users, courses, memberships, and messages.
  • Supabase Realtime for live chat with a polling fallback.
  • Cursor-based pagination and infinite scroll for consistent message ordering.
Next.js 16 React 19 NextAuth Prisma + Postgres Tailwind CSS v4 Supabase
Screenshot of gryphchat.com

Project 03

TumorAI — Brain Tumor Classifier

Educational ResNet-18 fine-tune over a Kaggle MRI dataset that serves predictions via Gradio with loud “not for medical use” framing.

  • Training script wires ImageFolder datasets, augmentation, validation tracking, and checkpoints weights + class metadata.
  • Gradio app mirrors training transforms to keep inference honest, returning probability distributions with markdown context.
  • Notes highlight dataset pitfalls (class mappings, augmentation balance, GPU/CPU switching) to help future contributors.
PyTorch Gradio Python

Project 04

MLPicks — NBA Prop Intelligence

End-to-end NBA over/under prediction engine with a FastAPI backend, scikit-learn models, React/Vite dashboard, and a backtesting suite that validates confidence buckets against historical lines.

  • StatsProvider + CSV cache reuse free NBA API calls while feature engineering tracks pace, rest, usage, and opponent form.
  • Dedicated training scripts for points/rebounds/assists run chronological splits, train Gradient Boosting models, and persist sigma + feature importances.
  • Frontend surfaces edge/risk, confidence bars, and integrates CI smoke tests alongside a replay-focused backtesting package.
FastAPI scikit-learn React + Vite Pytest

Project 05

SolSync — Solana Copy Trading

Local copy-trading engine that watches a “master” wallet, interprets balance deltas as buy/sell signals, and mirrors trades with Pump.fun/Raydium APIs while keeping signing local for security.

  • finalDraftV3.py orchestrates WebSocket subscriptions, RPC retries, and solders-based signature flows for each mirrored position.
  • Flask control server serves a local-only dashboard to start/stop bots, tune wallets/slippage/priority fees, and stream logs in real time.
  • Shared config surface exists as both CLI flags and web form fields, centralizing every knob from pool selection to RPC fallbacks.
Python Flask WebSockets Solana RPC

Project 06

Building Hardware From Scratch

Breadboard 6502 computer build

6502 Computer

Scratch-built MOS 6502 Computer

Breadboarded CPU with ROM, RAM, VIA, and UART peripherals driving LEDs, LCDs, and serial consoles at 1 MHz.

  • Custom clock + single-step circuit let me probe every address/data line for debugging.
  • Python assembler flashes binaries straight into EEPROM to iterate quickly.
  • Ran WozMon/BASIC monitors plus my own diagnostics firmware.
Custom VGA graphics card

VGA Graphics Card

Discrete VGA Renderer

Companion graphics card that generates 640×480 VGA signals, sprites, and diagnostics so the 6502 can paint animations directly to a monitor.

  • Implements its own pixel clock, HSYNC/VSYNC generators, and tile memory on perfboard.
  • SPI-like bus lets the 6502 stream sprite coordinates and palettes in real time.
  • Debug overlay renders register states directly to a monitor for live introspection.
  • Sprite sheet + palette EEPROMs are hot-swappable for rapid iteration.

Swipe Archive

More Projects

Full Stack

loginPage

PHP/MySQL auth demo with registration, role-based dashboards, and hardened session handling.

  • Separates config, handlers, and role-specific pages to keep logic tidy.
  • Highlights secure password storage, validation, and admin-gatekeeping basics.
  • Great refresher on PHP error handling and UX for multi-role flows.
PHP MySQL

iOS Prototype

GetHealthy

Swift-based wellness prototype built for OurWaveHub x Apple with smooth onboarding + habit loops.

  • Xcode project explores SwiftUI layouts, navigation stacks, and local storage for progress.
  • Shows range beyond web/ML with native UI polish.
  • Next step: tie in charts, HealthKit, and TestFlight feedback cycles.
Swift iOS

Data Utility

txtExtractor

CLI that parses .txt/.md job lists and scrapes Eluta.ca into structured CSV/TSV/MD outputs.

  • Keyword-driven parser strips Markdown artifacts and normalizes into Company/Role/Location/Link rows.
  • Eluta scraper layer supports filters, dead-link checks, and multiple output formats.
  • Lesson: treat text parsing like data engineering with explicit schemas.
Python CLI

Automation

GitScraper

GitHub Markdown scraper that extracts job-style rows from remote repos with anchor + keyword filters.

  • Raw-content fetcher handles tables/lists and converts them into normalized job objects.
  • Keyword logic expands shorthand like “Canada” into city variants, plus verbose logging.
  • Pytest suite guards parsing heuristics while CLI flags keep the UX ergonomic.
Python GitHub API

Portfolio

ArchiveOfAyaan

Static site system with a dark timeline aesthetic, detail pages, and scroll-triggered reveals.

  • Shared CSS/JS keep nav, scroll snapping, and theme toggles consistent across sections.
  • Dedicated project templates make it painless to spin up new write-ups.
  • README doubles as the SolSync Marketplace vision doc outlining future Solana products.
HTML/CSS Vanilla JS

Extensions

Stock-Timer

Chrome extension that watches tickers, polls APIs, and fires notifications when thresholds hit.

  • Manifest + popup UI pair with a background script that tracks price deltas and alert rules.
  • Branding package ships icons/screenshots for the Chrome Web Store listing.
  • Great playground for CSP nuances, notification permissions, and polling vs. rate limits.
JavaScript Chrome API

API Sandbox

FMP API Example

Mini Chrome extension/demo showcasing Financial Modeling Prep API calls and popup rendering.

  • Validates auth/rate-limit patterns that later powered the stock alert extension.
  • Lightweight popup demonstrates surfacing fundamentals/news data quickly.
  • Proof that small POCs de-risk larger products.
JavaScript FMP API

Skills & Validation

Certifications & Tech Stack

Languages

Python TypeScript JavaScript Swift C C++ C# Java SQL Bash PowerShell R

Frameworks & Tools

Next.js React Node.js .NET PyTorch Docker Kubernetes Splunk Power BI PostgreSQL AWS Azure GCP CI/CD Git Linux
AWS Certified Cloud Practitioner badge

AWS Certified Cloud Practitioner

Exam CLF-C02 - AWS Architecture

Microsoft Security Compliance and Identity badge

Microsoft Security, Compliance & Identity Fundamentals

Exam SC-900 - Cloud Security

CompTIA Security Plus badge

CompTIA Security+

Exam SY0-701 - Cybersecurity

Career

Experience & Education

May 2026 – August 2026 Current

Cybersecurity Intern — Scotiabank

Investigating cyber-enabled fraud cases (phishing, malware, social engineering, account takeover, targeted cyber-attacks), gathering and preserving digital evidence to identify perpetrators and document TTPs. Applying data analytics with Python, Excel, and Splunk to detect fraud patterns; preparing investigative reports and trend analyses in Power BI and PowerPoint for senior management.

April 2025 – August 2025

Parks & Roads Student Worker — Town of Oakville

Led Parks & Roads assignments independently, mentoring new hires on safe use of tools, equipment, and vehicles. Took on Sanitation duties including waste collection and park washroom servicing during peak summer demand.

April 2024 – August 2024

Parks & Roads Student Worker — Town of Oakville

Performed daily maintenance including waste collection, turf care, and trail and playground inspections. Operated equipment and Town vehicles safely while assisting crews with inspections, repairs, and event setup.

September 2024 – Present

University of Guelph — B.Comp, Computer Science (Co-op)

3.7 GPA • Minor in Project Management • Area of Emphasis in Cybersecurity • Dean's List

May 2022 – August 2022

iOS App Developer Co-op Student — OurWaveHub (Apple partnered)

Built and refactored Swift/SwiftUI components in Xcode following Apple's design system and accessibility guidelines, leveraging UIKit interoperability for an iOS app shipped to TestFlight. Implemented data persistence and multi-device sync using Core Data and CloudKit. Architected and shipped an end-to-end iOS app in Swift, owning the full development lifecycle.

Get in Touch

Let's build something meaningful

Open to co-op roles, freelance projects, and collaborations.