Skip to content


  • Arctic Code Vault Contributor
  • Pro
Block or Report

Undergraduate Computing & Data Analytics major in the University of Hong Kong.

My Interests

  • My primary language is Rust.
  • My primary scripting languages are Bash, PHP, NodeJS and Python (in order of preference).
  • My primary JVM language is Kotlin.
  • My primary OS is Ubuntu (Alpine Linux for containers).
  • I deploy everything with Docker.
  • Most documents I produce are written in LaTeX or Markdown + Graphviz.
  • My primary IDE is Vim. (Yes, it is an IDE provided sufficient configuration)
    • Nevertheless, I do write IntelliJ plugins.
  • I like reviewing API and language designs.
    • I develop and contribute a number of general-purpose libraries.

"Primary" means "default choice" here, not "only choice"

Highlighted projects

I have started a lot of open-source projects for personal interest, but many are incomplete because of lack of time and financial support. Incomplete projects are marked as .

Some of these projects were not created or maintained by me, but I included them here as I believe I have contributed a substantial amount of code to them.

Programming languages

  • await-generator, a PHP library that enables async/await pattern
  • dirmod, a Rust macro to smartly detect modules to include
  • rwlock-promise, a JavaScript library that implements mutually-exclusive and shared-exclusive locks with a Promise API
  • thisrc, a PHP extension that observes the refcount of the $this object without inducing side effects
  • libglocal-idea-plugin, an intellij plugin for editing libglocal language files

I have also created numerous tiny macros and libraries in Rust, but those generally have very ad-hoc purposes and are not known to have any other users. Examples include serde-iter, count-write, qualify-derive, etc.

Game development

My programming career started from reverse engineering the game "Minecraft: Bedrock Edition". As a result, more than half of my repositories and contributions were related to the third-party server software PocketMine-MP, including its various modules and external plugin ecosystem. Most of my recent PHP projects are related to modernizing PocketMine-MP by adopting design approaches (such as dependency injection, asynchronous programming, MVC, etc.) from other programming languages and ecosystems.

Operating systems

  • gping, a command-line visualization of the ping command
  • include-flate, a Rust macro for attaching constants as deflated strings in the executable.
  •, a Rust library for the PHAR (PHp ARchive) format. Also includes a WASM app and a CLI command for phar manipulation.
  • enclavlow, my final year project that performs Java flow analysis to verify SGX data security.
  • signed-vimrc, a vim plugin that loads PGP-signed .vimrc files in cwd
  • pathetique, an object-oriented abstraction of OS paths in PHP


I am a member of the HKU Robocon Team.

Web development

  • octorest, generated Rust bindings for the GitHub API (can adapt to other OpenAPI implementations too)
  • webcord, a webapp + discord bot that mirrors a discord chat

Android development

Discord bots

The Discord bots I write follow minimalistic approach and rarely have sophisticated framework.

  • bthint, a bot that tries to extract syntactically correct code from chat messages
  • boredphoton, a minimalistic bot for alerting spam raids
  •, a fan project that reverse engineers the API of the webgame and mirrors live games
  • webcord, a webapp + discord bot that mirrors a discord chat

Other accounts


  1. A server software for Minecraft: Bedrock Edition in PHP

    PHP 2.3k 1.4k

  2. A library to use async/await in PHP using generators.

    PHP 37 7

  3. Automatic `mod` declaration with visibility/re-export customization, conditional compilation and more.

    Rust 8

  4. A variant of include_bytes!/include_str! with compile-time deflation and runtime lazy inflation

    Rust 88 2

  5. 1
    ### Keybase proof
    I hereby claim:
      * I am sof3 on github.

Contribution activity

April 2021

Created 2 repositories
Reviewed 1 pull request in 1 repository
poggit/libasynql 1 pull request

Created an issue in superbobby2000/SocialSpy that received 10 comments

Memory leak

Main::$SocialSpy will keep on increasing if the user does not disable it before quitting.

Opened 13 other issues in 12 repositories
2 open
1 open
1 open
1 open
1 open
1 open
1 open
1 open
1 open
1 open
1 open
1 open
Started 1 discussion in 1 repository
78 contributions in private repositories Apr 1 – Apr 15

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