C4G: Computing for Good

Since the fall of 2020, I have been an online student of Georgia Tech, working on my Master’s Degree in Computer Science with the OMSCS program. In Spring 2022, I took the first-ever online offering of Georgia Tech’s Computing For Good course. The gist of the course is described on their website:

We are a social good initiative consisting of Georgia Tech faculty, partners, and computer science students. We have studied computing for social change via a course offered regularly since 2008, resulting in deployed projects around the world…

Students form teams early in the semester. They select projects in areas about which they are passionate. An agile paradigm is followed with iterative cycles. Communication with the partner organization and stakeholders is ongoing and critical.

At the center of the course is Kentaro Toyama’s book Geek Heresy: Rescuing Social Change from the Cult of Technology. Toyama’s thesis is that focusing on “technical utopianism” is the wrong approach to solving world problems. He argues that the real way to affect change is through forming ongoing relationships with real stakeholders, really understanding the problems they are facing, and working with them on a solution. In other words (and unfortunately for tech bros) this means doing hard work.

BLIS: Basic Laboratory Information System

The project I chose was to bring the BLIS project online. BLIS stands for “Basic Laboratory Information System” and it is a C4G success story. It was developed around the time of the first C4G class in 2008 and is now used by labs in many African countries. I chose it because it was an existing codebase using web technology and that is very much my wheelhouse. The original PhD thesis that described the origins of the BLIS project is worth a read if you’re interested. The tl;dr is that at the time BLIS was created, lots of labs across the western African countries profiled still used hand-written records despite having access to computers (but not necessarily the Internet). This process was error-prone, and required hands-on study, involvement, and most importantly, cooperation with local stakeholders to develop a solution. Today, BLIS is used in many labs across the region.

My Project

C4G is a group project class, so I formed a group with other interested students. We wanted to create a way for labs to get their version of BLIS online and migrate their offline BLIS with the online copy. This proved to be a difficult problem because, as anyone that works in The Cloud :tm: knows, distributed systems are hard to get right. Therefore, I reduced the scope to just getting BLIS running in a container while still maintaining compatibility with the desktop software it runs with on Windows.

Since BLIS uses an old version of PHP, I had to find a way to get a functional container that would work. Once I figured that out, I had to test BLIS and make sure it worked in the new containerized setting. The final part (which is still ongoing) is combing through the vast, existing BLIS codebase to fix bugs that come up in the migration, and then actually working with labs to deploy this Internet-enabled version.

Special Projects

After the Spring ‘22 semester, I took a break from working on BLIS and focused on other classes. I am happy to report that I am now going to be picking up work on BLIS again as part of a special projects class for my degree. I am super happy that Georgia Tech’s OMSCS program even has this as an option for an online student like me, and that the professor and TA team are coordinating this to make it work. Sometimes - especially in post- pandemic life - I’ve had trouble feeling like the work I do really matters all that much, and I’ve found that work like this is really energizing for me. Even if it’s working on old code! Actually, I feel like fixing bugs in legacy code is some of them most rewarding work I get to do in general.