Shashi Gowda


I am a PhD student in Computational Science and Engineering at MIT advised by Prof. Alan Edelman. I sit in CSAIL (7th Floor julia lab–come say hi!).

I'm exploring the application of symbolic computing and partial evaluation to generate, reason about, and optimize numerical software.

My vision for work is to make expression through code more accessible to broader groups of people: scientists, artists, educators, students whose work may benefit hugely from programs that are expressed informally and easily yet run efficiently. I am interested in the fields of program synthesis, symbolic systems, and programmable interpreters. I believe symbolic computing will be an increasingly re-accepted part of AI research and that we will see neural network architectures combine with symbolic computing and program synthesis like milk, sugar and chocolate, changing the way humans use computers.

I love knowing about every level of abstraction of computers – from registers and cache lines to compilers and programming language design. In Fall 2020, I was a teaching assistant for the 18.S191 Introduction to Computational Thinking course. It's online and free for anyone!

Before I started my PhD, I was a Principal Software Engineer at Julia Computing where I co-developed JuliaDB.

Resume/Contact info

Resume is here. You can email me at I hang out on the Julia Language slack where my user name is @shashi. My Github profile is here.

Current projects

These are projects I am currently working on. All these projects are in the Julia language.


(co-author with Yingbo Ma and others) A fast and modern CAS for a fast and modern language. I am spending most of my time on this and related projects.
Github | website


Symbolic programming utilities and a rule-based expression rewriting system.
Github | website


(co-author) Sientific modeling domain-specific language that compiles to Julia.
Github | website


Filesystem inspired parallel computing abstractions.
Github | website


A parallel scheduler for Julia

Past projects

Projects that I wrote, that I now only occasionally help maintain.


Manipulate output with simple widgets in Jupyter
Examples | Github


Distributed in-memory database written in Julia.
Website | Github


Fast just-in-time generated CSV parser for Julia.
Website | Github


Low level tools for web widgets


(dormant) experiments in web-based UIs
Website | Github

Fun stuff

Here are some interesting Jupyter notebooks I made.