Technology as Power Transfer

Though I've forsaken cryptocurrency and blockchain in my personal and professional life, I currently work in homomorphic encryption. Both areas have fertile...

Programming Jigs

In woodworking there's the concept of a jig, which is a sort of ad hoc stencil for woodworking projects. You might fashion a jig by screwing two wood blocks...

Weak and Strong Algebraic Structures

Weak and Strong Algebraic Structures Hillel Wayne's recent newsletter on monoids got me thinking again about an old question of mine: why are some algebraic...

NP-hard does not mean easy

Recently the internet resurfaced my 2017 article, "NP-hard does not mean hard". I wrote the article mainly to express the nuance that NP-hardness only models...

Thoughts about what worked in math circles

Thoughts about what worked in math circles After about 7 months of math circles with a group of 7- turning 8-year-old boys and girls, I decided to take a...

Structuring Technical Blog Posts

Recent discussions with colleagues and friends have me thinking a bit about the writing process, and how to structure technical exposition. I am one of those...

What happens when it's all streamlined?

One of my son’s favorite songs these days is (oddly, and thanks to recommendation algorithms) “The Worker’s Song”, as performed by The Longest Johns. My son...

A Foray into Math Circles

This year I’ve started facilitating math circles in Portland. For those who don’t know, a math circle is a small, extracurricular gathering of similarly-aged...

Career update: homomorphic encryption

I recently had my final week working in the data center planning side of Google. July would have marked five years of my focus on integer linear programming,...

Update on Practical Math for Programmers

Last May I wrote about a new book I’m working on, tentatively titled “Practical Math for Programmers” (working subtitle, “A Tour of Math in Production”, h/t...

Ideas for math tools

Ideas for math tools Mathematicians have some great software available. Even domain-specific systems like Macaulay2, a programming language for commutative...

Programming as a Vehicle for Math

Programming as a Vehicle for Math In March 2020, I gave a talk at Math for America, an organization that fosters professional development for K-12 math...

The End Goal of Math is Efficient Computation

[Nb. this is a very rough draft but I’m sad I’m not writing much these days so I want to get the juices flowing again.] Mathematicians (especially pop-math...

Monorepos and Forced Migrations

Monorepos and Forced Migrations By most metrics, Google is a great place to work. Top tier compensation, free food, and largely co-workers who want do...

A survey of mathy jobs

Mathy Jobs Some folks expressed interest in hearing about what sort of mathy jobs there are, beyond the standard of academia and teaching. I had to think...

Layering Abstractions

Layering Abstractions When designing software systems, we care about flexibility as requirements change. One might break that down into two rough parts....

A week of book writing

tl;dr: I’ve started working in earnest on a new book, tentatively titled, Practical Math for Programmers. Sign up for a mailing list to be notified when it’s...

Modeling state in linear programs

Modeling state in linear programs There’s a neat way to model decision making as an (integer) linear program for managing a collection of resources. In my...

Tracking the progress of a distribution

Tracking the progress of a distribution I've been super busy lately, with work, a baby, and house hunting. Fun projects will have to take a back seat for...

Ideas for a "Production Cafe"

Ever since I wrote What’s in Production? I’ve grown steadily more obsessed with it. The act of writing these thoughts down focused the discordant, nagging...

What math is waiting for the world to catch up to?

Last week Tai-Danae Bradley invited me to give an Alphabet-wide math talk, in part advertising a series of internal courses she's teaching on pure math for...

Little Annoyances, Big Decisions

Little annoyances, big decisions A story I think software engineers, myself included, are influenced heavily by annoyances, and those annoyances drive major...

What's not to like about LaTeX?

Apologies for the delays in this newsletter. With the baby and the coup, the newsletter took a momentary backseat. I also wrote a few drafts (not about...

I wanted to care about software estimation

I wanted to care about software estimation I'm the kind of person who hears about a good idea and immediately wants to try it. So when I read about reference...

The value of math is at the margins

The value of math is at the margins I used to work at a Bitcoin startup. It ended up being a waste of my time, but I was lured there with promises of working...

The Spiritual Nature of Software Tools

The Spiritual Nature of Software Tools At the risk of waxing philosophical and boring you, I want to discuss one other aspect of Simone Weil's "The Need for...

Some book ideas

Future book ideas My first book, A Programmer's Introduction to Mathematics (PIM), was, in my view, a success. Self-publishing provided enough royalties to...

Mathematical community and the needs of the soul

The Needs of the Soul Last issue I waxed poetic about some informal communities I was involved in. I've been reading a few books about what makes a good...

What makes a community?

What makes a community? Recently I've been thinking a lot about community and culture. I've participated in many communities over time, centered around a...

What's in production?

What is Actually Used? Everyone wants their work to be useful. Being useful to others is a fundamental need of the human soul. That often manifests as the...