- PHP: I mainly worked with projects related to PocketMine-MP during secondary school. Since PHP was unfortunately selected as the language for PocketMine-MP, the related projects used PHP as well.
- Rust: Most of my personal projects are in Rust since 2019. I also engage on the rust language community discord regularly.
- Go: I have been working on Kubernetes-related projects in ByteDance, where Go is the first class language (also quite unfortunately).
- jq: I use jq for all scripting only involving deterministic computation.
- Python: I use Python as my calculator app and makeshift plotting tool.
- Linux: i π use π arch π btw π (with GNOME).
- Bash: My login shell is Bash.
- Neovim: My setup is here.
- And I ssh over tmux over mosh over iTerm2 when I am stuck with a MacBook.
- Git: I always prefer merge commits over rebasing. Force-pushing branches that have been checked out by other people is a crime.
Just some stickers like everyone else does because why not
I have started jotting down some of my weird opinions in the wiki of this personal repo.
- 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 β³.
- Each section is sorted in descending order of my personal affection for the projects. Projects beyond a certain threshold of personal affection are not listed here.
- Only projects where I am/was a maintainer are listed here. Search on GitHub for a full list of my external contributions.
- await-generator, a PHP library that enables async/await pattern.
- thisrc, a PHP extension that observes the refcount of the
$this
object without inducing side effects
- portrait, a Rust proc-macro framework to write trait-aware proc-macro attributes such as impl-by-delegation.
- wordvec, a Rust library providing a thin and small vector with only 1/3 memory footprint of smallvec and comparable performance.
- include-flate, a Rust macro for attaching constants as deflated strings in the executable.
- dirmod, a Rust macro to smartly detect modules to include.
- phar.rs, a Rust library for the PHAR (PHp ARchive) format. Also includes a WASM app and a CLI command for phar manipulation.
- xylem, a Rust framework for statetul type conversion (a post-deserialize processing stage).
I have also created numerous tiny libraries in Rust, but those generally have very ad-hoc purposes and are not known to have any real users other than myself. Check crates.io for a full list of my crayon crates.
- rwlock-promise, a JavaScript library that implements mutually-exclusive and shared-exclusive locks with a Promise API
- enclavlow, my final year project that performs Java flow analysis to verify SGX data security.
These projects (and only these projects) are related to my work at ByteDance.
- Kelemetry, an observability tool to provide global control plane tracing for Kubernetes.
- Podseidon, a Kubernetes webhook to protect pod deletion in multi-cluster microservices.
- KubeAdmiral, a multi-cluster orchestrator and scheduler for Kubernetes.
- KubeZoo, a lightweight multi-tenancy solution for Kubernetes.
- PocketMine-MP, a reverse-engineered Minecraft server software.
- PocketMine-MP has a huge ecosystem of plugins, and most of my work in earlier years were related to developing tools and cohesion of the ecosystem, such as dependency management, build tools and common-dependency APIs.
- PocketMine-MP is an ancient project started in 2012. Some of my contributions include introducing modern tools and paradigms to the project.
- β³ dynec, an ECS library that focuses on type safety and optimized for specific scenarios.
- β³ Traffloat, a logistics simulation game written in Rust.
- β³ omniatc, an open-source air traffic control simulator game in Rust.
I was a member of the HKU Robocon Team.
I developed these small apps for personal use over the years.
- AndTransfer, a simple Android app that shares files to any transfer.sh server.
- Mentamatics, an app for practising mental arithmetic calculation.
- MySQLClientCompact, a small MySQL browser.
- bthint, to tell people to ``` their code blocks when asking for help.
- orbs.bot, a fan project that reverse engineers the API of the webgame orbs.it and mirrors live games
More about myself:
- I started coding in 2013, previously known as @PEMapModder, but I stopped using that account in an unsuccessful attempt to detox from my programming addiction in 2016 (which ended up to be a Hydra).
- I studied stuff related to computer science, statistics and mathematics in the University of Hong Kong, but I never got good grades in mathematics and never even liked statistics, so just forget it.
- I have been working in ByteDance since 2021 on Kubernetes and scheduling.
Interests:
- Please nerd snipe me with content related to aviation and classical music.
- I don't like working on problems without a deterministic solution. Thus, none of my projects are related to statistical learning, AI or LLMs.
- I never monetize my personal projects. I never work on anything directly related to e-commerce, advertisement. I will never work on anything directly related financial investment and trading.