Nima Johari

Photo of Nima Johari

Hi! My name is Nima.


I'm a software engineer at Apple. I work on Xcode as a build system engineer, focusing on:

  • Build correctness
  • Build performance
  • Low-level incremental computation frameworks for local and cloud builds

I like to build simple tools that make humans do things better. Prior to Apple I pursued implementing a cloud spreadsheet system with rich values inside cells (images, sounds, videos).


I'm deeply enthused about developer tools, IDEs and programming languages. I use Swift and Xcode in my day job. I find myself lucky that I'm in the vicinity of people who hack on Xcode, llbuild and llbuild2. :)


Fun facts:

  • My legal last name is Joharizadeh and I prefer to drop the "-zadeh" suffix.
You should follow me on Twitter here: @NimaJohari


You can find me on other places too:

Recalc or Die

Build systems 🤝 Calc engines


Back in grad school, I re-discovered the idea of “rich spreadsheets”—dating back to 1986. Modern spreadsheets (Excel and Google Sheets) are slowly adopting some of these ideas.. but I think there is room for a lot more.


I believe a non-mainstream spreadsheet system can realize the vision of "rich spreadsheets" at a higher velocity: there is less baggage from the past, and more room to rethink the core architecture of the calc engine. ("What can be, unburdened by what has been".)


From an engineering perspective, there are commonalities between rich spreadsheets and my role as a cloud build system engineer.


Implementing a rich calc engine has made me appreciate how core underlying primitives of a build system intersect with ones of a calc engine. If you are curious, this paper [3] elegantly dives into this topic and explores various aspects of it.

  1. Object Oriented Spreadsheets: The Analytic Spreadsheet Package (by Kurt W. Piersol published in OOPSLA'86)
  2. https://github.com/johari/minicell
  3. Build Systems à la Carte (ICFP'18)

Rich values inside cells (11 minute video)


Prior to my internship at Microsoft Research in 2019 I prototyped an experimental spreadsheet system in Elm and Haskell. Here is the video demo of it.


Timestamp Description Formula
0:50 Motivating example
2:45 Code-free interaction model to pluck dynamic graphs out of spreadsheets =X
3:50 Calculating the shortest path =SP
5:14 Minicell's graph primitives Various formulas to work with graphs
6:05 Shapes =SHAPE, =PAINT
7:43 Combining shapes =HCONCAT, =VCONCAT
8:24 Integers that flow in time =UNIXEPOCH
8:24 Arithmetic on integers that flow in time =MOD
9:08 Making a 5-frame animation =ROTATE


Implementing a polished "rich spreadsheet system" is still a very dear problem to my heart, but I have not been working on rich spreadsheets since I joined Apple, and my work as an intern in Excel team was focused on "Gridlets"—a robust mechanism for reusing formulas and formatting across multiple spreadsheet grids.


I secretly wish Apple rebranded “Numbers” to “Media Editor” by adding formulas that manipulate image, audio and video clips stored inside cells.

Sound tools, sound synthesis and music

Things that inspire me