Skip to content




@ChoateProgrammingUnion @mggg-states @mggg
Block or Report

Block or report InnovativeInventor

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse

Max Fan

I love to hack, make, and create! I'm a senior at Choate Rosemary Hall (a high school) and president of Choate Programming Union, a club that aims to foster a love of programming amongst all students. I'm also a ham radio operator (general class) – my callsign is KC1LTV. I mainly focus on crypto/security related things, although I have a variety of other interests.

As of 2020-12-31, 140/207 of my repositories are public. Here are several of my more interesting recent open-source projects (in no particular order and in varying degrees of completion).


  • housing-optimization Optimizing and automating the Choate housing allocation system with Monte Carlo Markov Chains and constraint optimizer techniques with the goal of replacing the current lottery-based system.

  • node-kayles Calculations and generalizations for Node-Kayles/non attacking queens problem in combinatorial game theory. Uses a novel, generalized node-contraction algorithim to achieve improvements over previous calculations in the literature. Written in Rust!

  • geocompose A library for representing geographical regions as a set of addresses. Intended for use in redistricting.

  • Choate Zoom Coordinator: A unified location for attending classes on Zoom. Was in production to ~ 1000 people at Choate Rosemary Hall.

  • mongoset: An idiomatic, Pythonic way to interact with MongoDB with good defaults. Drop in replacement for the dataset library.

  • pbutil Cross-platform implementation of macOS's pbcopy and pbpaste in Rust. Helps make transitioning from macOS -> Linux easier.

  • gsimplify A Google Drive to html compiler. Google Drive is ubiquitous for writing and its collaboration and real-time editing features are the best out there. gsimplify aims to create a lightweight, more intuitive CMS system powered by Google Drive/docs that compiles a Google drive folder to a fully fledged website. Currently in development for usage in Choate's Student Council website.

🔑 Cryptography and Security

  • dropbox-timestamp: Automatic and trustless cryptographic timestamping in Dropbox (with attestations uploaded to Bitcoin)

  • pylamport: A python library for generating cryptographic Lamport signatures.

  • homomorphic-encryption: Basic homomorphic algebraic operators encrypted with LWE utilizing GPU acceleration and ripple adders. Uses the NuFHE library.

  • Trustless Random Beacon: A secure randomness beacon using sequentially applied hashes and hash commitments on the Bitcoin blockchain.

This was used to generate demonstrably random pairings of a chess tournament to great success!

  • monobox: A flexible, simple, (and secure) tool for rapidly coding, testing, and deploying applications using Docker. Currently deprecated.

  • CTFtools: Tools for cybersecurity (CTF) competitions. Used by Choate Programming Union's CTF team to win 8th place nationally at picoCTF.

  • timestamp-api: A HTTP api for timestamping via opentimestamps (with attestations on the Bitcoin blockchain).

  • securechecks: Small security tools and scripts to lock down and prevent pwnage.

  • constant-time-benchmark: Benchmarking various supposedly constant time algorithms to validate various cryptographic implementations against side-channel attacks in Golang.

⚙️ Theory of Computation

  • pylambda: A Turing complete, experimental prototype programming language based off lambda calculus in Python

This project was a weekend project – I plan to revisit this soon and add some types!

  • lambda-etudes Little exercises in lambda calculus to derive and practice my lambda-fu in a typed functional language. Haskell!!! Inspired by the exercises in Introduction to Lambda Calculus by Henk Barendregt and Erik Barendsen.

📖 Machine Learning

  • chesscompress: Working towards state-of-the-art chess move compression (~90% compression) with asymmetric numeral systems.

  • deeppacket: GAN to fool deep packent inspection (DPI) and circumvent censorship.

  • TrumpTweets: Machine generated Trump-like tweets.

🗄️ Archive Team

I also have spent some time helping out Archive Team by writing software that smartly queues some archiving jobs onto ~100 servers through an IRC interface.

  • queuebot: A smart autoscaling queueing service for archivebot for eventual upload to the Internet Archive's Wayback Machine (WBM). Currently focusing on automatic archival of missing political and governmental twitter accounts. Was live on efnet/#archivebot.

  • archivist: Archiving politically and culturally important social media with archiveteam and archivebot (on IRC) to IA's WBM. Was live on efnet/#archivebot.

🧰 Tooling

I place a great emphasis on my tooling – my belief is that the more familiar I am with my tools, the better I am equipped to solve the problems I want to solve.

I usually write code in emacs and spend most of my time on my computer in terminal (alacritty). My dotfiles (somewhat up to date) are here. I usually use tmux over mosh to remotely work and develop, but sometimes I use good old-fashioned ssh (using mosh (via Blink) on my school-issued iPad plus a bluetooth keyboard can be very productive!). For IRC, I use WeeChat with several custom plugins and filters (may be open-sourced soon) and my nick is usually maxfan8 (you can find me on efnet and hackint, although I prefer the latter).

(Is this latest GitHub feature gimmicky? Yeah, ^^ it certainly looks like it is!) Written in emacs (doom-emacs).


  1. Calculating surreal numbers from combinatorial games

    TeX 1

  2. A secure docker container that sets up PiVPN in a virtual environment.

    Shell 67 15

  3. [WIP] A Turing complete, experimental prototype programming language based off lambda calculus in Python

    Python 1

  4. Archiving politically and culturally important social media with archiveteam and archivebot (on IRC) to IA's WBM. Currently live on efnet/#archivebot.


  5. Tools for cybersecurity CTF competitions

    Python 1

  6. [WIP] Working towards state-of-the-art chess move compression (~93%)

    Jupyter Notebook

Contribution activity

July 2021

Created a pull request in cloud-oak/ProgressBars.jl that received 6 comments

Benchmark tests

Here are some simple benchmarks to diagnose performance issues and quantify overhead. Looks like the printing_delay argument doesn't help performan…

+127 −62 6 comments
Reviewed 2 pull requests in 1 repository

Created an issue in cloud-oak/ProgressBars.jl that received 2 comments

ProgressBars.jl prints to stdout (tqdm et al. print to stderr)

The default (and only) behavior for ProgressBars.jl is to print to stdout, where it should print to stderr to be in-line with tqdm and similar tool…

44 contributions in private repositories Jul 8 – Jul 30

Seeing something unexpected? Take a look at the GitHub profile guide.