I'm an engineer with Gravwell, a startup co-founded by a friend of mine from Sandia. I'm thrilled to be developing some really neat distributed systems-type code in Go. Previously, I worked at Sandia National Labs in Emulytics and cyber-security.
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:
- Bellwether, a modernized clone of a very old computer mouse. I got to learn FreeCAD and KiCAD for this one!
- zk, a note-taking & organization tool for the command line. It's written entirely in Go so it works on both Linux and Plan 9. Functionality is pretty basic but it accomplishes what I need.
- Harvey, an operating system based on the MIT-licensed release of Plan 9 with the intent of refreshing the system for the modern day. We're focusing on Go userspace tools (it's a lot easier to maintain ssh when most of the work is done by Google) and figuring out the most user-friendly ways of distributing the system.
- 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.
- Hellaphone: the Inferno OS running on Android phones. More info here.
- 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.
I've made a few notes about restaurants I've visited.