Portfolio
I took a meandering path toward a career in physics. Along the way, I gained experience as a communicator, a public relations professional, a full-stack software developer, and an educational technologist. I have 20 years of experience leading and engaging with free and open source software communities.
Physics dissertation
My doctoral dissertation focused on thermalization in isolated quantum systems. Schrödinger’s well known equation describes how a quantum system changes with time, but understanding how (and whether) such a system will reach thermal equilibrium has been a longstanding question in physics. The first part of my dissertation explored a simple quantum spin model that is known to thermalize. My collaborator and I demonstrated that the stationary states of such a system have rather surprising properties. Essentially, our findings are an unexpectedly strong version of the eigenstate thermalization hypothesis. This work was ultimately published in Physical Review X.
In contrast to thermalization, some quantum systems with disorder are known not to thermalize, a phenomenon which goes by the name of many-body localization. The second part of my dissertation explored whether one could potentially have a phase of matter that combines aspects of both thermal and nonthermal matter in a system without disorder. This work was ultimately published as an Editors' Suggestion in Physical Review B (also available on arXiv).
Information about more recent research projects can be found at umd.edu and from the list of my articles on arXiv.
Julia
Since 2014, I have been a user and evangelist of the Julia programming language. I made a number of minor contributions to the core programming language, and eventually I was invited as a committer to the main language repository on GitHub. (I contribute rarely to core Julia development these days, as it has matured and now meets essentially all of my needs out of the box.) I founded the Southern California Julia Users Meetup, I maintain UniqueVectors.jl, and I have made drive-by contributions to countless other Julia packages.
Other physics simulation software
Prior to adopting Julia for my own research, I wrote physics simulation software primarily in a mixture of C++ and Python. Highlights include a simple tutorial of the density-matrix renormalization group method, as well as code for performing variational Monte Carlo calculations on lattice systems. I also developed eigen3-hdf5, a template library for serializing Eigen matrices as HDF5 files.
Quantum Computing, Explained
In 2012–2013, I gave public talks on quantum computing to three different audiences of technologists. In these, I aimed to explain the fundamentals behind quantum computing in a mathematically precise yet intuitive, visual way, rather than tell my audience that they were just going to have to learn linear algebra if they truly want to understand it. In preparing my slides, I built jsqis, a quantum information simulator that runs in the web browser. Unfortunately, no video recordings exist from any of these events, and I have seen no other comparable resource, so I am working (in 2020) toward making a resource that explains quantum computing following my original vision.
GigaPan School Dialogues
During my time as a software engineer at Carnegie Mellon University, I was the primary developer behind GigaPan School Dialogues. The website enabled students to have shared discussions about panoramic images with students in another classroom somewhere else in the world. The site has all of the important features of the main GigaPan site, but tailored specially for use in K–12 classrooms (and off limits to the public).
Software Freedom Law Center
After graduating college, I became the public relations coordinator for the Software Freedom Law Center (SFLC). I was hired primarily to deal with press throughout the large public negotiation that took place in drafting version 3 of the GNU General Public License (GPLv3). I handled relations with the trade press and worked with our external public relations counsel, an industry veteran, on strategy for the mainstream media. In addition to the license negotiation, I advised other SFLC clients in their press strategies, including when SFLC filed a patent re-examination request regarding Blackboard, Inc.’s e-learning patent. During my time with SFLC, the organization received mention in dozens of publications, including CNET, Ars Technica, ZDNet, InfoWorld, Inside Higher Ed, The Chronicle of Higher Education, The New York Times, The Wall Street Journal, and a story on the cover of Fortune. In July 2008, I left SFLC to begin transitioning toward a career in physics.
mod_python Ubuntu Security Notice
While working on a revamped web presence for SFLC, I discovered a security vulnerability in the version of Apache mod_python that shipped with Ubuntu at the time. I responsibly disclosed this bug to the Ubuntu security team after verifying that it had already been fixed upstream.
Gnomoradio
I led the development of Gnomoradio, a program for discovery and peer-to-peer sharing of freely licensed music. While we were working on a first version of the program, Creative Commons released its first set of licenses, thus providing a foundational legal framework which allowed artists to explicitly permit sharing of their music. The project made an impact on the blogosphere and was mentioned in Newsweek. I am also indebted to some dedicated collaborators—friends from high school—who were willing to volunteer for little more than friendship and a shared vision of how the world ought to work.
GNOME Stock Ticker
In the late 1990s, I found that the GNU/Linux operating system offered free software for essentially everything I needed a computer to do. As far as I was concerned, the only thing standing in the way of universal adoption was the lack of a user interface making the software available to people other than technical experts. Many developers of the GNOME desktop environment shared this vision. Although I made various small contributions, my greatest single contribution was as a developer of the GNOME Stock Ticker. Jayson Lorenzen wrote the original version of the code, and I made major contributions to improve it. (Jayson has since written a retrospective on his blog.) Based on my contributions to the stock ticker and to Gnomoradio, I remain an emeritus member of the GNOME Foundation.
YourChat
In my early days on the World Wide Web, I built a fan site for a popular comedian. What distinguished my site from others was that it allowed people to chat with one another without leaving their web browser. For a while, visitors were few and far between, and I rarely had more than a guest or two at once. One day, I found that my site was overwhelmed with visitors. I learned from the HTTP referer header that these people had been sent by WebCrawler, where my site appeared as the #14 result (i.e., on the first page) when searching for “chat.” Things were never quite the same after that. Over time, I also found myself hosting chat rooms for a religious community and for a popular site for young (middle-school aged) authors.
Eventually, I developed my chat program into a system anyone could use to create a chat room and web space, which I called YourChat. While developing this site, I hosted it over a 28.8 kbps modem on a tower I built, running Slackware Linux. In the end, my internet service provider shut down the three chat rooms I hosted on their server because they would find leftover “zombie” processes after the server ran my script. I don’t think that my code was actually the problem, but nevertheless I did not try asking them to upgrade the NCSA HTTP server they were using to Apache, as it was pretty clear that I was not going to get that level of support from a company my parents paid $15/month to for both internet access and web hosting.
Computer Pog
In fifth grade, my math teacher assigned us to work in small groups to develop a product and sell it on a designated day of class, as a way to encourage us to practice basic accounting skills. Upon receiving this assignment, I knew immediately that I wanted to build a computer game. My first inclination was to try to make a simple, grid-based “adventure” game in the spirit of The Legend of Zelda or Dragon Warrior, but my mom suggested the idea I ultimately went with: 1995 was the height of the pog craze in North America, so I worked over spring break to write a pog game in Visual Basic. Two classmates collaborated with me in this endeavor. One was responsible for much of the artwork, and the other worked independently to put together homemade whoopie cushions, just in case we could not ship our product (on 3½ inch floppy disks) by the tight deadline.
I was not aware of trademark law at the time, so needless to say my program was not licensed by the World Pog Federation. To this day, it remains the only personal software project of mine that I have distributed without source code.