Chris Rossi    Curriculum Vitae
(919) 403-5502
Programming Languages
Professional experience in Python, HTML5, Javascript, Java, C, C++, Perl, Fortran, PL/SQL, Bourne and C shell and variants. Educational experience in Pascal, Assembler (MIPS).
Operating Systems
A proficient administrator of Unix/Posix and variants (Linux, OSX, Solaris, etc...)
Programming Applications
Pyramid, Django, edX, Zope, Plone, CMS, WWW, WSGI, SWIG, Clinical Data, Electronic Data Collection, Servlet, Middleware, XML, XSLT, SAX, DOM, Natural Language Processing, Data Analysis, Systems Administration.

As a subcontractor for Jazkarta, I've worked on and with the edX platform both for edX and for clients such as MIT and Davidson College. For MIT, I implemented the individual due date extension (IDDE) feature, a feature aimed at residential use of the platform providing instructors with the means to grant due date extensions for specific students for specific assignments. For Davidson College, I was the first to develop a new problem type as a third party extension to edX, and worked with the edX team to make modifications to the platform to allow problem types to be added via third party extensions.

State of North Carolina Cites Data Visualization

The Center for Urban and Regional Studies at the University of North Carolina at Chapel Hill gathers data and publishes a report, "The State of North Carolina Cities". I wrote a simple data visualization tool for them to include on their website which uses d3.js to publish data dynamically in line charts or tables. In order to avoid having to get server side code integrated internally at UNC, I created a 100% client based solution in HTML5 and Javascript that could be hosted in their internal content management system as static files.


AcidFS is a library for Python that allows an application to interact with a filesystem using transactional database (ACID) semantics. This makes it possible for highly concurrent applications to utilize the filesystem in a safe, consistent way. AcidFS uses Git behind the scenes to manage concurrency.

Pyramid Layout

I am the primary author of an add-on for the Pyramid framework, which adds concepts useful for composing UI. Pyramid Layout allows a project to define multiple page layouts with shared API as well as reusable panels, easing the task of composing complex user interfaces.

Windsor Circle

Windsor Circle provides software as a service data analysis for eCommerce with a focus on retention marketing. I served as primary architect for their Pyramid based web application, defining the basic high level structure and designing a system that would be relatively easy for them to build on. I provided training for their developers and successfully handed off maintenance of the complex data driven application to them.

Karl 3

Karl is a secure intranet knowledge management application written in Python for the Open Society Institue. Karl 3 is a rewrite, from scratch, of Karl 2, which was a massive customization of Plone. Karl 3 is designed from the ground up to be far more performant than its predecessor by virtue of its architecture, based on Pyramid.

Chris McDonough of Agendaless Consulting recruited me in early 2009 to help with development of Karl 3, at that time still a long way from being feature complete enough for a release. I was able to contribute on the first day, despite having never used BFG (later renamed Pyramid), and became one of the primary developers. I am responsible for many of the features still needed at the time before going live, including email alerts and generating content from incoming email. I wrote the vast majority of the code to migrate OSIs existing Karl 2 content to Karl 3. Since then, among other things, I have done the server side component of a sophisticated "image drawer" which makes it easy and seamless for users to upload new images or use existing images from elsewhere on the site in their content. I have also been a key component of operational support of Karl for OSI and their partners. Working closely with the project manager, Paul Everitt (Agendaless), I continue to implement new features, provide operational support and provide advice regarding future development.

CyTunes is a pro bono project I created to help raise money for a friend, Cy Rawls, who was diagnosed with brain cancer and did not have health insurance. The site allows music fans to purchase and download music online, with the proceeds now benefiting the Tisch Brain Tumor Center at Duke University. The site features extensive tools allowing musicians to submit their own music for sale on CyTunes. Musicians are able to upload music and artwork, and create a page for their band on CyTunes, as well as sign the necessary contracts online. The site also has tools for volunteers to listen to submissions, copy edit band pages and approve submissions for sale on the site.

In a very short amount of time I had gone from having the idea to having organized a team of volunteers to work on the site and do all of the work necessary to get such a project off the ground. Volunteers concerned themselves primarily with organizational challenges, while I was solely responsible for the programming. I collaborated with some very talented graphics designers to create the visual look of the site.

One of the design considerations for CyTunes was that it should consume as few resources as possible so as to not require expensive hosting--ensuring the money raised is used for CyTunes' core mission. With this in mind, the application itself is very lean, using no large web application framework. It is a pure Python application which uses the WSGI interface, a version of Zope Page Templates for page rendering, and a MySQL database for back end storage. (Music and artwork are stored directly on the filesystem.)

WXDU Ogg Archive

WXDU is the Duke University college radio station where I was a volunteer DJ from 1997 to 2007. The WXDU Ogg Archive is software I wrote in Python that records our Ogg/Vorbis stream and allows Tivo-like recall of audio from our webcast. DJs can use a web form to download an Ogg/Vorbis audio file starting and ending at any point during the archive. Due to legal restrictions the archive is available only to WXDU personnel. The software used to create the archive, however, has been released as open source under the GPL.

June 2008 - Present
The Archimedean Company
Durham, NC
Principal, Freelance Software Developer

As a freelance software developer, I provide custom software, specializing in, but not limited to, dynamic web, Python and Content Management Systems. I collaborate with talented freelance graphic designers to create web sites and web applications that are beautiful, functional, powerful and easy to use. I also work well with larger teams of contractors and often subcontract to or for other firms in order to tackle larger projects.

June 2005 - June 2008
Rho, Inc.
Chapel Hill, NC
Software Engineer

Lead developer for RhoEDC, Rho's electronic data collection offering. RhoEDC allows clinicians and other field professionals to enter secure, confidential clinical data remotely and accurately while allowing Rho's data managers to run automated edit checks, issue and track queries, and manage data integrity. Features include electronic signatures, arbitrary study structure, data locking and exports to SAS datasets. Also designed and implemented a company wide secure authentication module for use on all of Rho's web applications.

June 2000 - June 2005
Chapel Hill, NC
Software Engineer

Designed, built and maintained numerous custom web applications and dynamic websites using a wide variety of technologies. Also the lead developer for smartASK (, an enterprise application for on-line web surveys for use in customer relations management.

July 1998 - June 2000
IBM (contracted by Ciber)
Research Triangle Park, NC
Software Engineer

Member of the Natural Language Processing (NLP) team. Responsible for porting (rewriting) portions of NLP product, Poe 2.6, from C to Java. Poe performs complex text analysis functions, including spell checking, tokenization, complex token analysis, and morphology/inflection for over 30 different languages. After completing the Java version, remained on the development team for the C version, performing enhancements and debugging. Added support for Unicode.

June 1997 - July 1998
IBM (contracted by Ciber)
Research Triangle Park, NC
System Administrator

Maintained an AFS cell over a wide area network. The cell consisted of IBM risc6000 computers running IBM AIX in Raleigh and Boca Raton and provided engineering tools used in design and simulation of printed circuit boards and micro chips. Provided support to engineers. Played key role in beginning to migrate tools from AIX to Windows NT.

August 95 - August 96
Vanderbilt University Computer Center
Nashville, TN
Applications Development

Designed and wrote cgi based web applications for assorted unix platforms using C and Perl. Designed and implemented a system based around the solaris DHCP server for assignment of IP addresses on campus residential network, including several utilities written in C.

Summer & Winter Breaks 93 & 94
Electromagnetic Sciences, Inc.
Norcross, GA
Student Intern

Wrote extensive code in VMS Fortran used in analysis and design of microwave circulators. Worked with HP-UX (UNIX) and MDS (Microwave Design System). Wrote additional modules in C to be compiled into MDS. Wrote software, using GP-IB interface, for automatic control of test hardware for use in manufacturing. Also modified existing code for control of test hardware. Performed miscellaneous data analysis tasks. Performed miscellaneous troubleshooting/systems administration tasks.

Vanderbilt University
Nashville, TN
Bachelor of Science, Physics, Magna Cum Laude, May 1997
3.6/4.0 (overall), 3.7 (major)