Joseph Choi
Current
DSC
An even better version of DSCompiler.
- DSC is an extremely efficient and powerful way of serializing structured data.
- It is similar to Google's Protocol Buffers, but DSC is significantly better in the following ways:
- More space-efficient for nearly all cases.
- Faster serialization/deserialization for nearly all cases.
- More powerful set of data structures and methods for nearly all cases.
- Simpler data structure declaration and usage in code for nearly all cases.
Net 2
An even better version of Net.
Highlights
DSCompiler
A faster, more powerful version of Google's Protocol Buffers.
- An extremely efficient and powerful way of serializing structured data.
- Supports integral types, floating types, strings, arrays, sets, maps, objects, and enums, with arbitrary nesting and a complete set of methods for all of these.
- Supports includes and namespaces.
- Came up with the spec and implementations for C++ (template-based) and JavaScript.
ID/Class Shortener
Compresses IDs and classes in HTML/CSS/JS better than Google's.
- Compresses IDs and classes 3-5x as efficiently as Google's throughout HTML/CSS/JS.
Net
Extremely fast server-side networking library.
- Has the ease-of-use of Node.js for networking between computers, including HTTP and WebSocket with TLS/SSL, while benchmarked to be 15-50x faster (requests per second).
- Uses an asynchronous non-blocking event-based model, either single-threaded (like Node.js) or multi-threaded.
- Multi-threaded version for HTTP can reach millions of requests per second per machine.
- Extremely efficient HTTP parsing, cookies parsing, WebSocket parsing. Extremely efficient Base64 encoding/decoding.
College-Rank
Web application for ranking colleges using your own metrics and weights.
- Uses sophisticated build techniques for producing efficient and optimized HTML/CSS/JS.
Backlights
Near
An application for making posts and finding posts by GPS location.
- This was a project for a class at Caltech.
Netflix Challenge
Extremely fast machine learning/collaborative filtering implementations.
- Implemented algorithms to predict user's ratings of movies based on a data set with 100,000,000 prior ratings of movies by users for a class at Caltech.
- Fastest implementation in class (by several orders of magnitude), highest prediction accuracy in class.
- Implementations take seconds per iteration, while others took hours (or even days!) per iteration.
- Algorithms include various combinations of singular value decomposition, generative stochastic neural networks, temporal dynamics, and implicit information.
Immense
Real-time scalable fault-tolerant distributed system.
- Distributed system developed using Node.js and Redis.
Precise Pong
Generalized pong supporting balls and paddles moving at arbitrary speeds.
- Compared to your typical pong implementation, this supports an arbitrary number of balls that move at speeds which can well exceed 100,000,000 pixels/second.
- Corresponding AI-controlled paddles correctly defend against multiple balls with the minimum movement and speed necessary.
Summary
Caltech
Student 2011-2015 (expected).
- Took classes on Networks, Machine Learning, Collaborative Filtering, Game Theory, Algorithms, Functional Programming, Information, Graph Theory. Also took classes in Complex Analysis, Analytical Differential Equations, Quantum Mechanics, Statistical Mechanics.
Google
Intern 2012, 2013.
- Worked on Gmail's load balancer statistics dashboard in 2012, and a mechanism to set up graphs of processes and their dependencies (System Infrastructure) in 2013.
About
Blurb
My initials are JIC.
- I like simplicity and elegance. I like computer science. I like math. I like physics. I like optimizing things.
People that inspire me
Mark Zuckerberg, Steve Jobs, and Elon Musk.
- I know they inspire a lot of people, but here's why they inspire me. Mark Zuckerberg because he created something that was relatively easy to make but no one else had done it for some reason. Steve Jobs because he recognized the importance of intelligently designed interfaces, both hardware and software. And finally Elon Musk because he does visionary things that are very likely to impact humanity as a whole.
Links
Various accounts I've made, in alphabetical order.