Rohan Singh

Picture of Rohan Singh wearing sunglasses

Hi! I am a graduate student at Portland State University. I worked as a software engineer for four years before starting my Master of Science program in Computer Science. I primarily worked in the development of Virtual Reality and Augmented Reality applications.

My area of specialisation was creating User Interface for the VR/AR apps and my tech stack was initially C++ with Qt and Open Scene Graph (based on OpenGL), and later Unreal Engine.

I am also very interested in web development, especially UI and frontend development. Apart from that, I am also interested in learning about Vulkan, which is a graphics API by Khronos Group, and Metal, which is a graphics API by Apple.

My hobbies are traveling, riding motorcycles, reading novels and watching YouTube.

Work Experience

WSP

  • July 2021 - August 2022
  • Engineer - Software Development
  • Responsibilities:
    • Implemented functionalities of the Azure Digital Twin (ADT) plugin using Blueprints in Unreal Engine in collaboration with Microsoft Corporation and Epic Games Inc.
    • Designed and created User Interface (UI) in Unreal Motion Graphics (UMG) and GNU Image Manipulation Program (GIMP).
    • Integrated UI with the back-end code and improved the aesthetics of the existing UI.

VizExperts

  • September 2018 - July 2021
  • Engineer - Frontend
  • Responsibilities:
    • Created GUI applications in C++ using Qt and integrated the Qt based code into the existing Open Scene Graph (OSG) based Virtual Reality (VR) project.
    • Created and integrated subparts of the Augmented Reality (AR) project in Unreal Engine, using Blueprints (Visual Scripting) and C++, and created UI for them using UMG and GIMP.
    • Created application modules in C++ & Blueprints for sending and fetching data from AWS based Nextcloud servers via REST API.
    • Created Android packages (AR Version) and macOS packages of the application.
    • Ensured the compatibility of the integrated code with both Head - Mounted Displays (HMDs) as well as monitor-based displays (Powerwall / Desktop).

Projects

Kommadek

Kommadek is a GUI (Graphical User Interface) application for reading CSV (Comma Separated Values) files. It allows the user to select a CSV file from the local file system and then display it in a tabular format. It also allows the user to edit the contents of the CSV file and either overwrite the changes or save it as a separate file. It is a cross-platform application and can be used in macOS, Windows and Linux.

The primary reason for building the project was that I was looking for a clean and minimal CSV reader which could display the contents of a CSV file in a tabular format when I was working in my previous company where I often had to work with CSV files in the project I was assigned to. Many such applications were available, but unfortunately most of them were shareware or adware or freemium software. I wanted at least a freeware application, if not open source. Unfortunately I could not find any such application for macOS so I wanted to make one myself instead, but I couldn't due to my workload. I eventually got the chance and I decided to create my own application, which would be always be open source and devoid of pesky ads and trial time limitations, and thus Kommadek was born.

I used C++ for building Kommadek, and for GUI design and development, I used the Qt framework because Qt is a cross platform framework, so my application would be supported on multiple platforms and since I have prior work experience working with Qt and I enjoy working in Qt.

You can find the repository here: Kommadek

Alpha

Alpha is a GUI (Graphical User Interface) application for reading text based files. It is a cross-platform application and can be used in macOS, Windows and Linux.

It also allows the user to adjust the opacity of the application via a slider. The reason I implemented this functionality was because while learning a new language, I do not prefer to copy and paste code snippets from the book/website I am learning from, as advised by a wise programmer I know. Instead I prefer to write down the complete syntax myself. As I did not have an extra monitor at the time I created this project, and because I found switching between windows particularly annoying, I decided to add an opacity slider which would allow the user to change the opacity of the editor to a level where text can be entered while looking at the code present in the book/website behind the editor.

Just like for Kommadek, I used C++ for building Alpha, and for GUI design and development, I used the Qt framework.

You can find the repository here: Alpha

Contact