Shashi Gowda

Bio

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 level at which 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 gowdamit.edu. 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.

Symbolics

(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

SymbolicUtils

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

ModelingToolkit

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

FileTrees

Filesystem inspired parallel computing abstractions.
Github | website

Dagger

A parallel scheduler for Julia
Github

Past projects

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

Interact

Manipulate output with simple widgets in Jupyter
Examples | Github

JuliaDB

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

TextParse

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

WebIO

Low level tools for web widgets
Github

Escher

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

Fun stuff

Here are some interesting Jupyter notebooks I made.