Hi! My name is Nima.
I'm a software engineer at Apple. I work on Xcode as a build system engineer, focusing on:
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:
You can find me on other places too:
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.
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.html