• Red Hat

    Software Engineering Intern

    Boston, MA

    June 2016 to August 2016

    • Develop Go bindings for Ostree, which was written in C
    • Build tooling to explode Docker images onto persistent storage on a Kubernetes cluster
  • Lehigh IMRC

    Web Developer

    Bethlehem, PA

    August 2015 to Present

    • Develop websites for groups on campus, manage the servers hosting these sites, and help migrate all of the sites to a new set of servers.
  • Kimball Farms

    Bumper Boat Attendant

    Westford, MA

    April 2013 to August 2015

    • Assist customers in getting on and off of bumper boats and assured their safety while on the ride


  • Colang

    A simple functional programming language written in C

    programming langage, c, functional programming
  • Os-explode

    Watch for images being pushed onto an OpenShift registry and explode them on to persistent storage

    golang, docker, containers
  • Ostree-Go

    Golang bindings for ostree, a "git-like" model for committing filesystem trees

    golang, c, open-source
  • QBits

    A mobile app for visualizing power consumption data and providing predictive analytics for Lutron lighting systems

    android, java

Recent Posts

One of the libraries that makes Go so powerful is cgo, a set of bindings for calling C code from Go. This is called a Foreign Function Interface (or FFI) and despite the versatility it adds to Go, it can be a tricky library to use. To help ease new users through some of the trickier aspects of cgo, here are some general best practices. Structs Handing C structs is one of the most common issues with cgo code.

Read more