Muhammad Usman Ahmed

Software Developer · Computer Science Graduate

I'm a Computer Science graduate who works on larger software projects on my own. So far that's two 3D simulations in Godot, both with generated worlds, versioned saves and automated tests, and a full-stack web app that records and analyses live transit data. AI coding agents do much of the programming: I plan the features and how the systems fit together, set the checks the work has to pass, and review the results. I currently work in technical support at SaskTel.

Education
B.Sc. Computer Science, With Distinction, University of Saskatchewan (2024)
Main stack
Python · FastAPI · PostgreSQL · TypeScript · React / Next.js · Godot (GDScript)
Current role
Customer Technical Support Representative, SaskTel (since Nov 2025)
Location
Saskatoon, SK · open to relocation

Projects

These are my own projects. Each one has public source code and a page that explains how it works and how it was built.

Status
In development · Steam page live, playable build on itch.io
Platform
Windows

3D business simulation · Godot

A Cut Above: Mow & Grow

Solo project · AI-assisted since Aug 20262022 – Present

A 3D lawn-care business simulation. You take contracts from a job board, mow properties that are generated for each job, and grow the business with new equipment, service regions and a daily economy. It's my longest-running project, with public commits going back to 2022.

  • The first lawn system gave every patch of grass its own physics object, which came to 44,289 scene nodes and 20,738 physics bodies on a medium lawn. It was replaced with a grid that stores one byte per cell and that the grass shader reads, so the same lawn now uses one node and no physics bodies.
  • Each contract's property is generated from a seed by a versioned generator. The job market for each day is seeded from the save and the day number, instead of from a running random number stream.
  • Saves are versioned JSON. Each save is written to a temporary file, read back and checked, and only then swapped in, with the old save kept as a backup. There are 27 validation suites with over 1,300 assertions that run through the real game systems.
  • Godot 4.6
  • GDScript
  • Godot shaders
  • MultiMesh
  • Jolt Physics
  • JSON persistence
Status
Playable prototype · in development
Platform
Windows · Godot 4.6 (Forward+)

3D survival prototype · Godot

Ocean Island Survival

Solo project · AI-assisted2026 – Present

A first-person survival prototype on a 4 km island surrounded by open ocean. You find fresh water, make tools, build a fire and a shelter, and try to last three nights. Most of the work went into the rendering, simulation and testing systems underneath.

  • The ocean uses FFT waves from the open-source OceanFFT add-on, with a custom coastal shader that makes them shoal and break against the island's actual seabed. The freshwater pools use a separate GPU shallow-water solver that conserves water.
  • About 305,000 trees and plants are placed from a biome grid and drawn in batches, and distant trees switch to generated impostors. Across 27 test viewpoints at 1080p on High, it ran at 85 to 215 FPS, with a median of 121.
  • Each piece of survival state has one owner, and 248 automated checks in five suites run inside the full game. The benchmark itself had a bug, where it was measuring its own screenshot capture, and that was caught and fixed.
  • Godot 4.6
  • GDScript
  • GLSL compute shaders
  • Godot shaders
  • MultiMesh
  • Python tooling
  • Blender
Status
Complete (feature freeze, September 2026)
Platform
Web app, runs locally (no hosted demo)

Full-stack web app · live transit data

TransitPulse

Solo full-stack project · AI-assisted2026

A full-stack web app that records Edmonton's live transit data into PostgreSQL every 30 seconds. It uses that history to show a live map of vehicles, replay past service, report how reliable each route was, and estimate what would happen if a route changed.

  • A recorder pulls Edmonton's GTFS-Realtime feeds every 30 seconds, removes repeated updates and stores the history in PostgreSQL/PostGIS. In one week it recorded 1.8 million vehicle observations, and database triggers stop any recorded row from being edited or deleted.
  • A route-change estimator was trained on the timetables of eight transit agencies and tested by holding out one city at a time. It gives a range and a confidence level with each estimate, and the Analytics page holds back figures when a route doesn't have enough data.
  • The backend has 202 test cases. GitHub Actions starts a PostGIS database, runs the Alembic migrations and the tests, then type-checks and builds the Next.js front end.
  • Python
  • FastAPI
  • PostgreSQL + PostGIS
  • SQLAlchemy
  • Alembic
  • Next.js
  • React
  • TypeScript
  • MapLibre GL

Skills

Languages
  • Python
  • TypeScript
  • JavaScript
  • SQL
  • GDScript
  • GLSL / shaders
  • Java
  • C

I used Java and C in university courses. The rest are used in the projects above.

Backend & data
  • FastAPI
  • SQLAlchemy
  • Alembic
  • PostgreSQL
  • PostGIS
  • Pydantic
  • scikit-learn
  • pytest

TransitPulse

Front end & web
  • React
  • Next.js
  • MapLibre GL
  • Tailwind CSS
  • HTML
  • CSS

TransitPulse

Game & graphics
  • Godot 4
  • Shaders
  • MultiMesh instancing
  • Jolt Physics
  • Procedural generation
  • Blender

A Cut Above and Ocean Island Survival

AI-assisted development
  • Claude Code
  • Codex
  • Written specs and acceptance checks
  • AI review passes
  • Session handoff notes

How the projects above were built

Tools & practice
  • Git
  • GitHub
  • GitHub Actions
  • Automated testing
  • Profiling
  • Documentation
  • Linux
  • PowerShell
Support & networking
  • Troubleshooting
  • TCP/IP
  • DNS
  • DHCP
  • VPN
  • Remote support

SaskTel technical support and volunteer tutoring

Experience

  1. Customer Technical Support Representative

    Nov 2025 – Present

    SaskTel · Casual part-time · Saskatoon, SK

    • I diagnose residential internet, modem and account issues using structured troubleshooting and network diagnostics.
    • I document the troubleshooting steps and how each issue was resolved, and escalate complex cases.
  2. Volunteer Distance Computer Tutor

    Jun 2024 – Present

    Neil Squire Society · Volunteer · Remote

    • I tutor adults with disabilities one-on-one over remote sessions, and adapt each lesson to the learner's accessibility needs.
  3. Instructor / IT Assistant

    Jun 2020 – Jul 2021

    Saskatchewan Elocution and Debate Association · Part-time · Saskatoon, SK

    • I taught public speaking and debate workshops in person and over Zoom, and helped instructors and students with day-to-day technical problems.

Education

Bachelor of Science, Computer Science (four-year)

University of Saskatchewan · Saskatoon, SK

2019 – 2024 · Graduated With Distinction

Relevant coursework

  • Data Structures & Algorithms
  • Object-Oriented Systems
  • Software Engineering
  • Operating Systems
  • Computer Networks
  • Full-Stack Web Programming
  • Software Security
  • Artificial Intelligence
  • Geographic Information Systems

Awards

  • Skills Canada National Competition, Web Design: Silver in 2019 and Bronze in 2018