I build novel software solutions for complex problems. I've build computer
vision systems that enhance 3D production pipelines, LLM-powered agents that boost
productivity and customer experience, and much more.
A lightweight WordPress chat + embeddings plugin that I
built for Controbit.
It indexes site content, stores vector embeddings, and powers context-aware chat on
the
frontend.
Gutenberg In-Line Assistant
An context-aware LLM-powered in-line assistant for refining
and generating block
content in Gutenberg while preserving formatting and structure with separate admin
controls.
Text sentiment analyzer
Python-based review sentiment analyzer using BERT and
DNN.
Software Engineer Controbit.com
2025 May – August 2025
Developed an extensive LLM-powered in-line assistant to improve content
generation and refinement to improve content editing and creation time
noticeably
Developed a context aware chatbot aware agent for clients for immediate
feedback and query responses on digital content, marketing and SEO
optimization offloading 20-30% of live agent work to the chat agent.
Advised on LLM augmented Chrome Webstore plugin for SEO optimization.
Advied on SQL and vector database implementaitons for optimizing
retrieval of content.
Software Engineer
Exaflop Labs Inc.
2025 January – April 2025
Researched and tested cutting edge computer vision models for 3D product
solutions
Developed backend systems for deploying computer vision models for 3D
product features
Advised on good practices in 3D productions and relevant AI-based
solutions
Contributed to the advancement of AI technology in the 3D product
industry
Software Engineer
Voxel Systems Inc.
2024 January – January 2025
Developed cloud-based computer vision pipeline for Motion Studio's
character motion capture used by thousands of indie artists
Developed cloud-based computer vision pipelines for image generation,
editing and upscaling.
Advised on agentic architectures for LLM-powered 3D workflow.
Derivatives Analyst, Investment
Operations
Ontario Teachers’ Pension Plan
October 2015 – March 2017
Accurate and timely recording and reporting of investment transactions
including settlement and reconciliation
Manual pricing and accounting for non-standard derivatives
Collaborated and provided recommendations for process changes and
improvements
Monitor and report on internal control standards
Derivatives Analyst
InternInvestment Operations
Ontario Teachers’ Pension Plan
May 2012 – April 2013
Validated and reconciled FI and equity option positions
Manual pricing of some trade positions
Managed a variety of operations-related duties for equity option
positions
High Frequency Trader Intern
Title Trading Inc.
February 2011 – June 2011
Won a position as an intern after competing in an investment competition
organized by the investment society at UTSC
Analyzed and forecasted technical and fundamental market and company
data
Analyzed T/S tapes to trade on ECNs
Managed HFT-industry-standard trading desk and trading book
My open source LLM-powered investment advisor that complies with MCP through 3 key contextual
components (provider servers):
a tool that maintains and manages the user's general and portfolio-specific investment profiles
a tool that maintains and allows users user to manage portfolios and holdings
a tool for retrieval augmentation (RAG) to retrieve and summarize the latest news data relating
to the user's portfolio and prompts
The client allows the user to interact with the advisor by making investment-related prompts where
the LLM as the orchestrator will make key decisions on how to best tailor the advice.
Key outcome
users can get investment advice tailored to their investment objective and unique portfolios based on
the latest news data within seconds or minutes.
With billions of dollars poured into 3D texture creation over the decades of history of computer
graphics, AI presents a great opportunity to restore valuable assets. Animation studios which
generate collectively close to $400 billion worldwide can leverage advances in AI to modernize
their 2D assets leading to large cost savings and efficiency.
The CG Texture Upscaler takes texture assets and upscales them to modernize
productions
while producing higher quality base
color maps
and improving and preserving other
material maps.
It also provides a convenient utility to batch-process textures
with the ability to read and write from and to most CG texture formats and a CLI for automation
featuring the same functionality as the GUI.
Developers and employers can access the official code repo here
Download
CG Texture Upscaler (CPU
+ GPU)
Use an NVidia GPU (10xx and above) or your CPU to upscale CG textures
while preserving your material maps. Includes utilities like image preview and batch
conversion to and from most CG texture formats.
A lighter version that allows only the use of CPU to upscale CG
textures while preserving your material maps. Includes utilities like image preview and
batch conversion to and from most CG texture formats.
*Please have ImageMagick installed for handling DDS
images
Features
Upscale base color maps
Base color maps are the basic texture maps applied to 3D surfaces that define the “base” color of the
surface pixel by pixel.
The gallery below presents images before and after a 2x upscale of a base color map using the CG
Texture Upscaler.
The smoothening effect is the current prominent feature of the CG Texture Upscaler
since it
was adapted from the basic RealESRGAN model and trained on thousands of 3d textures resulting in the
smoothing of textures as result of the existing pretrained RealESRGAN. This effect on upscaling
works
with a lot of CG textures but may not work on others.
2x upscale (left) | Original scale (right)
Upscale other material maps
Other material maps include:
normal and height maps that direct light or occlude geometry surfaces from light completely
specular/metallic maps that determine light intensity and glossiness/roughness maps that
determine the sharpness or diffusion of light
less relevant material maps include ambient occlusion maps that determine the hardness or
softness of shadows and are less impacted by texture resolution, but could still benefit from
higher texture resolutions
The CG Texture Upscaler handles these maps better than conventional upscalers like
Topaz’s Gigapixel AI or Hitpaw’s Photo Enhancer since the RGB channels of the material maps are
separated from the alpha where each of the former and latter are upscaled separately.
CG Texture Upscaler (left) | Topaz Gigapixel AI (right)
Batch processing and quality of life features
The CG Texture Upscaler can walk through directories and process images including
upscaling, format conversion and edit naming in batches. Standard upscalers will normally batch
process a single directory requiring custom scripting to relocate texture files giving rise to
potential errors.
The CG Texture Upscaler allows for conversion to and from various CG texture
formats including PNG, TGA, DDS, BMP, EXR and JPG and supports a number of compression
algorithms and extra texture processing features such as drawing mip levels for DDS textures through
the use of the versatile Image Magick tool.
The CG Texture Upscaler also allows you to represent your in Linear or sRGB
color representations or manually override the gamma level of the image to achieve
the intended upscaling result. It further allows you to read and export various color modes
including RGB, RGBA, and Greyscale, as well as indexed color for the image formats that support it.
Finally, quality of life features include a minimalist UI design with accessibility options, the
ability to filter and find image files by name or dimensions to process them, preview them on the
spot, open their locations and open them for editing using their default program, keyboard
shortcuts, as well as logging to know exactly where processing has gone wrong.
Automation
Command line functionality is available for upscaling pipeline automation. The CG Texture Upscaler
command line interface allows you to process single directories or recursively process multiple
directories, include only files with specific strings (characters/words), as well as define export
device, image scale factor, format, compression, noise, export color mode and depth, and color
representation of the images to be upscaled, export location and image naming. Download the CLI
guide here.
Tutorial
Demo Results
PBR Texture Generator
I wrote this open source GUI application to generate PBR textures for existing top-down or
perspective pure color (albedo) images with inpainting capabilities. It is built on dog-god's
Texture Synthesis LoRa applied to my custom SDXL pipeline.
Key outcome
This is currently the only tool that generates PBR texture maps with diffusion inpainting
functionality.
A concise Gutenberg inline assistant for refining and generating block content. It runs server-side
calls to OpenAI's LLms while preserving block HTML/formatting so editors can safely improve text
without losing
links or styling.
Quick facts
Preserves formatting via placeholder mapping (links, bold/italics, spans).
Non‑destructive: server backups enable revert/accept workflows.
Server enforces token estimates and quotas; uses OpenAI for generation.
Technologies
PHP · JavaScript · WordPress APIs · OpenAI API
text sentiment analyzer
This is a Python-based review sentiment analyzer that I developed that features a BERT preprocessor
and encoder, as well as a DNN classifier trained on over 1.7 million public user comments that I
mined, with their respective ratings to predict anonymized reviewer sentiment. It can be scaled
horizontally through Docker and Kubernetes. Transformers with attention play a key role here.
Prominent technologies used
Python, TensorFlow and TF Hub, Pandas/NumPy, Django, FastAPI, Docker.
This is a Python-based TFRS recommender system application that I developed. I mined over 70,000
books and over 700,000 public anonymized user data to train its embedding network. I explain the
theory of ranking used in recommender systems in the document below.
Prominent technologies used
Python, TensorFlow and TF Hub, Pandas/NumPy, Django, FastAPI, Docker.
A lightweight WordPress chat + embeddings plugin that indexes site content, stores vector
embeddings, and powers context-aware chat on the frontend. Configurable, provider-agnostic, and
built for async re-embedding and external vector DB scaling. Contorbit's clients use it in the
portal to
receive precise answers on digital content, marketing and seo optimization.
Quick facts
Psuedo-agentic context assembly: decide on necessity of context, decide on whether or not to
answer user query if it falls outside of scope.
Supports local DB or external vector stores with async/batched embedding for large sites.
Admin UI for model settings, limits, and embedding settings.
Personality and appearnce configuration options.
Technologies
PHP · JavaScript · WordPress APIs · Vector DB APIs