Skip to content
View quantumsnowball's full-sized avatar
✔️
Good
✔️
Good
Block or Report

Block or report quantumsnowball

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
quantumsnowball/README.md

Quantum Snowball

Repositories Homepage Hashnode Email Twitter LinkedIn Leetcode

Hi there 👋

  • 🔭 Ready to learn any technology to solve real life problems
  • 🔭 Worked as a quantitative research analyst and proprietary trader in Hong Kong
  • 🔭 Former freelance financial writer of Apple Daily Hong Kong
  • 🌱 My scope of interest includes:
    • ⚡web3, blockchain, web dev, cloud
    • ⚡quantitative finance, algorithmic trading, machine learning
    • ⚡basically anything about programming or investment
  • 📫 How to reach me: quantum.snowball@gmail.com

My Work

A brief description about some of my work done in the past. Currently this repo contains everything I've ever developed, but in the future I may manage them into different repos.

Apps

When I need a software but I can't find one really suitable, choose one which is pretty close to my needs, then fork it and modify it. Well, if none of them are even close, I will build it from scratch.

  • btbox - a simple and easy to use trading strategy backtesting library written in Python

    python numpy pandas jupyter plotly

    When you have a trading idea in your mind, but you are not sure if it is going to work? Most of the time you want to backtest your idea first using historical market data before risking your real money. Usually this can be done using a spreadsheet, but soon you find that spreadsheet only works for simple strategies. Also you will need a robust way to measure 'how-good' a strategy by calculate its performance metrics, such as Sharpe Ratio or Max Drawdown. Well, you have come to the right place! btbox is here to provide a robust solution for strategy backtesting. It is most suitable to use in a Jupyter notebook. Most usage cases and results can be found in trading-lab. Or go to the tests folder of the dev branch for more reference. This library is still under active development and the API may subject to changes.

  • Tabman - a telescope.nvim plugin

    neovim lua

    If you use Neovim as an IDE, and mainly use telescope.nvim as a file picker, then you may find my plugin to be the long wanted missing tabpages picker.

  • link-finder - a Chrome extension that can help you capture web traffic urls

    typescript react

    Normally, you use the Chrome DevTool to monitor network traffic. But some website may stop running when the DevTool is opened, so I write a chrome extension to query the chorme API for all network traffic, avoiding the DevTool altogether.

  • waylandmap - a key mapping app for Linux that works under X11 or Wayland

    python pypi linux

    This project is distributed as waylandmap on PyPI.org. The best use case I found for myself is to map RightAlt + hjkl to be the arrow keys by making RightAlt to be a 3rd-level shift key.

  • opensubtitles-dl - you can search opensubtitle.org directly in the terminal

    python pypi

    This project is distributed as opensubtitles-dl on PyPI.org.

  • wide-lihkg-userscript - sideload custom CSS into lihkg

    javascript css

    This project is distributed as Wide LIHKG on greasyfork.org.

Web Dev

Web dev is easy but also can be difficult. It is easy when you have a boilerplate to start with, but can be difficult when you need to build everything from scratch. I have built some starter projects, while trying to include some most common web dev technologies into them.

  • Furigana - a handy Japanese learning and translation app, featuring Furigana, Romaji and English/Chinese translation in a single interface

    typescript nextjs react redux mui

    Furigana is an easy to use interactive web app aims to help you learn Japanese. It is currently hosting at furigana.quantumsnowball.vercel.app as a PWA. When you copy and paste a Japanese text, the app should show the most essential parts to read, pronounce and understand the language. When you edit the source, the app will show the updated Furigana, Romaji together with English/Chinese translation. You can also save the source and translation into favorites, then you can restore to view them later. Feel free to build your own Japanese learning notebook by saving common phrases and sentences to favorite, and backup/restore your notebook by the import/export feature. Happy learning Japanese!

  • Bayes - a probability playground showcasing the Bayes Theorem

    typescript react nextjs redux mui

    Bayes is a simple interactive web app aim to provide a playground for easy understanding of the Bayes Theorem. It is now hosting on bayes.quantumsnowball.vercel.app as a progressive web app. You can edit, save and restore variety of different hypothesis and evidence combinations to come up to a posterior probability. Please feel free to install it on your phone as a handy assistant for solving probability problem.

  • Quotes - a beautiful mobile-friendly react app, fetching famous quotes by celebrities

    typescript react redux mui

    This project has been built and hosting at quotes.quantumsnowball.vercel.app. It is mobile-friendly, can be installed as a PWA using mobile Chrome browser.

  • Todos - a todos-list app with login and OAuth2 authentication based on JWT

    typescript nextjs OAuth2.0 react mongodb redis serverless

    This project is a rewrite serverless version of the former MERN boilerplate project todos-domain--serverful. Now the project is in production and deployed as todos.quantumsnowball.vercel.app. The main reason to rewrite this app is to convert the backend to serverless functions. Instead of relying on centralized servers, being serverless means distributing the backend api endpoints into pieces and run them as stateless functions, providing much bigger scaling potential for any apps. The rewrite version also make use of Next.js implementing server-side rendering (SSR), further enhancing the app experience.

    Todos is a todo-list app with a authentication system using React and JWT. User can register an account, login to his account, and then add todo checklist items. The state should be saved into a database and user should be able to authenticate using JWT token and get back the checklist. You can also login using a Google account through OAuth2.0.

    Currently only the serverless version of this app is in production. Both serverless and serverful version of this app are ready-to-use boilerplates for starter login app. The serverless version can be easily deployed to cloud platforms like Vercel, while the serverful version needs a dedicated Node server to host the express app or its docker container.

  • github.io - github user page repo, holding the source code of the current website

    typescript react redux tailwindcss

    This project is the source code for my github user page. The production version is currently hosting at quantumsnowball.github.io. The content of this website is based on the git submodule github-profile-data, which is also the content generator of my github profile page.

  • js_todo_list_app - a pure javascript todos starter

    css javascript css

    Sometimes you just want to code something using pure js, just to learn the basics.

Apple Daily - Quantitative Research

python jupyter numpy pandas scipy scikit-learn

These are all my source code covering my reserach when writing for Apple Daily Hong Kong.

Research

python jupyter numpy pandas

I write code to research the financial market all the time.

Data Science

I have done some data science and machine learning research projects in the past. Some interesting project are listed here as well.

  • toy-openai-gym-collections - all about deep reinforcement learning

    pytorch openai numpy

    Try to use use deep reinforcement learning models to play computer games! It was not easy at all.

  • tensorflow keras pytorch scikit-learn

    These are very common machine learning and deep learning datasets.

  • python jupyter pandas

    To solve any probability problems, you can either use maths to solve it by first principal, or use programming to solve it by simulation.

dotfiles

I am using these configs on Linux or Mac terminal.

  • nvim - my Neovim config written in lua

    neovim lua

  • tmux - my tmux config repo

    sh sh

  • zshrc - my zshrc config repo

    sh

  • settings - my other config files repo

    sh

Pinned

  1. waylandmap waylandmap Public

    A key mapping app for Linux that works under X11 or Wayland.

    Python 2

  2. opensubtitles-dl opensubtitles-dl Public

    Python 2

  3. terra-luna-ust-revival-analysis-May-2022 terra-luna-ust-revival-analysis-May-2022 Public

    Terra LUNA UST Revival Plan Analysis

    Jupyter Notebook

  4. nvim-packer nvim-packer Public

    A ready to use custom nvim config

    Lua 1

  5. AppleDaily20191216 AppleDaily20191216 Public

    Python 4 1

  6. AppleDaily20200810 AppleDaily20200810 Public

    Jupyter Notebook 6 1