Projects

Here's details of some of the projects I've worked on.

Python IPC Libraries

Python, C

In 2008 I wrote and released two open source packages for Python. I still maintain and update them. The packages posix_ipc and sysv_ipc are written in C and expose POSIX and System V IPC (InterProcess Communication) primitives to Python applications. FreeBSD and many major Linux distributions offer these extensions in their repositories, and they're essential to packages such as OpenStack and PaPy.

Caktus Consulting Group
(First Engagement)

Python, Django, PostgreSQL

During this contract with Caktus, I worked on various Web projects for Caktus' clients. We used git/github for source code management and workflow.

I spent the lion's share of my time on a project to develop election registration software for Libya's High National Election Commission (HNEC). I was chiefly responsible for voter roll generation (creating PDF files to be printed and distributed to voting centers to determine who could vote at a given center). This was not my only responsibility; I worked on many aspects of the system.

The system has been used for several elections and has been open sourced as Smart Elect.

Caktus Consulting Group
(Second Engagement)

Python, Django, PostgreSQL

I worked on various Web projects for Caktus' clients. Most projects were closed source and deployed on the clients' intranet.

My principal role was designing/architecting a system that used Celery to process large volumes of work on demand. The project had no official lead architect, but I was the one who had the most time to work on it, so I was the one who drove the design forward in many areas.

I also wrote a Python wrapper for a small C library on Linux.

I mentored other developers during code review and pair programmming.

Caktus Consulting Group
(Special Engagement)

Training in Tunisia

I joined Caktus' CEO Tobias McNulty for 2.5 weeks in Tunis, Tunisia. We were there to train administrators and developers on how to use, maintain, and update the Smart Elect system (see above).

Caktus Consulting Group
(Third Engagement)

Python, Django, Consultation

Caktus hired me to help their client improve a Django system that tracks field work.

Dr. Brian Soher at Duke University
(First Engagement)

Python, wxPython, SQLite, C, Fortran, C++

I helped Dr. Soher to fulfill his scientific vision of building VeSPA, which is an open source, cross-platform, native client application suite (Windows, Linux, and Mac) that assists research in MRS (Magnetic Resonance Spectroscopy). We also worked with Dr. Karl Young (Principal Investigator along with Dr. Soher) and David Todd of UCSF.

As technical lead, I was responsible for architecture, design (code, database, and GUI), and development, as well as integration of a variety of existing libraries written in Python, C++ and Fortran. The GUI was written in wxPython; the database was SQLite. I was an ambassador for our project in the open source world and ensured that we behaved as good citizens there (by respecting licenses, sharing patches, using open data formats, etc.).

At PyCarolinas 2012, Dr. Soher and I presented VeSPA as a case study on building scientific Python applications in academia. Our talk was entitled, "An Engineer, a Physicist and a Python Programmer Walk into a Bar...". Our talk was recorded, but unfortunately none of the recordings from that conference survived due to technical difficulties.

Dr. Brian Soher at Duke University
(Second Engagement)

Python, C++

Dr. Soher has developed an extensive collection of Python code for his field of MRS (Magnetic Resonance Spectroscopy). Our first project was to embed Python in a scientific C++ application so that he could use his Python libraries from C++.

I also worked more on VeSPA (see above), mostly modernizing its dependencies and installation.

Private Client

Python, C++, performance

I did a proof-of-concept Linux-to-Windows port of a scientific, native client application written principally in Python and C++. This included developing a Windows-friendly build process for their custom C++ libraries. I also studied the system to identify technical debt and significant performance bottlenecks, and advised on remediation of both.

Cisco Systems

Python, Django, PostgreSQL

As a solo analyst, designer, and developer, my job was to develop a Django-based intranet application using PostgreSQL as the back end. The application replaced some semi-formalized business processes built atop overgrown spreadsheets.

Glaxo / Glaxo Wellcome / GlaxoSmithKline
(Seven Engagements)

Visual Basic, Documentum, Oracle

I worked on many different projects across seven separate contracts for the company that grew from Glaxo to Glaxo Wellcome to GlaxoSmithKline. Almost all of these projects involved writing internal use, Windows-based, native clients atop Oracle and/or Documentum data stores. I was the technical lead on some of the projects.

Meridium Sverige

I spent two years in Stockholm, Sweden working for the consulting agency Meridium Sverige AB.

IBM

C, OS/2, GUI

After three internships at IBM, I worked there for over two years as a contractor designing and coding a multi-threaded management tool for large LANs in C under OS/2.