Projects

Some of the things I've worked on in my free time.

pypush Python script that continuously monitors your local directory and immediately uploads any changes you make to your specified remote directory. What sets pypush apart is its real-time sync, and its integration with Git/Mercurial.
HeraclesHeracles Mac app that makes using Kerberos dead simple. Just set and forget.
imap-import Heroku app that uses the IMAP IDLE command to immediately import email from multiple IMAP accounts to one Gmail account.
Gmail appGmail SSB Mac app for Gmail with some nice features.

Classes

I love my classes at Stanford and have created some really cool stuff in them. Below is a selection of notable work from my classes. Some of it was standard for the class, some of it was for my particular project in the class and some of it was extra credit work.

CS 140 (Operating Systems and Systems Programming) - added various features to a basic operating system, including priority scheduling, virtual memory and a much-improved file system.

CS 143 (Compilers) - implemented a compiler for COOL, the Classroom Object Oriented Language.

CS 142 (Web Applications) - a photo sharing site that allows users to comment on and tag photos.

CS 193P (iOS Programming) - Lost: An App for Discovering Places. You might see it on the App Store some day.

CS 181W (Computers, Ethics and Public Policy) - check out my magazine article on Snapchat's leak of 4.6 million users' information.

CS 166 (Data Structure) - implemented a hash table using the Robin Hood hashing scheme. In my tests I found it to be faster than the C++ STL map, unordered_map and Google's dense_hash_map.

CS 110 (Principles of Computer Systems) - multi-threaded code with access to shared resources that performed synchronization without locks.

CS 106B (Programming Abstractions) - interpreter for BASIC. This was the second introductory programming class at Stanford.

CS 147 (Intro to Human-Computer Interaction Design) - mobile website to find, compare and rate doctors in your area.

CS 107 (Computer Organization and Systems) - heap allocator. Achieved about 125% throughput as compared to libc malloc and 80% memory utilization on the given test cases.

CS 229 (Machine Learning) - explored predicting cancer type based on genome data. Check out our poster here.