Uses This

1279 interviews since 2009

A picture of Jeremy Kun

Jeremy Kun

Infrastructure optimisation (Google)

in developer, linux, mac, mathematician

Who are you, and what do you do?

I'm Jeremy Kun. I do infrastructure optimization at Google, i.e., I write software that automatically plans which machines go where in a datacenter such that customer demand (Ads, Search, YouTube, etc.) is met in a way that minimizes the cost of owning and running the machines. We formulate and solve giant optimization problems (millions of variables and constraints across many systems). One of my main recent interests is in automating the process of explaining the behavior of these systems - which can both reveal the source of bugs or data problems, and also instill trust in that the automated system is working correctly. At this point, it's mostly a pipe dream while I try to keep up with Google's insatiable desire for more RAM.

I also write a math blog called Math Intersect Programming, and I recently published a book, A Programmer's Introduction to Mathematics. If you once took a Calculus course, but you forgot all the math you know and would like to learn it again (to enable you to write some cool programs), then this book is for you.

I'd like to make more mathematical art, and I am working on an undisclosed project I hope can get into the MoMath.

What hardware do you use?

At work, an Ubuntu desktop with 60 GiB of RAM and a Pixelbook. At home, I have a broken 27" 2012 iMac, a 12" 2015 MacBook (my main machine), a handful of Chromebooks, and a Surface Pro 3. I have a Pixel 2 for my mobile phone. I choose a laptop primarily based on whether it will fit in my man bag. I also rely on my Bose QuietComfort 35s with, the world's best method for drowning out the outside world so you can think.

Since I do a lot of math, I have specificity for writing implements on par with my vim configuration. I use a very specific kind of notepad - unruled, cheap, abundant, low-weight stock - and similarly specific notebooks - small, unruled. I can never use paper or a notebook that I feel is too fancy to house my unendingly bad ideas and egregious mistakes. The only good paper is paper for which, when you throw it on the ground and grab a new sheet to start over, you don't feel bad. Lined paper is hell. I prefer 0.9 mm lead mechanical pencils, though more often than not a 0.7 mm Bic is what I have handy.

I have a large cache of the original Japanese Hagoromo Full-Touch chalk - God's own chalk, the Rolls Royce of chalk, the chalk that prevents its wielder from making a mistake - which I use in those increasingly rare times I have access to a chalkboard.

And what software?

I use vim for all my coding, writing, TeXing, and general text editing. I subscribe to the view that vim is the most beautiful and efficient tool humans have created for editing text. I use git/GitHub for version control (with hundreds of repositories for little math demos and side projects), Trello for organizing my personal projects and meals, WordPress for my blog (though I'm migrating to Hugo if I can get it to render TeX well and natively). I use Sketch for math diagrams and other art projects, and Google Keep for doodling on my Pixelbook.

I use Google Drive and Dropbox for private cloud storage, and F.lux allows me to get 9 hours of sleep every night. I've been opting to replace most tracker apps that sell my data - financial trackers, etc. - with simple Google Forms tied to spreadsheets. I can do my own damn analysis, thank you.

I use to escape the noise of social networks and slow-cook my thoughts, but otherwise my primary social medium is Twitter. Math Twitter is the best Twitter. I also like Keybase and think encryption is a human right.

What would be your dream setup?

Vim, but with the ability to have the cursor move to wherever your eye is looking. A Google-Docs-style collaborative coding protocol that is editor-independent, so I can collaboratively code with my friends and colleagues regardless of IDE. An artist-quality desktop graphics tablet that I can use to livestream combined math/coding sessions. A big chalkboard. A more polished and complete version of DynamicLand in my home and at all the libraries. A big desk with lots of room for discarded paper. A programming language for visual demonstrations that works on the web and isn't totally broken or crappy.

And most importantly, having other people around who want to collaborate.