Skip to content
View SOF3's full-sized avatar

Block or report SOF3

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.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

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

Report abuse
SOF3/README.md

About Me

Programming languages

  • 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).

Scripting languages

  • jq: I use jq for all scripting only involving deterministic computation.
  • Python: I use Python as my calculator app and makeshift plotting tool.

Development environment

  • 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.

Statistics

Just some stickers like everyone else does because why not

Personal blog

I have started jotting down some of my weird opinions in the wiki of this personal repo.

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 ⏳.
  • 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.

General-purpose libraries

PHP

  • 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

Rust

  • 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.

JavaScript

  • rwlock-promise, a JavaScript library that implements mutually-exclusive and shared-exclusive locks with a Promise API

Programming language analysis

  • enclavlow, my final year project that performs Java flow analysis to verify SGX data security.

Cloud

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.

Game development

  • 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.

Robotics

I was a member of the HKU Robocon Team.

Android development

I developed these small apps for personal use over the years.

Discord bots

  • 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

Other accounts

More noise that nobody cares

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.

Pinned Loading

  1. await-generator await-generator Public

    Write code in async/await style in PHP using generators.

    PHP 124 15

  2. kubewharf/kelemetry kubewharf/kelemetry Public

    Global control plane tracing for Kubernetes

    Go 269 27

  3. include-flate include-flate Public

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

    Rust 137 7

  4. portrait portrait Public

    Trait-agnostic derive macros

    Rust 27 1

  5. dynec dynec Public

    An opinionated ECS-like framework

    Rust 12

  6. wordvec wordvec Public

    A thin and small vector that can fit data into a single usize.

    Rust 2