Mohan Grewal

Software Engineer | Game Developer | AI Enthusiast

Mohan Grewal

About Me

Hi, I'm Mohan Grewal — a passionate Software Engineer based in British Columbia, Canada. I graduated from the University of British Columbia with a degree in Computer Science. I love building immersive experiences, solving technical challenges, and exploring the worlds of AI, gaming, and fitness both in the industry and my hobbies.

I have experience working in QA, mobile development, video game development, and recently started working on full-stack. Whether it's using Python to train models, Kotlin for Android apps, Unity/Unreal for engaging gaming experiences, or React/Next.js to deploy UIs, I strive to build tools that are practical and polished for both the backend and frontend.

Outside of coding, I enjoy lifting weights and reading. In the summer, I go on bicycle rides, and in the winter, I hit the slopes for snowboarding. Currently I'm improving my snowboarding skills and learning acoustic guitar to keep pushing my creativity and discipline. I’m always up for collaborating on exciting projects inspired by my hobbies to grow as a developer and teammate!

It's best to always learn something when you first understand the joy of doing it!

Mohan Snowboarding

Experience

Rivian Internship LogoRivian Interns Photo 1
Rivian Interns Photo 2

Software Engineer Intern

Rivian · Jan 2023 – Aug 2023 · Vancouver, BC

KotlinSwiftPythonGitLabAndroid StudioXcodeREST APIsBuild PipelinesLinuxJIRAConfluenceOperating SystemsAgile DevelopmentEnvironment Variables

At Rivian, I worked on mobile apps connected to Rivian vehicles, focusing on QA and developer workflow improvements. I helped build a debug menu that auto-generated JIRA tickets and adapted a Python test suite into Kotlin to speed up testing cycles.

These tools made it easier for QA and mobile devs to identify and fix bugs quickly, reducing time spent on manual testing and reporting. The experience gave me a deeper understanding of how software supports hardware-driven products in high-pressure environments.

I collaborated with a small, focused team where communication and speed were critical. It taught me the value of building the right internal tools to empower entire engineering teams.

Software Engineer Intern

EastSide Games · Sep 2020 – Apr 2021 · Vancouver, BC

C#UnityGitHubGame AIMultiplayer IntegrationLinuxJIRAConfluenceOperating SystemsAgile DevelopmentEnvironment Variables

At East Side Games, I built a subscription system and live-service tools for the TPB mobile game using Unity and C#. I implemented in-app purchases for both Android and iOS and helped design a debugging menu to resolve service issues.

This was my first industry role, and it showed me how agile teams work together across design, QA, and engineering. I gained experience working in sprints, collaborating closely with stakeholders, and delivering features under real deadlines.

The internship helped shape my product-thinking mindset — balancing user experience with scalability and maintainability. It laid the groundwork for how I approach game development and teamwork today.

East Side Games LogoEast Side Games Office

Skills

Click a skill to see which projects and experiences use it!

Languages

Java
Java
JavaScript
JavaScript
TypeScript
TypeScript
Kotlin
Kotlin
Swift
Swift
Python
Python
C#
C#
C
C
C++
C++
Blueprint
Blueprint

Frameworks & Libraries

FastAPI
FastAPI
React
React
Tailwind CSS
Tailwind CSS
Next.js
Next.js
Framer Motion
Framer Motion
Hugging Face
Hugging Face
ANTLR
ANTLR
Z3
Z3
Aubio
Aubio
Photon
Photon

Tools & Platforms

GitHub
GitHub
GitLab
GitLab
Android Studio
Android Studio
Xcode
Xcode
IntelliJ
IntelliJ
Unity
Unity
Unreal Engine
Unreal Engine
JIRA
JIRA
Confluence
Confluence
Render
Render
Vercel
Vercel

Technologies / APIs

REST APIs
REST APIs
Signal Processing
Signal Processing
GPT-2
GPT-2

AI / ML

NLP
NLP
Transformer Models
Transformer Models
Prompt Engineering
Prompt Engineering
Local Model Hosting
Local Model Hosting

Cloud Hosting & Concepts

CORS
CORS
Build Pipelines
Build Pipelines
Environment Variables
Environment Variables

General Concepts

Linux
Linux
Operating Systems
Operating Systems
Static Code Analysis
Static Code Analysis
DSLs
DSLs
Multithreading
Multithreading
Multiplayer Integration
Multiplayer Integration
Game AI
Game AI
Agile Development
Agile Development
UI Design
UI Design

Projects

Click a project to expand and learn more about it, or check out its Github repository!

Guitar Guide App

PERSONAL

October 2024 – Present

Android app to help users play songs with real-time chord recognition, tuner feedback, and practice breakdowns using signal processing.

JavaCC++KotlinPythonAndroid StudioAubioGitHubTransformer ModelsNLPSignal ProcessingLocal Model Hosting
Play any song on guitar with this chord recognition app! 🎸

AI Workout Planner

PERSONAL

April 2025 – June 2025

AI-powered workout planner that generates custom routines, exercise tips, and visual demos. Built with FastAPI, React, and AI algorithms.

ReactJavaScriptPythonGitHubHugging FaceFastAPITailwind CSSVercelRenderGPT-2CORSTransformer ModelsPrompt EngineeringLocal Model Hosting
Your AI fitness coach in a click 💪

Path-Reachability

ACADEMIC

March 2024 – April 2024

Visual static analysis tool that identifies all viable execution paths in TypeScript code using Z3 to evaluate path conditions.

IntelliJTypeScriptJavaScriptReactFastAPIGitHubZ3Static Code AnalysisMultithreading
Visualize all execution paths in your TypeScript code! 🛤️

Form-Builder DSL

ACADEMIC

January 2024 – February 2024

Custom DSL for building quizzes/forms with ANTLR and the Visitor pattern to convert input into evaluable ASTs.

IntelliJTypeScriptANTLRGitHubDSLsMultithreading
Short on time? Build forms and quizzes in minutes with a custom DSL! 📝

AI Demo Test

PERSONAL

July 2021 – September 2022

Unreal Engine 4 project demonstrating AI state management and behavior switching using both C++ and Blueprint.

Unreal EngineC++BlueprintGitHubGame AI
Understand AI state management in Unreal Engine with this demo! 🤖

Panic Titanic

PERSONAL

September 2020 – March 2021

3D multiplayer party game inspired by Among Us. Built complex voting systems and real-time player task handling using Unity RPCs.

UnityC#PhotonGitHubMultiplayer IntegrationGame AIAgile Development
Among Us meets Titanic in this 3D multiplayer party game! 🚢

Roguelike

PERSONAL

September 2019 – March 2020

Classic roguelike built in Unity with asynchronous combat, animation handling, and modular code using SOLID principles.

UnityC#GitHubGame AIAgile Development
Experience fast-paced roguelike combat with this Unity game! ⚔️

Extras

🎮 Extracurriculars

UBC Game Development Club

Contributed to collaborative game projects, participated in team-based development sprints, and participated in game competitions to refine my Unity and Unreal Engine skills.

City of Surrey & BC Cancer Volunteer

Assisted in community outreach and public events for either environmental awareness or to help get donations for cancer research, helping coordinate activities and support services for diverse audiences.

Canucks Autism Network Volunteer

Supported children and youth with autism in recreational sport programs and camps, fostering inclusivity and teamwork.

✨ Interests & Off-Time

Reading both fiction and non-fiction books, with a focus on science fiction, fantasy, and technology.

Playing acoustic guitar and working on new songs to learn along with my projects.

Exploring game design ideas and building personal game prototypes.

Biking around local trails and enjoying the outdoors.

Snowboarding in the winter and exploring the mountain passes.

Staying active with strength training and learning about fitness science.

Following tech and gaming trends, experimenting with AI tools.