Kartik Chandra

Kartik Chandra

I'm an undergrad at Stanford studying computer science, physics, and English. I enjoy writing, playing jazz, and cooking with friends. I spend most of my time learning as much as I can about the brilliant, strange, confusing, mystifying, and yet endlessly marvelous world around me. I collect words sometimes.

I care about computer science education. I helped develop Snap!, the visual language Berkeley uses to teach its introductory CS class, and Scratch, a program designed by the MIT Media Lab to teach children to code. I’ve used them to run small workshops for middle-schoolers since 2014. Nowadays I help run Splash, a program where Stanford community members teach local high-school students about whatever they wish. I also lead a CS106 section.

I'm interested in programming languages, both in theory and in practice. I work on designing solver-aided verification tools at the University of Washington’s PLSE lab. I helped design and implement Ergo, a type-safe DSL for lawyers to specify the behavior of smart contracts. In my spare time, I maintain nearley, a popular parsing library.

Here at Stanford, I work on the Stanford Student Space Initiative, building (and breaking) things that try to go to space.

I love asking questions about the world around me. Words like why? and how? and what if? keep me going. In lieu of a portfolio, below are some of my favorite questions, in no particular order. Each one links to my attempt at finding an answer: in the form of a blog post or a computer program or an image. The links are color-coded based on how satisfied I am with the results of my inquiry.

What causes the 22° halo around the sun, and how can we efficiently render physically-accurate images of it? [CS348b] Are there more "Laurel/Yanny" illusions out there? [CS168] How big a buffer do we need to be able to pair up an infinite number of socks coming in over a stream? By how much do windmills slow down the wind? What shapes emerge if we insist that a certain casino is the nearest to everyone in Los Angeles? What is the optimal alphabet layout for the historic 1888 Crown Typewriter? Which directed acyclic graphs can be represented by towers of stacked blocks? What would a triangular laser-cut jigsaw puzzle look like, and can the tessellation be synthesized procedurally? What is the analogue of the Curry-Howard correspondence for narrative theory? What would it mean for a computer to synthesize a story? What is the relationship between monadic I/O and the dataflow/patch programming paradigm? Can we approximate Euler's constant using historic earthquake data? How well do SAT solvers handle the constraints of Western classical music theory? Is there a symmetric cryptographic algorithm for collusion with plausible deniability? Can JavaScript be dynamically scoped... from within JavaScript? How few words do you really need to communicate — and what's the minimal set? Why are there 12 notes in a musical octave, and not, say, 19? Are 2D epicycles just Fourier transforms in the complex plane? How well do voxel approximations to complex surfaces raytrace? Which dimensional analysis problems are solvable? Can poetry be a subtractive, rather than an additive, act? Why is 210=1024 so near 103=1000, and are there better approximations? How do automated theorem provers work, and what can they prove? Can some sort of temporal RSS proxy help you catch up on old webcomics? How fast can Arthur C. Clarke's famous spacecraft "Rama" accelerate? Why are bubble tea straws pointy, and why is this absolutely fascinating? If you played Scrabble with periodic table element tiles, what's the longest word you could make? Is xkcd's random number generator actually random? Could you play Tetris with true rigid-body physics? Why do Scratch lists have odd performance behavior? What shape is the shadow of a lampshade?

If you have answers, please get in touch. If you have more questions, please, please get in touch.

(* What are you *
 * looking for? *)
match goal with
  | email  => kach@********.edu
  | resume => cv.pdf
  | words  => blog
  | code   => github
  | art    => scratch
  | jazz   => falling-grace.mp3,
              windows.mp3 (* oct ’16 *)
              coho-1.m4a  (* dec ’17 *)
              tedx2018.yt (* jan ’18 *)
              coho-2.m4a  (* mar ’18 *)
              coho-3.m4a  (* jun ’18 *)