top of page

Looking for my next
opportunity
to make a change.
The digital way.

12487302_10208367547443203_815407270663594268_o.jpg

About Me.

Hello! With 8 years of experience under my belt, I stand at the crossroads of engineering prowess and leadership finesse. My journey has been marked by a deep dive into software engineering, with a special focus on 3D graphics, complemented by achievements in engineering management, project management, and academia, as I've been a software engineer, engineering manager, technical program manager, researcher, and even business owner!
Through my popular Udemy courses, I've dabbled into teaching, breaking down complex concepts with ease and enthusiasm for thousands.

My leadership style is unique, adept at weaving together diverse disciplines to foster innovation and drive collaborative success. Excelling in roles that demand technical excellence and forward-thinking leadership, I'm the ideal catalyst for projects aiming not just for success, but to set new benchmarks.

Topics in Computer Animation

C++ / OpenGL - GLFW / Visual Studio 2019

2D OpenGL Parametric Curves & Interpolation Engine.
Supports: Linear, Bezier Cubic Catmul-Rom, Hermite, B-Splines.
Methods: Bernstein Polynomials, De Casteljau.
Can
 help represent position & orientation (Quaternions and Euler Angles) of 3D Objects over time.

3D OpenGL Animation Engine. 
Supports: Scene Graph World Hierarchy, Skeleton Transform Kinematic Chain Traversal, Foward Kinematics Solver, Loading of BVH animation files, Inverse Kinematics Solver, Skeleton - Mesh Skinning to drive geometry.
Methods: For FK, The skeleton's joints are arranged in a hierarchy where each child is positioned and oriented relative to its parent. The engine can compute or read from a BHV file the position and orientations of each joint in a skeleton relative to the world.
For IK, an IK chain is created, and it's solved by using both C
yclic Coordinate Descent and the Pseudo-Inverse Jacobian Approach.

 

PD Controllers, Intelligent Agents with Behaviors.
Supports: Individual and Group Behaviors such as: Seek, Flee, Arrive, Wander and Obstacle Avoidance. Flocking and Leading for Group sims are also supported.
Methods: Every agent gets info on the state of the world per frame. With this, the sim computes the desired velocities and heading angles which are then used by the feedback controllers (PD controllers in this case) to produce corresponding forces and torques. Then, the software updates all the agent's state vector using Euler integration and then displays the agent in the world.

 

Simple Physics Engine.
Supports: Simulation of Particle Systems. Rockets can fly up in the air and explode with particles.
Methods: Every rocket has the current state per frame and the derivate of the state. Integration methods such as Euler and Runge-Kutta are used to solve for the dynamics of the system.

 

Topics in Computer Graphics & Rendering

C++ / OpenGL - GLSL / QT

3D Software Rasterizer.
Supports: Rasterization of a full 3D Scene from World Space to Screen Space with Z-Buffering. Texture Sampling, Model Shading with Lights, Camera and OBJ model loading are supported.
Methods: Starting from World Space, the software converts to Camera Space using the View Matrix, then the Projection Matrix to get to Screen Space. SS Triangle rasterization is done manually.
 Texture Sampling done with Barycentric interpolation. Lighting and Shading using Lambert's law of cosines.

Fully Featured 3D CPU & GPU Path Tracer Rendering Engine.
Supports: Full OBJ scene loader. Global Illumination. Different types of surface materials, colors and lights. Textures.
Methods: Solving the Light Transport Equation and shooting rays per pixel that bounce in the scene.
Direct and Global Illumination, different types of BRDFs & Multiple Import
ance Sampling (MIS) are among parts of technology that has been implemented. 
For the GPU case, the Rendering is being solved via
 a shader, on a screen space sized quadrangle.
Look below for some actual results from my rendering engine!

Physically Based Shaders. "RealShading."
Supports: RealTime PBR Materials. Environment Maps. Metallic - Roughness PBR Workflow.
Methods: Implementation of Epic Game's Real Shading in Unreal Engine 4 paper found here.
General Implementation of the Cook-Torrance Microfacet Specular Shading Model.
 We pre-calculate the information of GI and store it in a 2D look-up Texture.

Videogame Development

Raw OpenGL / Unity / Unreal Engine

OpenGL: From Scratch Minecraft Clone
 

NeonDodge VR - A Multiplayer VR Dodge Ball Game.
 

Lumos - A Multiplayer Hack n' Slash Game

Thank you for taking the time to go through my whole website. I hope you liked what you saw.

It means a lot to me.

Please hire me.

bottom of page