latest posts

  • Completing Georgia Tech's Online Master of Science in Computer Science

    I applied to Georgia Tech's Online Master of Science in Computer Science (OMSCS) program back in September 2015. One of my friends was applying and encouraged me to apply as well. So I did, not really knowing what I was getting myself in to. I was accepted and took my first class, Software Development Process in Spring 2016 -- right as I was moving out to California. Now, three and a half years later, it's over. I've graduated and completed the Computing Systems specialization while working full time! Now I want to take the time to look back and reflect on my experiences in the program.

  • Finding Max Flow using the Ford-Fulkerson Algorithm and Matthew McConaughey

    The max flow problem is an optimization problem for determining the maximum amount of 'stuff' that can flow at a given point in time through a single source/sink flow network. A flow network is essentially just a directed graph where the edge weights represent the flow capacity of each edge. The 'stuff' that flows through these networks could be literally anything. Maybe it's traffic driving through a city, water flowing through pipes, or bits traveling across the information superhighway. This post walks through how to use the Ford-Fulkerson to determine the max flow of a network.

  • The Helman and JáJá List Ranking Algorithm

    In one of our labs in Georgia Tech's Intro to High Performance Computing course, we had to explore the parallel computing problem of list ranking. List ranking is essentially just traversing a linked list and assigning each node a "rank", or distance from the list's head. This post explores two parallel algorithms for list ranking -- Wylies's and Helman-Jájá.

  • Learning to build an Operating System in Rust via CS140e

    I first found out about Stanford's experimental Rust-based Operating Systems course via the GATech OMSCS Slack. I was intrigued by the fact that the course combined two of my favorite topics: the Rust programming language and Raspberry Pis. Now that I've hit a bit of a lull, having just wrapped up grad school for the semester, I've finally had a few cycles to spare and really dig in to the material in Stanford's CS140e.

    , updated
  • Adventures in CS 7641 - Machine Learning

    I just wrapped up Georgia Tech's CS 7641 Machine Learning course last evening and although it was a pretty arduous experience, I got through it. CS 7641 really demystified the field of machine learning for me and took me out of my comfort zone as far as computer science classes go. It was a time-consuming and challenging journey, but ultimately very worth it. In this post, I reflect back on the course and provide resources that I found helpful.

  • Cgroups on the Raspberry Pi Zero

    Cgroups are a feature of the Linux kernel which allow groups of processes to be managed and monitored. For a resource constrained environment such as the five dollar Raspberry Pi Zero, limiting access to scarce resources like memory and CPU can come in handy. In this post we'll take a closer look at the memory, cpu, and freezer cgroups in Raspbian Linux.

  • Unlimited Power! My Unstoppable Raspberry Pi Kubernetes Cluster

    I started working on building a Raspberry Pi-based Kubernetes cluster after attending the Bay Area Maker Faire in May 2018 and now it is finally complete! In this post we'll cover what parts I used, a high level description of how I installed Kubernetes using rak8s, and what I plan to do with it.

  • Baking a Pi Router for my Raspberry Pi Kubernetes Cluster

    How I set up a Raspberry Pi 3 Model B+ to be the dns/dhcp server and router for my Raspberry Pi-based Kubernetes cluster. A general guide to how I eventually managed to get the Pi Router sharing working and some cautionary tales of pitfalls I encountered along the way.

  • Raspberry Pi Heat Sink Science

    Does the Raspberry Pi 3 even need a heat sink? An unscientific look into that age-old question that investigates the thermal performance of the Raspberry Pi 3 Model B with and without a heat sink. As a bonus, we'll also consider thermal paste versus thermal tape.

  • Hack Mini - Linux Workstation Build Log

    Recently I've found myself wanting a dedicated desktop machine just for coding. Although I do most of my development at work on iMacs and at home on an aging MacBook Air, I decided against buying another Mac -- the price and performance I wanted just wasn't there. "Linux is close enough", I thought, so I decided to build this small, discrete machine just for development.