I am a Senior Member of Technical Staff at Sandia National Laboratories. I graduated with BS and MS degrees in Computer Engineering from the Rochester Institute of Technology in 2010.
My publications list is here.
My professional interests include:
- OS design and implementation
- Embedded and wearable computing
- Collaborative work environments
My over-arching goal is to improve how we compute. I believe in many ways our current computing environments are the worst of all possibilities. There's a lot of work to be done in UI, software design, operating systems, and hardware in order to make computing reasonably consistent, efficient, and secure rather than the insecure garbage we currently deal with.
I do most of my programming in Go, with an increasingly small portion in C. I also like Lisp, although I do not get many reasons to write it beyond hacking my
.emacs. Recent projects include:
- Minimega, a tool for rapidly launching hundreds or thousands of virtual machines. Run it on your desktop or across hundreds of cluster nodes. Set up arbitrary networks.
- Harvey, an operating system based on the GPL release of Plan 9 with the intent of refreshing the system for the modern day. This means a GCC port (an unfortunate necessity), C11 compliance, Go, and more.
- Hellaphone: the Inferno OS running on Android phones. More info here.
- Goblog, which utilizes Go's http and template packages to both serve static files and dynamically generate pages for a blog. I'm using it to host this site entirely. Source at the bitbucket repo.
- NxM, a 64-bit Plan 9 kernel descended from Nix. Development ended on NxM but some ideas (like continuous integration and Linux compatibility) are also in Harvey.
- Gosim, a program which simulates people walking around a city. Bitbucket.
- gproc, a program for managing clusters—my development fork is located at https://bitbucket.org/floren/gproc. gproc is more of a curiosity these days, as minimega has surpassed its capabilities.
- Anduin: I've been playing with wearable computing; the Anduin window manager from MIT is a good start, but missing some features I want. I've started adding them in my own fork.
I've found it useful to bring my own editor with me sometimes, if the local vi is insufficient. That's why I keep this version of the Sam editor around, with makefiles adjusted to compile on Linux: sam.tgz. You may need to tweak the samterm Makefile to point to the correct lib directories depending on your distribution (the XLIBS variable), but otherwise it seems to build fine on Ubuntu, Debian, and Arch. It also built on Solaris at one point, but I haven't tried it lately. Just run "make" and "make install-local" to install it to your ~/bin.
I put some recipes I particularly enjoy here.