My Career
Backend Developer

Backend Developer

Improving Mercurial support at Bitbucket.

In this position, I hope to bridge the Mercurial and Bitbucket communities to help develop an top-notch code hosting platform.

While Mercurial updates have been slow in the past, I plan on streamlining and keeping up to date with the newest versions, while also adding long-awaited features.

Software Developer

Software Developer

September 2014 to now, OSIsoft, LLC

Designed and implemented a parser to generate an abstract syntax tree in C#.

I diagnosed a long–standing bug with incorrect parsing behavior in a customer plugin. I fixed the bug by implementing a tokenizer to correctly give the full AST. I worked with Microsoft solutions: Team Foundation Server, Visual Studio, and PowerShell.

Facebook Contractor

Facebook Contractor

April 2014 to September 2014, Facebook

Designed a namespace API to allow for managing tags, bookmarks, and branches.

Any git refugee will tell you that one of the biggest missing features in Mercurial is the lack of remote branches. Being a hot topic within the Mercurial community, this task took many months of planning and gathering feedback. After two sprints and many rounds of code view, the framework was accepted and released in version 3.3. I also created an extension to build on top of the namespace api to implement remote branches. This is a work in progress but has already received much positive feedback from the community.

Google Summer of Code Student

Google Summer of Code Student

Engineered deep refactor of the internal representation of changesets in memory.

This work opened the way for improving the recording feature (arbitrary selection of hunks upon committing) and in-memory rebasing for Mercurial. The biggest hurdle of this project was tackling the refactoring needed for the status and commit functions. This summer program provided a great educational process of learning the depths of internal Mercurial code, specifically the context, manifest, and localrepo objects. This experience was successfully completed with over 127 patches accepted.

Graduate Research Assistant

Graduate Research Assistant

January 2010 to May 2013, Argonne National Laboratory

Wrote a paper on BOUT++ (BOUndary Turbulence), a parallel edge turbulence framework.

I added framework for physics-based preconditioning, advanced nonlinear solvers, advanced time-stepping methods, new mesh capabilities, and improved the build system for better software organization. The majority of the work involved improving meshing capabilities to add matrix preallocation for the non-contiguous branch-cuts. In addition, robust and novel IMEX (implicit-explicit) time-stepping methods were added giving the project competitive performance results. Version 1.0 incorporates my work.


Graduate Assistant

August 2006 to December 2009, Louisiana State University,

Wrote research code to study fracture mechanics.

Assisted B. Bourdin by writing code, providing proofs, building and maintaining a cluster, and helping with class work. One graduate level class dealt with elliptic solvers (∆u = 0 for convex domains) and made use of finite element code we’d developed the previous summer. In class, we extended the code to work on solving edge detection problems using the Mumford-Shah functional modeled with phase fields. Other duties included helping the Dept. of Mathematics’s computer support team in the design of a Kerberos-based authentication system for use with LDAP, http, and Subversion authentication.

Student Co-op

Summer 2009, Argonne National Laboratory

Added PETSc solvers to BOUT++.

Built extendable code in collaboration with with H. Zhang , L.C. McInnes , and Lawrence Livermore National Laboratory physicists by adding robust PETSc solvers to BOUT++. This code has been successfully integrated into BOUT++ and version 0.7 incorporates my work.


Givens Internship

Summer 2008, Argonne National Laboratory

Worked under H. Zhang and L.C. McInnes to add PETSc preconditioners to BOUT++, writing new code in C++.

Undergraduate Math Teacher

August 2007 to May 2008, Louisiana State University

Taught college algebra and trigonometry to ~100 students.

In addition to the standard responsibilities of teaching (creating lesson plans, grading, etc.), my duties included assisting students during weekly mandatory math labs that employed online educational software.


Research Programmer with B. Bourdin

Summer 2006, Louisiana State University

Conceptualized a numerical program for solving elliptic equations using MPI and PETSc.

The finite element code used a custom implementation of P_1 and P_2 elements based on PETSc distributed arrays. Key concepts included structuring data, scatter/gather among processors, and linear solvers.

.NET Programmer

June, 2003 to August 2006, Velocity Squared, LLC

Designed an online scheduler for photographers that allowed them to coordinate events.

Worked with small teams to solve numerous business and technical problems with a photography and photo printing company. The main product scheduled photographers and allowed them to coordinate shooting a (mostly large) local event. Our software eased the challenge of organizing and executing photo shoots at multiple, distant events as well as pulling together masses of photos, uploading them and posting selected ones automatically to a for sale website. Used design patterns, databases, threads, security, web services, and xml.

During the immediate aftermath of Hurricane Katrina, our team volunteered to help the Red Cross keep track of the thousands of newly arrived storm refugees scattered across Baton Rouge. After a 72-hour coding sprint, we had a functional program that utilized fuzzy text searching, text indexing, and merging databases with high chances of collision.


PHP Programmer

August 2001 to July 2002, Louisiana Department of Education

Designed online web applications with extensive database access using PHP and created graphics for web pages. Other duties included configuring hardware, installing software, and teaching workshops for educators on Javascript, SQL, and Adobe Photoshop 6.

Data Visualization Programmer with J. Tohline

August 2001 to May 2002, Louisiana State University

Worked with a general relativity research group that used OpenGL and CAVE to implement C++ libraries to utilize 3D aspects of the SGI ImmersaDesk on modeling binary stars.


Dynamic Web Programmer

August 2000 to May 2001, LA School for Math, Science, and the Arts

Designed and implemented web-based programs for students and faculty, utilizing server side languages such as PHP, Java Server Pages, and Perl. My most important focus was completing my area of “Distinction,” namely an online application to register students for seminars.


Web Programmer

August 1999 to May 2000, LA School for Math, Science, and the Arts

Created web pages using HTML, CSS, and JavaScript for faculty. Other duties included graphic design and knowledge of web server maintenance.