OPEN TO TPM · iOS · PROGRAM MANAGER ROLES
Jaami
Hasan
Technical PM  ·  iOS Developer  ·  Founder @Ascendance

18 years building systems that don't fail — from HACCP food safety programs to AI-powered trading platforms to a native iOS arcade game. SSBB · MBA · Google PM Cert · PMP candidate. Bryan-College Station, TX.

18
YEARS IN OPS
LEADERSHIP
15
BFS-VERIFIED
GAME LEVELS
Swift
NATIVE iOS
SPRITEKIT
BUILDING
NOW

Current Project
Phantom Grid

A grid-based arcade game inspired by Lode Runner (1983), rebuilt from scratch with modern architecture. Play it right here — coming to the iOS App Store in 2026.

CLICK TO PLAY

ARROWS — move  ·  Z/X — dig  ·  P — pause  ·  dig the floor too
PHANTOM GRID
iOS arcade  ·  Swift + SpriteKit  ·  2026
15 hand-designed levels — each one BFS-verified so every gold orb is guaranteed reachable from spawn. No unwinnable states ship.
Fixed-timestep loop — identical gameplay speed on any device, from 60Hz phones to 120Hz ProMotion displays.
Independent enemy AI — each guard runs its own chase/patrol state machine with unique timing offsets so they never mirror each other.
Dual visual themes — Phantom Grid (midnight teal) and Sunken Market (warm parchment). Toggle live, no restart needed.
Teleport exit sequence — collect all orbs and your character power-surges out of the level with a Super Saiyan flash.
THEMES
◉ PHANTOM GRID
◎ SUNKEN MARKET
COMING TO
App Store — iOS 2026
IN DEVELOPMENT
Swift SpriteKit Xcode 26.3 JavaScript Python · BFS Claude Code

Under the Hood
Architecture decisions that matter

Every choice in this project maps to a real engineering tradeoff — and a real interview answer.

Fixed Timestep Loop
Game logic runs at exactly 60 ticks/second regardless of display Hz. Discovered when the web prototype ran 2× faster on a 120Hz MacBook than a 60Hz phone — then fixed before any code was ported to Swift.
accumulator += delta
while acc >= 16.67ms {
  tick()
}
🔍
BFS Level Verification
All 15 levels run through a Python Breadth-First Search before being built into the game. Every gold tile guaranteed reachable from spawn — no unwinnable states ship to players.
verified: 15/15 levels
gold tiles checked: 312
unreachable: 0
🤖
Enemy State Machine
Each enemy has independent walkSpeed, thinkInterval, and goal state. Staggered start timers prevent mirroring — enemies feel like individuals rather than clones running the same script.
enum Goal {
  case chase, patrol
}
thinkInterval: 4 + (i % 4)
🎨
Theme Abstraction
All colors, shapes, and collectible types live in a Theme struct. Swapping worlds at runtime is one property change — the renderer never hard-codes a single color value.
Theme.phantomGrid
Theme.sunkenMarket
// live toggle, no reload
📱
Coordinate Bridge
HTML canvas is top-left origin (Y down). SpriteKit is bottom-left origin (Y up). One gridToScreen() function handles all conversion — the rest of the game never thinks in pixels.
y = frame.height
  - row * tileSize
  - tileSize / 2
Scene Graph Rendering
SpriteKit creates tile nodes once at level load. Only changed tiles (dug holes) update. Canvas drew all 308 tiles every frame. This reduces per-frame work from O(n) to O(1) for static tiles.
// node created once
// only holes update
removeTileNode(col, row)

The Story Behind the Build
Questions this project answers

The decisions behind Phantom Grid are interview answers. Here are three of them in full.

"Tell me about a technical challenge you diagnosed and solved."
The game ran twice as fast on my MacBook as on a phone — a frame-rate dependency bug. Game logic was tied to requestAnimationFrame, which fires at the display refresh rate: 120 times/second on a MacBook, 60 on a phone. I implemented a fixed-timestep accumulator — the same pattern used in AAA game engines — that decouples logic from render rate. Game logic now always runs at exactly 60 ticks/second regardless of hardware. I caught this in the web prototype before touching Swift, which meant the architecture was correct before porting began.
"Why did you choose SpriteKit over Unity or other game engines?"
SpriteKit was the right-sized tool for the problem. It ships with Xcode, has zero licensing cost, gets direct GPU access and Apple API integration (haptics, Game Center, Metal), and its scene graph architecture maps naturally to my tile-based grid. Unity would have introduced a full 3D engine, C# runtime, and hundreds of megabytes of overhead for a game that's fundamentally a 22×14 integer array with six tile types. Choosing the smallest tool that fully solves the problem is part of good engineering judgment — and something I apply from 18 years of QA systems design.
"How do you use AI in your development workflow?"
Three levels. Architectural pressure-testing — I use Claude to challenge design decisions before writing code. If I can't explain a choice to an AI that will push back on it, it's not a good enough decision. Autonomous implementation — Claude Code agent in Xcode 26.3 handles boilerplate, build errors, and refactoring while I focus on system design. Contextual learning — I ask it to explain Swift concepts in context of my actual codebase rather than textbook examples. The core discipline: every architectural decision is mine. AI is a force multiplier, not a replacement for judgment.

Ascendance Brand
What I've built

Tools, systems, and products built under the Ascendance brand — each one solving a real problem I had.

Phantom Grid
IN DEV
Native iOS arcade game. SpriteKit + Swift. 15 BFS-verified levels. Dual themes. Claude Code integration. App Store launch 2026.
Swift SpriteKit iOS
AlphaForge Pro
BUILT
Multi-engine AI trading platform. Routes between Ollama (local LLM), Anthropic, and OpenRouter based on task. Manages 50-account prop firm farm across 10 firms.
Python AI/LLM Futures
Ascendance Pine
BUILT
Claude API-powered Pine Script strategy generator. Describe a futures trading strategy in plain English, get working TradingView code back instantly.
Claude API Pine Script JS
WSF PreOp Tracker
BUILT
Enterprise QA inspection system for Wayne-Sanderson Farms. 12 monthly sheets, 405 equipment points tracked, Python/openpyxl automated injection pipeline.
Python openpyxl VBA
Career Command
BUILT
React-based personal ATS. Four tabs: job board search, match scan, resume tailor, standout plan. Claude API powers AI resume tailoring and job fit scoring.
React Claude API HTML/CSS
Wealth Decoded
BUILDING
Faceless YouTube automation pipeline. PROSPECT niche scanner, Claude-wired script generator, automated publishing workflow for finance content channel.
Claude API Python Automation

Background
18 years of ops · now building tech
CREDENTIALS & EXPERIENCE
Active
PMP + PMI-ACP Candidate
PMI-approved applications · In progress
2024
Lean Six Sigma Black Belt (SSBB)
Process Excellence · Apple's preferred cert
2024
MBA
Western Governors University
2024
Google Project Management Certificate
7/7 courses · Completed
2024
IBM Generative AI for Executives
AI Strategy & Enterprise Applications
2006–
HACCP Supervisor · QA Program Lead
Wayne-Sanderson Farms · Bryan Complex, TX
TARGET ROLES — FIT SCORE
Apple — Strategic Quality PM95%
Google — Technical LPM88%
Meta — Technical PM85%
iOS Developer (Jr–Mid)78%
TAMU — Technical PM / IT75%
TECH STACK
Swift SpriteKit iOS / Xcode JavaScript Python React HTML / CSS Claude API Claude Code Pine Script Futures Trading

Let's talk
Open to TPM, PM & iOS opportunities

Bryan-College Station, TX  ·  Remote-friendly  ·  Available 2026