ifup.org by Brandon Philips contains excerpts from my code, work and play.

I love writing systems software and my current passion and work is CoreOS.

Portfolio

This portfolio represents my best work and supplements my resume

Rackspace

Rackspace Fanatiguy

I worked at San Francisco Rackspace and helped the teams previously known as Cloudkick integrate and build new products for Rackspace. I started at Rackspace as the “Engineer of Developer Happiness” and I built systems and tools to keep developers happy, keep development buzzing along and get code deployed as quickly as possible.

Later I worked with the Rackspace Cloud Monitoring team to get the on-server monitoring agent built and into customer’s hands. This required a lot of interesting engineering work mostly in C and lua. Along the way we contributed to a platform called luvit and all of agent code is open source too.

SuSE Labs

Portland Geeko

I worked for SuSE Labs, part of Novell, to maintain enterprise Kernels, improve the Linux Plumbing and make openSUSE rock!

Work inside the labs included:

  • acl and attr utilities
  • network driver maintanence for SLE
  • video4linux maintainanence
  • improving v4l in the commmunity
  • packaging and patching tools within SLE/openSUSE

There is a great ethos within the company and SUSE Labs to do the right thing in the community. Which means I got to work on upstream code when I wasn’t too busy with SLE.

IBM Linux Technology Center Internship (2006)

Genetic Tux

Genetic algorithms have been applied to a variety search problems in computer science. It was my task, during the summer of 2006, to apply a genetic algorithm to the O(1) CPU scheduler and dynamically tune it to improve throughput. Although the results of this experiment were inconclusive, the experience of writing Kernel patches, improving the genetic library, working with Jake Moilanen, and going to the Ottawa Linux Symposium secured my interest in the Linux Kernel. Furthermore, I had the opportunity to contribute a number of patches and testsuites for autotest, a new testing framework for the Linux kernel.

NASA Goddard Robotics Internship (2005)

binary difference of hand moving

This motion history image of my hand represents the great amount of work I put into creating a hand tracking and recognition program while working at Anthrotronix. In ten weeks I had a working demo of tracking a human hand and using that as a computer, or robot, input device.

Also during the internship I had a hand in the design of the electronics and software for ARCHIE, a robot chassis for human interface experiments, which will serve Anthrontronix as a platform for experimenting with their multitude of interface devices. To demonstrate the robot we interfaced it with Anthrontronix’s weapon mounted joystick

OHSU 9-Button

Reed eVentures and OHSU contacted me in mid-2004 about writing a daemon that would run on Windows, Linux and Mac OS X to control communications between several testing applications and a USB HID device called a 9-button. I worked as a contractor to develop this software against changing requirements and delivered a stable dependable daemon which compiled and ran on all three platforms. Both customers were pleased with the results.

The source code from this project is licensed under the MIT license and can be found here. It is a good example of using libusb, pthreads and sockets; and provides the framework necessary for compilation on the three major platforms.

Bob v2.0

Bob v2.0 robot from shoulders up

Developing the software for this project was challenging and fun! Over the course of several months I worked on integrating all of the control and sensor components together into a scripting language, debugging tools and GUI control interface that helped the team win 1st place and Judges’ Choice at the RI/SME competition in Rochester NY in 2003.




Publications

Recorded Talks

Conference Talks

  • One tiny daemon to harvest your server statistics (and more) - This was an introduction to the Open Source on-server agent that we are building for the Cloud Monitoring product. The audience was very enthusiastic about this being open sourced. Slides

  • Logging as Event Streams - The logging infrastructure on the Rackspace Cloud Monitoring product has been designed just as well as the rest of the system. This is an overview of the tools we use and the philosophy we follow around logging. Slides

  • libuv: The Power Underneath Node.js - libuv is the event loop library that powers node.js and luvit. This was an introduction to the concepts of the library. Slides

  • An Introduction to Luvit - Luvit is a platform built on libuv and luajit that I am participating in and that we are using in the Rackspace Cloud Monitoring Agent. Slides

  • Building an embedded Linux system monitoring device - As a Kernel developer I spend alot of my day looking at syslogs and rebooting systems. So, I set off to automate the process and you, the audience, will get an introduction to building ARM software and network device drivers. Slides here

  • The video4linux user-space: libv4l2, applications and a server- With the merging of the gspca driver sans in-Kernel decompression in 2.6.27 it has become necessary to start working with upstream application developers to ensure that they can support the proliferation of new frame and compression formats. Earlier this month Hans de Geode started this work and created libv4l2: a low level wrapper around existing V4L IOCTLs. Having a user space library sitting between applications and the Kernel opens up the possibility for doing a fairly simple V4L server that can allow sharing of frames between multiple applications: like sound servers ALSA dmix or PulseAudio.

Press Mentions