BS in Computer Science

Coastal Carolina University

BS in Computer Science

Ansal Institute of Technology

Languages

Interests

Career Profile

I am a programmer who has passion for software development, learning from people around me and to architect solutions that help development teams be lean, and motivated.

These skills have been while plying trade as a game programmer for 7 years. However, the lessons learned are also applicable in any domain - as is evident from my current job as a full-stack developer/architect for a fin-tech company.

A solid foundation of architectural foresight and planning, clear and transparent communication, and a good development workflow would be my three wishes for any team to navigate through most issues - something that I’ve learned first-hand from my experiences.

Experiences

System Developer

2018 - Present

If Skadeforsikring, Oslo

For a multi-national company like If, the focus is often on designing homogenous processes (and consequently software) to simplify complexity and lower costs. In this particular case, this means a focus on decomposing the company’s legacy monolith application into a more flexible and maintainable microservice architecture. My role in this mission statement is to:

Split up monolith functionality into microservices and promote these into Azure.

Design and implement any new services to be cloud native.

Full-stack development of C# backend systems along with React based frontends.

Game Programmer

2016 - 2018

The Future Group, Oslo

The Future Group develops tightly coupled products for television broadcasting using Unreal Engine 4. Their products vary from content for broadcasts, to second screen mobile apps augmenting those broadcasts. Their first show, Lost in Time, aired in April 2017 in Norway. While working at there, my duties were:

As technical lead my role was to liaise with various stakeholders in production of the games - workflow (setting up Perforce SCM, and Jenkins build pipelines), architecture, QA, etc.

When getting closer to the delivery deadline, my focus shifted to performance testing, and optimizations for PC and mobile platforms (iOS and Android).

Architect of a messaging service providing data interoperability for several internal and external products.

At the game’s core is a ‘WarServer’ which provides most of the game’s services such as login, matchmaking, statistics, metrics, transactions, handling results of games, etc. These services are consumed by various parts of the game - web client, FPS game, and mobile client.

Implement handlers that service game clients. For example, buying soldiers, equipping/un-equipping items on soldiers, execute movement orders for units, etc.

The backend architecture uses an in-memory key-value data storage. However, one issue with such a system was handling multiple updated to the same object before a transaction is finalized. I implemented an interface that would allow this functionality by caching intermediate results.

Some of the game’s immutable data had to be accessed through the in-memory data storage system, which was hurting performance. I implemented a cache layer that improved access to this data by about 10 times.

Data Management: Handling tasks related to management, upgrade, upkeep, and trouble-shooting on the game’s dataset which is stored on SQL database servers.

Projects

These are some of the side projects that I’ve worked on in my free time. For more info about these and other such projects visit prakashprasad.com.

Stay, Good Dog! - Game that is all about a friendship between a dog and his owner. You play as the dog, and you must find your way back home to the arms of your owner.

The Gods Must be Crazy - Game where players have to try to destroy life in a given solar system by utilizing celestial mechanics (i.e. motion of objects in space, under the influence of objects in space).

Monkey of Puppets - Puzzle game where players have to sneak past the enemies, find the key and get to the door to escape the current level. And do it all over again in the next level.

Snowball Fight - 3D multiplayer game where players fight across a snow-covered playground in teams.

Gnome Engine - 3D game engine (for OpenGL 3.x), designed for games with physics for balls.