2015 - Present

Optimization Approaches to Graph Partitioning

For my doctoral research, I'm developing a highly efficient graph partitioning library using continuous and discrete optimization techniques.

Parallel processing of graphs and finite element meshes, sparse matrix orderings, and VLSI chip layouts all use graph partitioning in some form or another.

I've gained a lot of experience using static analysis tools, code coverage, Doxygen, and Git to better engineer the codebase, which is a mix of C and C++ with a MATLAB interface.

Mongoose is available on GitHub.

2015 - Present

SuiteSparse Matrix Collection Web Application

This project started as a team project for the Software Engineering course. We built a Ruby on Rails makeover of a previous website that allows you to browse Dr. Tim Davis's SuiteSparse Matrix Collection, a collection of almost 3000 sparse matrices cataloged by size, sparsity, and other properties.

You can browse the source code on GitHub. It's currently deployed in production at

2011 - 2012

Multiperiod Blending Problem

As a graduate student at Carnegie Mellon University, I developed a better method to solve a class of time-dependent blending optimization problems common to the process industries. Applying this approach led to more than 100x improvement in performance.

Kolodziej, S., Castro, P.M. & Grossmann, I.E. Global optimization of bilinear programs with a multiparametric disaggregation technique. J Glob Optim (2013) 57: 1039.

Scott P. Kolodziej, Ignacio E. Grossmann, Kevin C. Furman, Nicolas W. Sawaya. A discretization-based approach for the optimization of the multiperiod blend scheduling problem. Computers & Chemical Engineering (2013) 53, 122-142.