Improving Communication Through Overlay Detours: Pipe Dream or Actionable Insight?

Stephen Brennan & Michael Rabinovich, IEEE International Conference on Distributed Computing Systems, July 2018.

This paper describes “Detour Collectives” or DCol, a system which allows gigabit users to use Multipath TCP to add detour routes to normal TCP connections. This can enable you to achieve better throughput by circumventing bottlenecks in the Internet’s default routes. This paper builds on the previous work in my Master’s Thesis.

Read the paper

Exploring Alternative Routes Using Multipath TCP

My master’s thesis! You can find my page about it here.

Course Projects

DPath—Filesystem Querying with XPath

A tool written in Go that allows you to query your filesystem using XPath. This was a project for my EECS 433 Database Systems course in the fall of 2016.

Visit it at GitHub
Read the report

YAMS: Awesome MIPS Server

My EECS 314 project group (Jeff Copeland, Andrew Mason, Thomas Murphy, Katherine Cass, Aaron Neyer, and myself) created a HTTP 1.0 web server, written entirely in MIPS assembly. In addition to serving static pages, it also comes with “dynamic content” courtesy of a Brainf*** interpreter also written in assembly.

Visit it at GitHub
Read the blog post
Read the report

PyWall—A Python Firewall

My EECS 444 project group (Jeff Copeland, Andrew Mason, Yigit Kucuk) implemented a firewall in Python. While obviously not practical for normal use, this firewall illustrates the basics of packet filtering (including TCP connection tracking) in a high-level lanugage, which is much easier to understand and extend than C.

Visit it at GitHub

Personal Projects


An implementation of a small but mighty lisp in standard C89, portable to any POSIX compliant operating system.

Visit it at GitHub
Read the docs

CWRU Love—Web Service for Spreading Love

I’ve launched a version of the open-source Yelp Love for students, faculty, staff, and alumni of my school. This web application lets users send short notes of appreciation (aka “love”) to each other. In addition to setting up our version of the web service on Google Appengine, I’ve been contributing features and bugfixes back to Yelp’s open source project.

Yelp Love
Blog Post
Try it out (must be affiliated with CWRU)

KChat—In-Kernel Chat Server

A kernel module that implements a special device file that allows everyone with a file open to send each other messages in real time, like a chat server. If you think about it, it is acutally an IPC mechanism. Whatever you call it, it’s a lot of fun.

Visit it at GitHub

PySwizzle—A Twitter Bot

Hacker’s Society hosted an event called “Python and Pie” for incoming freshmen during Fall 2015 orientation. I gave an intermediate Python tutorial, which was all about writing a Twitter bot using Python. As a result, this bot and the accompanying tutorial are now on GitHub for others to learn from. The bot responds to any @mention with a randomly chosen Taylor Swift lyric.

Code and Tutorial at GitHub
Latest Version at GitHub
Blog Post
Tweet at the Bot

A Simple Shell in C

I wrote this to illustrate the different system calls and mechanics that underlie one of a programmer’s fundamental tools: the shell. I also wrote a tutorial about it.

Visit it at GitHub
Read the tutorial

Tetris in C!

A 24 hour Tetris implementation written in C, using the ncurses library. I wrote an accompanying blog post about it, which also touched on how important I find my personal projects, even if some are reimplementations.

Visit it at GitHub
Read the blog post


This library extends the standard C library with dynamic lists, hash tables, regular expressions, command line argument parsing, several string-handling utilities, logging, and lightweight unit testing. It’s an experiment in making an API as well as sharing code. Several of my other C projects depend on it already.

Visit it at GitHub
Documentation and Code Coverage

NOSJ—A JSON Library in C

NOSJ is a simple JSON parser written in C. It focuses on simplicity, especially with respect to memory allocation.

Visit it at GitHub
Documentation and Code Coverage

tswift—A Python MetroLyrics API

Get your Taylor Swift lyric fix with this quick’n’dirty tool for downloading song lyrics from MetroLyrics. Or, you know, any other artist’s lyrics.

Visit it at GitHub
It’s on PyPI!

CBot—IRC Bot in C

A fun little challenge - write a functioning IRC bot in C! This little guy was a great excuse to use Libstephen’s regular expressions in the real world, as well as learn all about dynamic loading of modules and the IRC protocol. CBot currently has the basic functions necessary for a chatbot, and I’m sure I’ll return every now and then to expand on his available plugins.

Visit it at GitHub


A minesweeper game written entirely in C, with both a command line and graphical interface. This was a fun and short project to apply my C knowledge, as opposed to my more ambitious, long running projects above.

Visit it at GitHub


Creative Commons License

Stephen Brennan's Blog is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License