Ali Naqvi

Computer Engineering at McMaster University

Ali Naqvi

About me

I’m an undergraduate Computer Engineering student at McMaster University. I work on software systems, AI infrastructure, and embedded firmware.

I’ve worked on LLM inference at Huawei, vehicle testing at General Motors, and firmware with the McMaster Mars Rover Team. I enjoy the debugging as much as the building, especially when the problem takes me into an unfamiliar part of the system.

Tools I work with

Languages
Python, C++, C, SQL, Java, JavaScript, Bash, Rust
AI & ML
PyTorch, vLLM, CUDA, LangGraph, LangChain, TensorFlow, NumPy
Infrastructure
Kubernetes, Docker, Terraform, GitHub Actions, Flask, FastAPI, Prometheus, Grafana
Embedded
FreeRTOS, STM32, ROS, ARM Assembly, CAN, I2C, UART

Experience

  1. Feb to Aug 2026

    General Motors

    Software Engineer Co-op · Markham, ON

    I joined the Embedded Control / Data Plane team and worked on vehicle-data collection and testing. I built dashboards and reporting tools for engineers running vehicle tests, along with checks for configuration changes.

  2. May to Dec 2025

    Huawei Canada

    AI/ML Infrastructure Engineer Co-op · Markham, ON

    I joined the Emerging Storage Lab, working on GPU inference and distributed systems. My work covered request scheduling, cache reuse, and memory issues, followed by a framework for running research agents in parallel.

  3. Sep 2024 to Dec 2025

    McMaster Mars Rover Team

    Software Engineer · Hamilton, ON

    Alongside school, I worked on the rover’s power-distribution firmware. I wrote C code for sensor readings, fault detection, and communication between the rover’s electronics.

McMaster University

B.Eng., Computer Engineering

Highlights

Software Engineer Co-op

General Motors · Feb to Aug 2026

I built tools to check vehicle telemetry, collect test evidence, and catch configuration errors before merge.

Automated test reporting
From a test alert to a Jira attachment
Terraform GrafanaTest alert Flask webhookAuthenticated PDF evidenceObserved values JiraTest execution Alert context becomes evidence attached to the test record.

Engineers were checking Grafana dashboards and filling out Jira test records by hand. I connected Terraform-managed alerts to an authenticated Flask webhook that generates a PDF and attaches it to the test execution through the Jira API.

I also added a reporting mode that uses the alert payload directly, so it can run without a Grafana rendering token. I verified the full flow with a real Jira attachment and added a dry-run mode for local testing.

Vehicle-health dashboards

I built fleet, vehicle, and test-level views in Grafana across three vehicles and five ECU platforms. The queries show PASS, FAIL, IDLE, or N/A, including vehicles that have stopped reporting.

One misleading success-rate panel came down to mismatched units: one counter measured uploaded parts and another measured files. I replaced the percentage with paired counts.

Configuration validation

I implemented a Python validation framework for Fluent Bit configurations and integrated merge-blocking checks into GitHub Actions across 5+ ECU platforms.

I built plugin-local YAML contracts and a bundler that combines them into a versioned artifact. The validator runs 11+ checks for parameter types, required fields, bounds, dependencies, platform support, and version compatibility.

Platform labels did not map reliably to library versions, so I added support for declaring the minimum Fluent Bit version directly in a configuration. Older files use a compatibility fallback with a warning.

AI/ML Infrastructure Engineer Co-op

Huawei Canada · May to Dec 2025

I worked on a C++ inference scheduler, KV-cache transfer, and a Python framework for running research agents concurrently.

Cache-aware scheduling
Cache-aware request routing
Incoming prompt C++ schedulerChoose a worker Radix-tree indexCached-prefix metadata Worker A Worker B Worker C One worker is selected using cache overlap and available memory.

I aligned Python and C++ cache hashes using SHA-256 and used cache telemetry to route requests to workers with matching prompt prefixes. I then implemented a concurrent radix tree for prefix lookups, with Google Test and Bazel tests for insertion, lookup, and concurrency.

Compared with the previous hash-map design, benchmarks showed 35% lower mean time to first token and 30% higher throughput.

I also fixed a routing bug caused by mismatched instance IDs and endpoints, and a contention issue by sorting thread-local copies of worker statistics.

Prefill, decode, and GPU memory

I integrated separate prefill and decode placement, using cache affinity for prefill and available KV memory for decode.

When requests stalled near the end of a workload, I traced the problem to control-channel conflicts, stale requests, and a decoder waiting for a placement that would never arrive. I separated the channels, corrected buffer accounting, and fixed the final-request handling in the single-producer setup.

TTL eviction, backpressure, and PyTorch allocator tuning helped keep stale tensors from filling GPU memory.

Multi-agent research

I built a LangGraph and LangChain framework with shared rate limits, token quotas, execution logs, and checkpoint recovery. It supports sequential, parallel, and stage-synchronized execution.

I tested 10+ concurrent agents under simulated API quotas. Parallel runs were up to 3× faster than the sequential baseline.

Software Engineer

McMaster Mars Rover Team · Sep 2024 to Dec 2025

I worked on the rover’s power-distribution firmware in C, running on STM32 hardware.

Power distribution and sensing

I led the firmware design for power distribution, using FreeRTOS tasks for sensor polling, fault detection, and CAN communication.

I also wrote an I2C driver for the MCP3221 ADC to monitor voltage and current on the rover’s electronics.

Get in touch

Have a role or project in mind? Send me an email.