Paul V. Ingram III

Incoming M.S. in Computational Data Science

Portrait of Paul Ingram III

Overview

I am a hardworking, reliable, and motivated student. I graduated from Riverside City College in June 2024, where I achieved a GPA of 3.94 in Physics (A.S.) and 3.93 for both Computer Science (A.S.) and Mathematics (A.S.).

I went on to graduate from UC Riverside with a B.S. in Computer Science and a 3.81 GPA, earning Cum Laude honors. Along the way I served as Vice President of the Competitive Coding Club and assisted with research projects in the Cybersecurity lab.

Quick facts

Projects

Featured

CVE-2020-0041 Exploit Reproduction

Reproduced and adapted a real-world Android kernel exploit (CVE-2020-0041) — an out-of-bounds write in the binder IPC driver — on a QEMU-emulated ARM64 system, achieving full privilege escalation from an unprivileged process to a root shell.

  • Tech: C, ARM64 Assembly, QEMU, Linux Kernel, Android Binder
  • Highlight: Adapted a Pixel 3–targeted exploit to a QEMU/Debian environment by writing a custom binder service manager, re-extracting kernel symbol offsets, and fixing arm64 stack alignment — chaining a UAF, KASLR bypass, and arbitrary kernel read/write into full privilege escalation
  • What I learned: The gap between a vulnerability write-up and a working PoC is enormous — exploitation is an iterative process of building increasingly powerful primitives, and environment differences demand deep understanding of how the exploit interacts with the target system
Security Kernel Exploitation Systems

FlashAttention CUDA Kernel

A from-scratch CUDA implementation of the FlashAttention forward pass that computes exact attention without ever materializing the N×N score matrix, benchmarked against naive PyTorch and tiled-GEMM baselines.

  • Tech: CUDA, C++, PyTorch (libtorch)
  • Highlight: Implemented the FlashAttention-2 forward pass as a single fused kernel using Q/K/V tiling and an online (streaming) softmax — parallelizing over query-tiles for a race-free design with no global synchronization
  • What I learned: Translating GPU-agnostic pseudocode into CUDA, mapping algorithmic tiles onto thread blocks, and reasoning about HBM traffic, shared memory, and space complexity
CUDA GPU Computing Systems

Class Projects

CS148 Final Project

A robotics simulation project implementing autonomous path planning and mapping in ROS, developed in a two-person team.

  • Tech: Python, ROS, RViz
  • Highlight: Implemented Dijkstra-based path planning with custom Planner and Publisher nodes, interactive waypoint selection in RViz, and SLAM-generated occupancy grids
  • Analysis: Evaluated empirical runtime and space complexity of multiple path planning algorithms across varying path lengths using visualization
  • What I learned: Integrating perception, graph search, and performance analysis to reason about real-time robotic navigation systems
Robotics Systems Algorithms

CS105 Mini Project

An exploratory data analysis project examining relationships between stress levels and lifestyle factors using survey data from Computer Science students at UCR.

  • Tech: Python, Pandas, Matplotlib
  • Highlight: Identified statistically significant relationships between reported stress levels and lifestyle variables using hypothesis testing at standard significance thresholds and visualizations
  • What I learned: Applying EDA, statistical testing, and visualization to reason about real-world survey data
Data Science Statistics Analysis

Coursework

Selected courses I've completed at UCR.

Systems & Security

  • CS165: Computer Security
  • CS161: Computer Architecture
  • CS160: Concurrent Programming and Parallel Systems
  • CS153: Operating Systems
  • CS152: Compiler Design
  • CS147: Graphics Processing Unit Computing and Programming

AI & Data

  • CS171: Machine Learning and Data Mining
  • CS170: Artificial Intelligence
  • CS148: AI for Robotics
  • CS105: Data Analysis Methods