Ruijie Fang 方瑞傑

Personal Homepage

Pre-Covid-19 Picture: Sunset at Rockefeller College Tower, Princeton University.

I'm an undergraduate at Princeton University with wide-ranging interests in computer science and mathematics. I am also an alum of the Recurse Center in NYC, a self-directed retreat project for programmers.

Mailing Address

c/o Ruijie Fang
3579 Frist Center
Princeton University
Princeton, NJ 08544


~% echo "KzEtNTE2OTYyNDQ1MQo=" > phone.txt | base64 -D phone.txt


ruijief /at/
Or (possibly slower)
rjf /at/

Current Projects

I am working on improving hot/cold-splitting and optimization passes in LLVM mid-end this summer as part of GSoC '20, supervised by Aditya Kumar and Rodrigo Rocha. My patches are up on Phabricator. In addition, I am working on:
  • malgol60: An Algol60 LLVM frontend written in OCaml
  • cfgfuzz: Fuzzer for context-free grammars
  • maft: OCaml implementation of Raft distributed consensus algorithm
  • Past Projects and Code Pieces

    Mostly under my GitHub account: @ruijiefang.
  • SynergyWrapper: Tuple spaces-based distributed shared memory parallel processing
  • Symbolist: Symbolic mathematics engine in OCaml using S-expressions (Also see entry in Joy of Computing)
  • shared_memory: Header-only library for POSIX shared memory communication
  • Tree zipper in OCaml
  • ksat.cpp: k-Sat solver using O(1.6181^n-time Monien-Speckenmeyer branching algorithm with Dimacs input format
  • ttree.ll: Tournament tree implemented in LLVM IR
  • Writings (old)

  • Computing t-Dominators and UIPs in linear time
  • O((n+m)log C)-time integer-weight SSSP via bucketting
  • MPM algorithm for max-flow
  • Analysis of Union Find
  • RMQ and LCA Problems I
  • Finding bridges and articulation points in graphs
  • ilog2 computation and bit twiddling tricks
  • Extended Euclidean algorithm and Montgomery reduction
  • Greedy algorithms in programming competitions
  • BigInt multiplication
  • Cubic spline interpolation
  • Stack-based machine simulation

  • Copyright © Ruijie Fang.