Published TypeScript Coach, a learning resource and reference guide for TypeScript and Node.js. The website is a Next.js application which runs the TypeScript compiler directly in the browser, and executes the generated JavaScript code within a Web Worker.
The official handbook for TypeScript requires you to copy and paste examples into a TypeScript project, or their web-based playground. I wanted to make a better learning environment which makes it easy to actually play around with the language. I also added deep introspection for types, so you can instantly see code changes reflected in the TypeScript compiler's state.
Published a translation of the Bhagavad Gita that provides word-by-word translations, Sanskrit analysis, audio recitations, and references to associated texts such as the Upanishads. I carefully crafted each translation to be clear and concise, while maintaining accuracy in relation to the original Sanskrit verse.
Worked on some big projects with aluminum extrusions and some serious hardware. Drove a flatbed truck for the first time in my life.
Ran a few education experiments with my JavaScript coding game Spacecode, and collected detailed analytics on usage within a block-randomized study to discover pain points and blind spots.
Created this open source library for controlling Lifx bulbs over the local network, instead of relying on the bulb to connect to a remote server. Not only is this better for security/privacy, the speed at which the bulbs respond to changes is virtually instantaneous.
Became weirdly obsessed with putting QR codes onto physical things, so I could supplement their physical existence with a unique location on the Internet. I learned that QR codes are super cool, super customizable, and much more sophisticated than you might think.
Automated the lights in my apartment with Raspberry Pi cameras, Noon smart switches, and an efficient incremental object detection server written in Python.
In November 2019 I downsized my life and bought a 2019 Ford Transit Connect to have an easier time climbing. I connected two Purple pet mattresses into a 6 foot bed, and built out the first version of the interior with wood and basic power tools.
Created a Menger cube out of gingerbread over the Christmas holidays.
Coauthored a publication on Corneal Confocal Microscopy as part of a UCSF research initiative into automated mosaic generation and image analysis of CCM images.
I built a CNC machine out of a couple Lego Mindstorms NXT kits, and wrote some custom software to control the Lego motors through a JVM running on the NXT controller. I was manipulating a mini dremel cutting tool with some impressive precision on green floral foam.
These days, I'm usually building things with my students at TechLab. Kids get super creative with cardboard and hot glue guns - once you add in the Arduinos and Raspberry Pis, the possibilities for creating exciting and unique things is endless.
I mentored several students for the Silicon Valley Science and Engineering Fair.
Made this butler robot. The platform tends to wobble quite a bit as the robotic arm swings around, so it's not very useful for its original purpose of bringing me coffee in the morning.
I found a touch screen monitor and touch screen driver for $45 in a warehouse of surplus electronics. I attached the screen to the wall through a custom enclosure, and hooked it up to my voice-controlled light system.
I built the user interface myself with a simple Java applet that would make network requests to the light controller.
I published my crude experiment into building physical logic gates with LEGOs, which has led to some very interesting emails over the years. Many people find this project through this BrickExchange post, which led to people making improvements, and a tiny community emerging for a brief period of the early 2010s Internet.
Wrote a Java program to brute force search for the optimal solution in an iOS puzzle game named Drop7.