I am a Canadian citizen and passionate about coding and software engineering. I have a solid programming foundation and am proficient in C#, C/C++, Java, and highly skilled in Python, R, SQL, React, TypeScript, Next.js, Node.js, Tailwind CSS, and PostgreSQL. Additionally, I have practical experience with industry-standard software tools such as Unity Engine, Android Studio, Eclipse, RStudio, Oracle, Visual Studio, Code::Blocks, IntelliJ, Google Colab, Replit, and Cursor.
My expertise goes beyond practical skills, including theoretical knowledge of various techniques and algorithm analysis. I have focused on object-oriented programming (OOP), parallel computing, software construction, and data/network structures. This blend of theory and practice allows me to approach software development holistically while remaining detail-oriented.
My main interest is in software engineering projects involving augmented reality (AR), virtual reality (VR), and mixed reality (MR), all under the extended reality (XR) umbrella. I am passionate about using these technologies to develop immersive and innovative experiences, with a particular focus on game development.
I would be happy to connect with you and discuss potential opportunities if you are seeking a motivated and skilled software engineer with a strong interest in AR/VR/MR (XR) projects.
Solo Developer | UI Designer | Gameplay Programmer
Tools: Unity, C#
Description:
Galagsis is a fast-paced arcade space shooter inspired by retro classics, built as a solo project to deliver a complete and polished gameplay experience. Players pilot a sleek ship, dodging and destroying waves of incoming enemies in dynamic vertical-scrolling levels.
My Role:
As the sole developer, I designed the user interface, programmed all gameplay mechanics, and handled visual polish and deployment.
Key Technical Features:
Overcame complex collision detection issues by fine-tuning collider logic to ensure reliable interaction with enemies and obstacles.
Implemented responsive player tilting mechanics that enhance visual feedback without compromising horizontal movement or control precision.
One of the biggest challenges I faced while creating Galagsis was getting the collider feature to work properly. The player wasn’t consistently recognizing collisions with obstacles or enemies, which caused issues with gameplay mechanics. After some frustrating trial and error, I was able to fix it by adjusting the collider settings and refining the detection logic. Another challenge was implementing player tilting without affecting horizontal movement. It took some experimentation, but I eventually found a way to achieve the desired effect while keeping the controls responsive.
Playable Demo / Links:
Solo Developer | UI Designer | Gameplay Programmer
Tools: Unity, C#
Description:
Bowling is a physics-based arcade game that simulates the feel of real-world bowling through carefully tuned mechanics. Designed to offer both casual fun and realistic challenge, the game emphasizes intuitive ball control, accurate physics responses, and a polished user experience.
My Role:
As the solo developer, I handled everything from UI design and gameplay programming to camera setup and physics tuning.
Key Technical Features:
Engineered a natural ball hooking mechanic by fine-tuning input controls for realistic curve behaviour.
Overcame challenges with player-camera alignment and gutter physics by adjusting camera positioning and applying precise collision-based force interactions.
While creating Bowling, I faced several challenges, including implementing a hooking mechanic for the ball, properly adjusting the player’s position with the camera, and ensuring the gutter functioned correctly. The hook feature required fine-tuning the input controls to make the ball curve naturally based on player input. Aligning the player with the camera was tricky, as I had to balance visibility and control. Additionally, making the gutter push the ball forward after hitting the borders took some experimentation with collision and force application, but I eventually got it working smoothly.
Playable Demo / Links:
While creating Clicky Crates, one of the main challenges I faced was detecting when crates fell out of the scene to trigger a game over. At first, the game didn’t properly recognize when a crate was off-screen, which caused issues with ending the game at the right time. After some troubleshooting, I solved it by setting up boundary colliders and using triggers to detect when a crate left the play area, ensuring the game over condition activated correctly.
While creating Ball Mechanic, one of my main challenges was setting up a rounded fixed camera that followed the player’s movement smoothly. I had to fine-tune the camera behavior to maintain a consistent view without abrupt shifts. Another challenge was linking the camera movement naturally to the player's motion, ensuring it felt responsive and intuitive. Additionally, implementing power-up activation was tricky at first, but after refining the logic and timing, I was able to get it working as intended.