Latest Posts

Introducing Rust Sitter

Write fast and robust parsers with ease

August 2022

tl;dr: Rust Sitter is a new approach to writing parsers in Rust. By combining macros with an external compile-time tool, it can automatically generate efficient parsers with Tree Sitter and bindings that extract results into high-level user structures. At Berkeley, I'm a PhD student on the Hydro project, which is focused on designing new languages, compilers, and runtime systems that make it easy for anyone to write efficient distributed systems. Recently, we've started to build out compilers at…

Machine Learning in Scala with Google Colaboratory

March 2019

Last week was the TensorFlow Dev Summit, where the latest announcements in all the TensorFlow libraries were announced. In these talks, almost all the demos were in Google Colaboratory (Colab), a free product from Google that gives you access to a Jupyter notebook running in the cloud with the option to connect to powerful GPUs to accelerate machine learning operations! Inspired by the power of these interactive demos, I set forth to make it possible to run Scala code inside Colab. In this blog…

Introducing Slinky 0.5.0

Faster compilation, smaller bundles, Scala 2.13, and more!

September 2018

Slinky is a framework for writing React and React Native applications in Scala with an API that mirrors JavaScript and a fantastic developer experience. Slinky 0.5.0 is the largest release yet, with improvements across the board from making hot-reload cycles even faster to new code generation capabilities with even better support for IDEs. So let’s dive in and see all the new features in this release! Faster Compilation Write your apps even faster with more efficient compilation! It’s no secret…

TensorFlow in Scala with ScalaPy

January 2017

This winter break, I started work on a project for controlling robots with neural networks. I knew I wanted to use Scala for implementing the project, because of its static-typing safety and potential for integration into distributed computation pipelines. But I also wanted to use TensorFlow's Python API, due to its user-friendliness and the large number of existing examples to learn from. In order to have the best of both worlds, I created ScalaPy, which allowed me to use TensorFlow's Python…

50 Videos in 50 Days

August 2015

I run a YouTube channel about programming, in Scala so far. I have created videos about all sorts of projects, such as solving Project Euler problems, Fun Scala Projects, and building Minecraft mods. I used to create videos every few weeks or so, but as I entered middle school and took on roles in the Leadership class and Student Council, the period between videos grew and eventually I stopped making them. I wanted to start making YouTube videos again, so this summer I set out to publish 50 new…

Romeo, Juliet, and Reactive Programming

July 2015

I recently finished reading the play Romeo and Juliet by William Shakespeare in my literature class. With the final exam coming up I was rereading the play over and over again, deepening my understanding of every part of the plot. Cramming the play into my head led to a crazy idea -- what if Romeo and Juliet was modeled with actors? The next day this still seemed like a good idea and so began my journey of implementing Romeo and Juliet with Scala and Akka. Background If you don't know how Romeo…