Sophia Akhavan


Software Engineer

About

Hi, I'm Sophia! I am a software developer who graduated from the CS Games program at USC back in 2023, and after completing my internship at Scopely in 2024 I am now actively seeking a software engineering role, drawing from my diverse background in feature development and design. My main coding languages are C# and C++, and I have extensive experience with Unity. I am also familiar with Unreal Engine through smaller projects.Thanks to my internship and project experience, I am very comfortable learning new skills quickly, being proactive with assigning myself tasks, and working with others. During my time at USC, I took on a variety of projects that exposed me to many aspects of both game and mobile app development. I continue to challenge myself to this day through personal projects and volunteering for small studios. Feel free to check out my Projects tab!

Contact

The best way to contact me is via email or LinkedIn.

LinkedIn: https://www.linkedin.com/in/sophiaakhavan/
Email: sophiaakhavan19@gmail.com
Phone: (650) 730-0480

PROFESSIONAL WORK

PERSONAL PROJECTS

Grandma Green

Date:May 2022 – May 2023
Location:Los Angeles, CA
Role:Software Engineer
Tech:Unity, C#, Perforce
Code Samples:Grandma Green Code Samples
Website:grandmagreen.app

I had the privilege of being part of the development team for Grandma Green, a 2D mobile farming and pet simulation game. Over the course of a year, I collaborated with engineers and designers to bring this game to life. It is now available on the App Store with over 57,000 downloads!Key Contributions:
• Designed and coded the backend for collections, inventory, and shopkeeping systems
• Assisted in the completion of garden customization, enabling players to drag and place decor items and personalize their house, fence, and mailbox• Bug fixed and implemented small features

Marvel Strike Force

Date:Jun 2024 – Aug 2024
Location:Los Angeles, CA
Role:Gameplay Engineering Intern
Tech:Unity, C#, Node.js, MongoDB, Perforce

My internship at Scopely working on Marvel Strike Force taught me a lot about programming for an established game with a large player base. Through code reviews and working with a lot of existing code I improved greatly on my ability to use best coding practices and interpret complex systems. Getting to create an entirely new feature that will improve the player experience was incredibly rewarding and I hope to maintain that level of impact throughout my career.Key Contributions:
• Spent 6 weeks building a new soon-to-be released feature to improve player experience
• Worked with client-server interaction to send updates between players, using Node.js and MongoDB• Built new UI to support the feature while improving existing UI• Coordinated with engineers, designers, and UI/UX team to plan the feature• Fixed bugs across the game

Activision

Date:May 2022 – Aug 2022
Location:Los Angeles, CA
Role:Software Engineering Intern
Tech:REST API, Spring Framework, Java, Git

My internship at Activision was a valuable experience that exposed me to life at a large company. I worked closely with experienced programmers to transform their codebase into being cleaner and more efficient. Much of my work involved Rest APIs, code optimization, and Unit/Integration testing.Key Contributions:
• Changed the way that Call of Duty campaigns for promotion codes are created to be configuration-based, which simplified the code and saved engineering time
• Optimized and cleaned up code for several APIs• Documented existing REST APIs to improve feature discoverability and ease developer onboarding• Unit and integration tested the team’s codebase• Researched, tested, and presented software solutions to improve the team’s processes

RideStream

Date:May 2021 – Aug 2021
Location:Los Angeles, CA
Role:Software Engineering Intern
Tech:React Native, JavaScript, AWS Cognito, Git

RideStream was my first exposure to backend development for a company. Since I joined in its early stages, much of my work was high impact and fast paced.Key Contributions:
• Created feature allowing users to scroll through the app’s database of songs, play them, and select which ones to add to their playlists
• Added playlist feature allowing users to look at their playlists and play them• Kept track of user data (playlists, ad revenue, etc.) in the cloud

MURDER! (mystery) at the Hell Hotel

Date:January 2022 – May 2022
Location:Los Angeles, CA
Role:Software Engineer, Designer
Tech:Unity, C#, Perforce
Website:Itch.io Page

MURDER! (mystery) at the Hell Hotel is a 2-D point-and-click murder mystery dating simulator.
Flirt with demons to uncover the clues you need to solve this mystery and escape hell!
This was my first complete game as a semester-long project with a partner.Key Contributions:
• Designed and coded the point-and-click functionalities
• Created functions called by Yarn Spinner scripts to trigger in-game events• Handled the visual assets (ie facial expression changes, appearance/disappearance of assets)

Parkour's Edge

Tech:C++
Date:April 2022
Location:Los Angeles, CA

Parkour's edge is a simplified version of the hit parkour game Mirror's Edge, complete with checkpoints, points from collecting coins, lasers that send the player back to their last checkpoint, and a timer.
Used SDL for the graphics and audio. The code follows a similar architecture to that of Unreal Engine (UObject and AActor classes, GameMode, GameState, etc).

Mario Kart

Tech:C++
Date:April 2022
Location:Los Angeles, CA

Simplified version of Mario Kart. The code follows a similar architecture to that of Unreal Engine (UObject and AActor classes, GameMode, GameState, etc). Includes an AI enemy kart to race against, tracking of laps, and a display of which place the player is at.
The track is loaded by reading a height map from a CSV file. The POV camera is a spring follow camera that, like a spring compressing and decompressing as the vehicle moves, creates a smooth interpolating effect.

Viewport

Tech:C#, Unity
Website:Itch Page
Date:March 2025
Location:Los Angeles, CA

As part of the 2-week Unlikely Collaborators game jam, I partnered with two friends to bring Viewport to life. In this game, you play as a parent talking to your child about his struggling academic life, utilizing browser windows that act as color filters to reveal his hidden thoughts.What I implemented:
• Dialogue system
• Backend to dynamically change hidden text for each color filter in the thought bubble throughout the dialogue
• Draggability+UI of the browser windows
• Audio (there's a first time for everything ;D )
This was my first ever game jam and I learned a lot about scoping and managing tasks across team members. Since we joined late and had to delay development after the design phase by a few days, we ended up with just a week to actually implement the game. We just barely finished in time before the deadline, which was a big adrenaline rush, but it taught me that it's much better to overestimate rather than underestimate the amount of time something with such a short deadline will take. It's entirely possible for a feature to not work out after playtesting, so the possibility of needing to scrap and redo needs to be accounted for in the planning process.
It's a simple game but I'm super proud of the fact that we were able to complete it in time with no significant bugs!

Work in Progress: Untitled Unity Game

Tech:Unity, C#, Git
Date:Nov 2024 - Present
Website:Github Repo
Location:Los Angeles, CA

This is a Unity3D game where you play as a clever winged lab rat mutant on a mission to escape a lab run by an evil scientist! Staff members guard each room with various weapons like dart guns, butterfly nets, and more.
The game will primarily include puzzle solving, stealth mechanics, and flight-based parkour in each level to evade capture.

So far I've completed most of the player movement, enemy AI, stealth system, and enabling players to grab objects that they can use to distract enemies. I also learned Blender to make the model and animations for the rat! (isn't he just precious??)Making a game with so many different gameplay components from scratch has exposed me to learning a bunch of new skills and knowledge of programming gameplay systems.
Not only am I really excited to someday put out a fully fleshed prototype that puts the narrative and intended player experience to justice, but I am glad to have chosen something that covers a lot of bases when it comes to game mechanics.
Click on the above link to the Github Repo if you're interested in seeing up to date code. Stay tuned for more demo videos and pictures.

More about the process...

Player Movement

The initial idea for how the flying would work was actually inspired by Flappy Bird; I wanted the rat to feel "heavy" to the player, as if the wings were not strong or big enough for the body. At first this was just to make the game feel sillier, but functionally it's important to the gameplay because the wings should only be able to get the player so high up, and only so quickly.
As I was iterating on the flight, I also wanted there to be the ability to extend your wings to glide, and angle the wings downward to dive, similar to the Minecraft Elytra. Also similarly to the Elytra, after some playtester feedback, I decided that the flight direction would solely follow mouse movement during flight, with no WASD input. The goal with this is to make it more intense for the player when being chased, not being able to look back to see how close the enemy is (unless they land on a platform, or change direction of flight to face the enemy).
Implementation Details:
• Different states of the player's movement are tracked (Grounded, Walking, Flying, Gliding), and calculations are made and applied to the player's horizontal and vertical velocity based on these states
• When the player applies a Flap, an upward impulse force is applied to the Rigidbody• If the player is gliding, a "lift" is applied to the vertical velocity, and the vertical component of the look direction is used to determine whether to speed up the downward velocity if the player is looking below a certain threshold (aka the dive state)• Roll, pitch, and yaw rotations are calculated and applied to the transform as the player moves around during flight

Using Sensors for Stealth System

When deciding on the best approach for the stealth system, I wanted to introduce a way for players to distract the enemies in addition to simply being detected when in the line of sight or heard by the enemy. So I ended up going with a sensor system that works for any GameObject that has the relevant component attached.Overview:
• Detection Level system calculates the current detection level of the enemy for a particular object, handles decaying of that detection level over time, and decides on which state to change Enemy AI to
• Enemy AI script defines the different states of the enemy (Idle, Confused, Detected, etc), movement and attack behavior based on the current state• Hearing and Vision sensors are attached to the enemy - the Vision sensor continuously scans the enemy's line of sight for any Detectable Targets, while the Hearing sensor has an OnHeardSound function that can be called by any object to send a sound of a specified intensity - Both sensors notify Enemy AI when something is detected• Any GameObjects that can be detected have a DetectableTarget component attached so the sensors know what to look for, and these objects are managed by a DetectableTargetManager to provide an easy-to-access list of DetectableTargets