I am a Principal ML Engineer specializing in 3D imagery and large scale ML pipelines. I have expertise in machine learning including deep learning generative models, CNNs and clustering. I also have a lot of experience in 3D procedural models, image compositing, and distributed systems like Dask and Kubeflow. I have built private Kubernetes clusters, VFX render farms, and the machine learning pipelines that run within them.
I am interested in AI, Category Theory, directed graphs, 3D rendering and statistics. I’ve been coding for 19 years, 16 of them in Python, and I’m self-taught. I've coded in over a dozen languages; Python, Java, Typescript and Ruby, to name a few. I've written 11 public python pip packages, and some NPM and Ruby ones too. Currently, I'm writing some Haskell in my free time. I am at my best when solving complex computer vision problems and architecting ML pipelines and infrastructure. I originally worked in the special effects industry but switched after 5 years to AI.
VirtuousAI (2023 - 2025)
Explainable AI model - Image-to-Table
•Converts images with tables, such as PDFs of inventories and images of sales data, into tabular data
•Llama vLLM (image-to-text), Segment Anything Model (segmentation), Google Tesseract (OCR), Kubeflow
Stable Diffusion XL with ControlNet
•Built an image-text-and-depth-map to image model (Stable Diffusion XL, ControlNet, PyTorch, Kubeflow)
Explainable AI Model - Gameplay Event Graph
•ETL of sales and gameplay event data into an explainable probabilistic graph model (NetworkX, SQL)
•Trained MLP deep learning model and SVM ensemble to predict user behavior (Scikit, PyTorch, Kubeflow)
•Collaboration with product manager and customer in order to provide actionable business interventions
Graph RAG design
•Collaborated with machine learning engineers on graph-based RAG system (FalkorDB, PyTorch)
•Collaborated with ML engineers on cross-application ontology and algorithm design (Category/Graph Theory)
Designed and developed standardized AI services, pipelines and tools (Kubeflow, BentoML, FastAPI)
•Led team of ML engineers in development of standardized AI services and pipelines (Kubeflow, BentoML)
•Created Gizmo, a pip package which handled credentials, storage access, and creation and deployment of pipelines, application and models (Kubeflow, Kubernetes, Hidebound, MinIO, FastAPI, Hashicorp, BentoML)
•Created repository template for standardized AI apps, including: CI/CD, Docker, FastAPI, Kubeflow pipelines
Designed and implemented entire private cloud infrastructure specialized for AI
•Led DevOps to support highly scalable pipelines, massive storage and cluster management (MinIO, ArgoCD)
•IaC of everything from networking, provisioning, CI/CD, to K8s application development (Ansible, Terraform)
•Designed and implemented end-to-end MLops, CI/CD, pip packaging and developer environments (Datalus)
•Everything up to the K8s application layer was entirely by my hand, after that it was between me and Eric Nichols
•DevOps Layer - Python, GitLab, Ansible, Terraform, Docker, Cookiecutter
•Network Layer - pfSense, HAProxy, OpenVPN
•Admin Layer - MAAS, Juju, LXD, Synology
•Cluster Layer - MicroK8s
•Application Layer - ArgoCD, Traefik, Longhorn, MinIO, Kubeflow, BentoML, Prometheus, Grafana, Dask
•Yes, literally all of the above was involved and a few more Kubernetes apps
Strateos (formerly 3Scan) (2016 - 2023)
U-Net (deep learning model) for 3D semantic segmentation of the kidney and foreground tissue detection (AWS)
•Created ground truth data from serial microscope images, using custom computer vision library and Nuke
•Wrote and trained 4-GPU TensorFlow model with custom Jaccard’s Distance and DICE loss functions
3D volume reconstruction of serial microscope images
•3D image registration using ORB key-point detection and custom score function
•Volume segmentation of tissue using morphology operators, K-Means, GaussianMixture and deconvolution
•Image segregation and stitching using support vector machine, custom grouping and stitching algorithms
Development of Geode, a massive N-Dimensional data-store and pipeline runner in Java
•3.1 Petabytes at max size, 3D rotations of 10+ TB 3D tiled-image data
Procedural generation of human lung for 3D printing using bio-ink (United Therapeutics, 3D Systems)
•Procedurally generated vascular networks via L-systems, linear algebra and parallel transport (Houdini, VEX)
•Hybrid model creation via integration of real human lung data derived from MarchingBridge algorithm
3D reconstruction of entire human lung (Visible Human dataset, Houdini, Nuke, Modo, Maya)
•Naive 3D image segmentation using weighted pixel summation and morphology operators (OpenCV, Nuke)
•Contour extraction and 3D reconstruction with MarchingBridge (Houdini, OpenCV, VTK, CairoSVG)
3D vasculature reconstruction using spatial-median base methods (VTK, OpenCV)
Virtual reality interactions with 3D tissue data using Unity and Unreal Engine (Unity, Unreal Engine)
Built on-premise Kubernetes cluster and distributed computer vision pipeline (HarvesterOS, ArgoCD, Dask)
•Development of Hidebound asset ingestion app for consuming 100x GB scale 3D datasets into Kubernetes
•Collaborated with DevOps on additional EKS cluster, S3 storage and web servers running on EC2 (AWS)
•Automated cluster creation and application lifecycle (Helm, ArgoCD, Ansible)
Luma Pictures (2015)
Developed ELK data analytics pipeline (Elasticsearch, Logstash, Kibana)