Mitchell Baller

Technical Resume

About Me

I'm a software engineer at Circle Optics, specializing in high-performance imaging systems, computer vision algorithms, and camera calibration technologies.

In my free time I train for marathons and other road races with the Philadelphia Runner Track Club (PRTC). I also love backpacking in the woods with my friends.

Education

Georgia Institute of Technology

August 2021 - December 2023

Master of Science in Computer Science

Concentration in Computational Perception and Robotics

Advanced Algorithms, Machine Learning, Computer Vision, Artificial Intelligence

Computer Vision Machine Learning Robotics

Case Western Reserve University

August 2013 - May 2017

Bachelor of Science in Computer Science

Varsity Track & Field and Cross Country

Computer Science Mathematics

Experience

Circle Optics

Rochester, NY

Software Engineer - Imaging Science

January 2024 - Present
  • Wrote high-performance c++ camera control software able to capture and process images at 20 Gigabits per second
  • Developed proof of concept processing pipeline to validate 360 camera system’s advantages for 3D reconstruction including SIFT and SURF feature detectors and a YOLO model for detecting and masking out the camera operator
  • Benchmarked, evaluated and integrated vendor camera sensors and SDKs for new product lines into custom software suite
  • Leading effort to port Microsoft Visual Studio C++ codebase to embedded linux compatible cmake build system
C++ Computer Vision Python OpenCV

Software Engineering Co-Op - Imaging Science

May 2022 - December 2023
  • Wrote algorithm for focusing a novel lens assembly by evaluating captured images of MTF targets in Python and C++
  • Benchmarked and evaluated vendor camera sensors and SDKs for new product lines using custom software suite.
  • Researched and implemented state of te art Detect and Avoid algorithms leveraging CUDA with proprietary camera system
  • Developed method for calibrating novel telescope camera system at short range
  • Wrote REST API in Rust for controlling camera system, monitoring temperature and alerts
C++ Computer Vision Python OpenCV

Eaton

Cleveland, OH

Software Engineer

July 2019 - August 2021
  • Rewrote in-house pay statement application to support divesting employees and provide uninterrupted access to pay info
  • Modernized SDLC with a testing suite, automated deployment with Jenkins and migration to Bitbucket and Git
  • Automated scorecard metric collection for weekly platform scorecards with Python, shell scripts and AppPulse's open API
  • Wrote new features for and maintained corporate intranet sites, public facing site, and supplier facing sites in Java on Oracle and Adobe platforms
  • 1st place in internal hackathon to prototype machine powerdraw monitoring and supervisor alert system.
Java Adobe Experience Manager Oracle WebCenter Portal

IT Functional Analyst and Project Manager in Leadership Development Program (LDP)

July 2017 - July 2019
  • Led contact center reporting refresh during platform upgrade to improve dashboard and metric effectiveness
  • Deployed, configured and led testing for 22 Cisco Contact Center deployments in the US, Europe and Asia
  • Nominated to be campus recruiter, manager for summer intern and mentor for first year ITLDP
Cisco Contact Center

Summer IT Intern

May - August 2016
  • Led Windows 10 compatibility testing for over 400 manufacturing plant applications
  • Designed and implemented physical plant inventory scheduling tool using Visual Basic; still in use 6 years later
Visual Basic

Texas Tech University Department of Computer Science

Lubbock, TX

Researcher, NSF Research Experience for Undergraduates

May - August 2015
  • Storing and querying large network traffic datasets with Apache Hive in order to predict network attacks
  • 200-400% speed improvement on queries comparing Apache Hadoop, Apache Hive, SQL and Wireshark
  • Proposal presentation, progress reports and poster session to lab mentor, graduate students and professors
Apache Hadoop Research

Projects

Projects organized by course. Click on a course to view related projects.

More coming soon (Last updated Apr 6, 2025)

CS 6476: Computer Vision +

  • Problem set: Fourier Transform

    Fall 2022 | Problem Set

    Implementation and exploration of the Discrete Fourier Transform. Demonstrating it's effectiveness for image compression.

    Python Computer Vision
  • Problem set: Projective Geometry, Corner Detection, Homographies

    Fall 2022 | Problem Set

    A problem set using Harris corner detection to demonstrate projective geometry. By detecting fixed locations on a wall and seeing the wall from different perspectives, we demonstrated transforming a simple image from one plane to another.

    Python OpenCV NumPy Computer Vision
  • Problem set: Optical Flow & Motion Detection

    Fall 2022 | Problem Set

    A problem set using Hierarchical Lucas and Kanade for computing optical flow. Using this implementation, we estimated motion in a series of images and tried to interpolate intermediate frames.

    Python OpenCV NumPy Computer Vision Hierarchical Lucas & Kanade
  • Problem set: Particle Filters, Kalman Filters and Object Tracking

    Fall 2022 | Problem Set

    A problem set using particle and Kalman filters to track pedestrians in a series of videos. Needed to maintain track when camera was moving and after occlusions.

    Python OpenCV NumPy Computer Vision Particle Filters
  • Problem set: Object Detection

    Fall 2022 | Problem Set

    A problem set implementing face recognition using principal component analysis (PCA), (Ada)Boosting and the Viola-Jones algorithm. Investigated the pros & cons of the various techniques and inherent difficulty of face detection.

    Python OpenCV NumPy Computer Vision Particle Filters

CS 6475: Computational Photography +

  • Panorama

    Fall 2021 | Homework Assignment

    Align and stitch together a series of images into a panorama. Assumes we were given corresponding keypoints between 3 images. This was an assignment to learn about homographies, warping and image blending.

    Python NumPy Image Processing
  • High Dynamic Range Imaging

    Fall 2021 | Homework Assignment

    This assignment was about learning the core algorithms behind computing HDR images based on the paper Recovering High Dynamic Range Radiance Maps from Photographs by Debevec & Malik.

    Python Linear Algebra HDR
  • Video Textures

    Fall 2021 | Homework Assignment

    This assignment was about creating infinitely looping videos by analyzing a video's texture. Based on the paper Video Textures by Schödl, A., Szeliski, R., Salesin, D., & Essa, I.

    Python Video Processing Video Stabilization
  • Content Aware Seam Carving

    Fall 2021 | Course Project

    This goal of this project was to replicate the research results of the paper Seam Carving for Content-Aware Image Resizing by Shai Avidan, Ariel Shamir and Improved Seam Carving for Video Retargeting by Michael Rubinstein, Ariel Shamir. This involved understandiing and implementing forward seam carving, "backwards energy" and fine-tuning parameters.

    Python Image Processing
  • Object Removal

    Fall 2021 | Course Project

    The goal of this project was to replicate the research results of the paper Object Removal by Exemplar-Based Inpainting by Criminisi, A., Perez, P. & Toyama, K. Just like the Google Pixel 'magic erase' feature, our results demonstrated selecting some object in the image, masking it off and using the exemplar-based inpainting algorithm from the paper to fill in the pixels where the removed object used to be.

    Python Image Processing

CS 7641: Machine Learning +

  • Supervised Learning

    Spring 2023 | Course Project

    Exploration of supervised learning techniques. This assignment was not about implementing algorithms but tuning their parameters and analyzing what they can tell us about a dataset.

    Learning algorithms analyzed: Decision tree (with pruning), Neural Networks, Boosting, Support Vector Machines (SVMs), k-Nearest Neighbors (KNN).

    Used 2 classification problems to analyze the algorithms: Spambase dataset, which contains a database of email attributes and whether or not they are spam messages. And a Kaggle Spotify dataset which contains a collection of 1.2 million songs and their attributes like name, popularity, key, loudness, instrumentalness, tempo etc.

    The goal was to create a binary classification problem for each dataset. For the spam dataset, whether or not some email was spam based on it's attributes. For the Spotify dataset, whether some song would be a hit for this artist (more popular than their average song).

    Python Pytorch Supervised Learning
  • Randomized Optimization

    Spring 2023 | Course Project

    Exploration of random search techniques. Again this purpose of this assignment was not to implement the algorithms but instead to tune and analyze how they behave.

    The optimization algorithms I chose were Genetic, Simulated Annealing, Randomized Hill Climb and MIMIC. They were applied to the k-colors problem, n-queens problem and the traveling salesman problem.

    We needed to highlight advantages of different techniques on different optimization problems. For example, showing how one problem highlights advantages of genetic algorithms (traveling salesman), another advantages simulated annealing (n-queens) and another MIMIC (k-colors, sort of).

    We also showed how Genetic, Simulated Annealing and Randomized Hill Climb can be used to find good weights for a neural network instead of backpropagation. We used the same dataset classification problem from the supervised learning project, SPAM filtering and song popularity.

    Python PyTorch Machine Learning
  • Unsupervised Learning

    Spring 2023 | Course Project

    Exploration of unsupervised learning algorithms: Clustering with k-means and expectation maximization. Dimensionality reduction through PCA, ICA and Randomized Projections. Finally, how dimensionality reduction can improve training a Neural Network.

    Using the same SPAM and Spotify datasets as the other assignments.

    Python Scikit-learn Machine Learning
  • Markov Decision Processes

    Spring 2023 | Course Project

    Use OpenAi's gymnasium open source python library to explore Markov Decision Processes and how different algorithms approach different classes of MDPs. I chose to use the Frozen Lake (small, grid world problem) and the Taxi (larger grid world problem) to compare Value Iteration, Policy Iteration and Q-Learning as learning algorithms.

    Python OpenAI Gymnasium Markov Decision Processes

Technical Skills

Languages: Python, C++, Java

Frameworks & Libraries: PyTorch, OpenCV, NumPy

Tools & Platforms: Windows, Linux, Nvidia Jetson, Visual Studio, Git, Cmake