Welcome to the technical blog of John Jacobsen, a software developer currently living in Chicago, IL.

Recent Blog Posts (all posts)

I have created software for more than two decades, mostly working in the field of high energy physics and particle astrophysics. My current specialty is distributed, Web-based applications for scientific computing, though I have done a fair amount of low level software engineering (Linux device drivers and embedded systems), as well as data mining/analysis and simulation.

For the past ten years I have worked primarily for clients on the IceCube Neutrino Telescope, the world’s largest detector of astrophysical neutrinos, which was recently constructed at Amundsen-Scott South Pole Station. For the last five of these years, my biggest project has been as the lead programmer and architect of the IceCube Experiment Control and Monitoring system, known as IceCube Live. This distributed system, created in Python and hosted at the South Pole and in Madison, Wisconsin, welds together a heterogeneous collection of subsystems together across a network of 200 or so servers at a data center at the Pole, and, using modern Web application tools, provides interactive sites used by detector operators, subsystem experts and data analysts in both hemispheres to control the instrument and to understand its current and historical performance.

In the course of my career I have traveled ten times to the South Pole and have written extensive blog posts about the experience.

I like to write elegant, powerful, maintainable code. Generally this means striving for simplicity whenever possible. When practical, I practice iterative, test-driven development and fully-automated deployment workflows with frequent releases. I have deep and extensive experience with Python, though I have recently been very enthusiastic about Clojure, a Lisp-based functional language implemented on top of the JVM and in JavaScript, and have worked on two implementations of Clojure in Python.

Other interests include machine learning, logic programming (MiniKanren, core.logic), AI in general, and creating visualization tools (I am currently working on a JavaScript charting library using D3.js). I’m also an on-again, off-again visual artist (painting, drawing and photography).

The site for my consulting business has more details. See also:

Occasionally I will post about various side projects on the following blog. I also tweet about various obsessions, software or otherwise.

All Blog Posts