To my dearest Mom, Dad, and Grandma who teach me how to love this world with ❤️
I'd like to take this moment to thank Yahoo!, my former employeer, who taught me to love Software Engineering and how to write the best-quality software. 4 years of being her employee nourished my life philosophy that the end of Software Development in itself is not about money, but people, passion, and love. Thank you Yahoo!
This page is also dedicated to my mentor Rick Jensen, my life-long teacher on Software Engineering. Having been the best tech leader I've seen, he treats software design, programming, and code review as a work of art and loves Software Engineering by ❤️, which is why I will follow his philosophy and, with tremendous sincerity, respect him as my role model in tech world
-
I started learning English as a Chinese student far later than my contemporaries. When I took my first English language exam 1 month after the moment I didn't even know how to spell "hello", I got the highest score in my Middle school class among those contemporaries
-
When I studied abroad in US, I picked up German language class for fun and I can still remember how I spent just little effort to spoke better German than those Indo-European-native language speakers
-
I love languages
- I have been studying ancient languages, such as Ἑλληνική and 𐎱𐎠𐎼𐎿, because they are interesting, engaging, and challenging, and, most of all, fun, in their own right
- I have been nonsensical with languages
- I have been facinated by how just few dozon alphabets and interestingly rigorous syntax rules allow us to live through an endlessly fabulous 5000 years of human history
Today, I extend my passion to the career of Natural Language Processing AI, becuase I believe in the power of language, the greatest invention in human history that, once being open-source technologized, shall advance the way we interact with this world
I'm interested in 5 topics of tech world:
- Project Management (I'm still playing with LeetCode (see right) today as part of designing a more scientific hiring process for my team)
- NLP Machine Learning
- Immutable Infrastructure DevOps
- React-based Frontend Dev with little more focus on the UI design
- No-Spring Webservice Dev
I used to study technologies by blogging extensively. Since I'm running a company, my obligations right now are more on doing well for my employees and for my company, which leave me literally no time for the blogging. I do, however, keep studying techs in a, what I found, more efficient approach below.
Inspired by large enterpeise hosting their own private mirrors of public Maven Central, I forked documentation source codes of all technoloteis I'm interested in and publish them to GitHub Pages, which result in the following curated list. By these forks under my account, I'm writing my tech blog with thousands of helping hands around the world. In addition, I could also add my own study notes on top of their documentations:
-
ASR: CMU Sphinx
-
Reinforcement Learning: OpenAI RL
-
Hugging Face: Tokenizers Node/Python API
-
Tools scikit-learn | GQL | State of AI Reports
-
Knowledge Graph Knowledge Graphs | Data Visualization | NetworkX | NetworkX Guides | Memgraph NextworkX Guide | react-force-graph | spaCy | Stanford SNAP | TextGrapher
- Knowledge Graph Embedding (KGE) AmpliGraph | Knowledge Graph Embeddings Tutorial: From Theory to Practice
-
LLM
- Llama2: llama.cpp | Llama on Android/iPhone
- Chinese LLM: Chinese-Mixtral | Llama2-Chinese | Chinese-LLaMA-Alpaca-2
- 浙江大学 LLM 生态体系: KnowLM | DeepKE | NeuralKG | OpenUE | EasyInstruct | EasyEdit
- LLM Reasoning: world models | LangChain | LLM Reasoning
- Packer | Terraform | Terraform CDK | Consul | Vault | Packer Plugin Scaffolding | Terraform Provider Scaffolding
-
Install Guide | Doc Contrib Guide | Virtual Machine Image Guide | API Quick Start Guide | Glossary | Swift | python-swiftclient
-
| Elastic Stack | Elasticsearch | Kibana | Logstash | Beats
-
VirtualBox
-
Start VM from command line
VBoxManage startvm <vm_name> --type headless
-
Stop virtual machine
VBoxManage controlvm <vm_name> poweroff
-
-
To open guest machine network settings to make sure it's attached to NAT
-
Then go to Advanced -> Port Forwarding and add these settings:
- The IP fields can be left empty.
- Name: ssh (or whatever you like)
- Protocol: TCP
- Host Port: 2222 (or any other port you like)
- Gust port: 22
-
Reboot host machine and ssh by
ssh -p 2222 virtualbox-user-name@localhost
-
-
I have a backend-dev origin, but the reason I love frontend-dev, from a technical perspective, is, while not always the case in backend-dev, frontend-dev appears to be a world of functional programming, which I like a lot (subconcisously)
- UI Design Component-Driven UI Development | tailwindcss
- React styled-components | react-bootstrap | react-icons | yarn | Monorepo | TypeScript | React + TypeScript Cheatsheet| Babel | Jest | testing-library | Cypress | Argos | Prettier | typescript-eslint | TypeDoc | ExpressJS | Redux | React Redux | Redux Toolkit | redux-observable | RxJS | InversifyJS | GraphQL Relay | Immer | Lexical | i18next | react-i18next
- Knowledge Graph Memgraph Orb | three.js | D3-graph-gallery
Frontend | Platform 9¾ | Backend
Note
In my architectural view, not only do BE & FE not couple with each other, but also they do not even KNOW the existence of each other. They sit in two different universes. The two universes are completely disjoint and nothing that happens in any one of them is causally linked to what happens in any other one. They are only aware of a "boundary" defined by GraphQL or, if not possible, OpenAPI
- GraphQL: GraphQL | GraphQL Specification | GraphQL Java | Principled GraphQL
- JSON Schema
- OpenAPI: The OpenAPI Specification | Learn OpenAPI | OpenAPI Tooling | OpenAPI Map
-
Webservice JSR-330 Dependency Injection standard (Javadocs) | Jersey | GlassFish HK2 | Jetty | Groovy Spock | Owner Config | Testcontainers for Java | JaCoCo | ReactiveX | RxJava | JSON:API | Hjson | Querydsl
- Hibernate ORM Introduction (PDF) | Quickstart | User Guide (PDF) | Hibernate Query Language (HQL) (PDF) | Integration Guide | Javadocs | Topical Guides | Logging | Dialects | Migration Guide
-
Security Let's Encrypt | Certbot | Kong Gateway (Docker Compose) | JWT Token(debugger) | Logto | Keycloak Documentation | Keycloak Documentation (Extra)
-
Database Apache CouchDB | Hadoop | Hive (Documentation) | Swift Java | SQL style guide
TiddlyRoam (template file) | Write the Docs | Docusaurus | Bit Twiddling Hacks | Google Engineering Practices Documentation | Git | Changelog | Studying Agile | KTX2 File Command Line Utility | Gource | Turing machine visualizer
- Anki: Anki's manual | AnkiMobile Manual