Skip to content
View RyanChen0311's full-sized avatar

Block or report RyanChen0311

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.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

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

Report abuse
RyanChen0311/README.md

Hi, I'm Ryan Chen πŸ‘‹

Software Engineer with a background in Electrical Engineering & Computer Science.
Passionate about systems programming, network algorithms, and building practical web tools.


πŸ› οΈ Tech Stack

C C++ Python JavaScript React HTML5 CSS3 TypeScript Tailwind CSS PostgreSQL


πŸš€ Projects

Project Description Tech PC Mobile
SocratesApp AI-powered Socratic learning system β€” generates a DAG skill tree of 12 knowledge nodes, scores responses via Claude API (0–20 pts), diagnoses misconceptions, and switches to teacher mode after 3 consecutive errors C++, Drogon, PostgreSQL, D3.js πŸ–₯️ β€”
ip-lpm IPv4 routing engine using Binary Trie for Longest Prefix Match β€” validated against real BGP data from RIPE NCC C β€” β€”
zhwiki-ir-mcqa Unsupervised Traditional Chinese multiple-choice QA system β€” builds inverted index over 1.2M Wikipedia articles, scores answer options via set intersection counting with jieba noun-only POS filtering, no ML or GPU required Python β€” β€”
path_elevator Filesystem path-traversal tool β€” displays every ancestor directory at once, like riding an elevator floor by floor C++ β€” β€”
calorie_survival 7-day survival strategy game balancing calories, finances, exercise, and body weight across four daily phases β€” PWA with offline support, Zustand state persistence, and JSON-driven game balance config React 18, TypeScript, Vite, Zustand, Tailwind CSS πŸ–₯️ πŸ“±
life-map Interactive graph visualizing 10 core life dimensions (career, health, habits, finance, etc.) with influence pathways, Canvas-rendered connections, and animated node glow effects HTML5, CSS3, JavaScript πŸ–₯️ β€”
sleep-tracker Interactive sleep pattern visualizer with SVG timeline charts and deviation analysis between regular and actual sleep schedules React, Vite, Tailwind CSS πŸ–₯️ β€”
parkour Browser-based parkour game with phantom ghost trail effects β€” four character classes, rainbow HSL color picker, speed control, and touch/keyboard controls; 23 Vitest unit tests with GitHub Actions CI HTML5, CSS3, JavaScript πŸ–₯️ πŸ“±
vision-simulator Real-time vision condition simulator covering myopia, hyperopia, astigmatism, and presbyopia with adjustable severity and Taiwan optical prescription standards HTML5, CSS3, JavaScript πŸ–₯️ πŸ“±
nutrition-calculator Calorie and macronutrient calculator using ACSM MET standards and a 24-hour energy metabolism model β€” dynamically adjusts protein intake by exercise duration and covers 11 vitamins and 10 minerals per DRI standards JavaScript πŸ–₯️ πŸ“±
PageScroll TXT reader with smart paragraph/sentence-aware pagination JavaScript πŸ–₯️ β€”
spell-english Vocabulary flashcard app with Web Speech API pronunciation and localStorage JavaScript πŸ–₯️ πŸ“±
discount-calculator Bulk discount calculator with buyer and seller profit margin views JavaScript πŸ–₯️ πŸ“±
nutrition-hunter Daily nutrition tracker with hexagon radar chart (Canvas 2D), two-stage greedy food recommendation algorithm, Mifflin-St Jeor TDEE calculation, and a 33-item food database with localStorage persistence JavaScript πŸ–₯️ πŸ“±

⭐ Featured Projects

SocratesApp β€” Socratic AI learning system built with C++ (Drogon) + Claude API + PostgreSQL.

I owned the full product design β€” learning flow, evaluation logic, and architectural decisions:

  • Skill graph: Dynamic DAG of 9–12 nodes across 3 branches; each node requires 5 questions to ensure token-cost-predictable evaluation
  • Scoring: Claude evaluates every response on a 0–20 continuous scale (not binary pass/fail), enabling partial-credit diagnosis; 60/100 passing threshold mirrors real academic credit standards
  • Teacher mode: Triggered by 3 consecutive errors (not cumulative) β€” consecutive failures isolate a genuine conceptual gap within the same causal chain, whereas cumulative counting conflates unrelated mistakes
  • Tech choice: C++ chosen deliberately to build and demonstrate production-level systems programming skill alongside AI integration

AI was used as a development accelerator throughout β€” for code generation, iteration, and refinement β€” while all design decisions and their rationale remained mine.

ip-lpm β€” High-performance IPv4 routing engine implementing Longest Prefix Match via a 32-level Binary Trie, written in C and validated against real-world BGP data.

  • Why Binary Trie over Hash Table: LPM requires finding the longest matching prefix β€” Hash Table can only do exact match, so it would need up to 33 separate lookups (one per prefix length /0–/32) per query. Binary Trie resolves this in a single O(32) traversal, naturally recording the deepest match along the way
  • Why C: Manual malloc/free throughout β€” no RAII, no abstractions β€” to demonstrate low-level memory management and stay conceptually close to how real router FIB implementations work
  • Validation: Tested against real BGP routing tables from RIPE NCC Route Collectors (Nov 2021), covering 800k–900k prefixes across 5 regions (rrc00/01/03/04/05) β€” self-generated test data cannot replicate real-world prefix distribution and edge cases

zhwiki-ir-mcqa β€” Unsupervised Traditional Chinese multiple-choice QA system built with Python, no ML or GPU required.

  • Scale: Builds an inverted index over 1.2M Wikipedia articles β€” no preprocessing pipeline, runs entirely on local CPU
  • Answer scoring: Set intersection counting between question context and each answer option; jieba POS filtering keeps nouns only, removing stop-word noise without a curated stoplist
  • Why noun-only: Nouns carry the highest semantic density in Chinese; filtering shrinks per-article term sets and sharpens intersection signal without losing topical meaning
  • Why classical IR: Demonstrates that a well-built inverted index over a large enough corpus can be competitive on structured QA without any model weights or fine-tuning

🧠 Engineering Highlights

Design decisions I made across AI-assisted projects β€” where I owned the system structure and engineering requirements, and used AI to implement them.

calorie_survival

  • Four-phase daily loop: Designed morning / afternoon / evening / night as four distinct decision points, each with its own calorie, finance, and exercise trade-offs β€” the phase structure is the core game loop
  • JSON-driven balance config: Required all numeric constants (calorie costs, weight-change rates, event weights) to live in a single config file rather than hardcoded β€” keeps tuning a data edit, not a code change
  • PWA + offline: Specified service worker and manifest from the start so the game runs without a network connection and can be installed on a home screen

parkour

  • Testing requirement: Specified 23 unit tests covering collision, scoring, and ghost trail logic, plus GitHub Actions CI on every push β€” deliberately held a browser game to the same engineering standard as production software
  • Four character classes: Designed each class to alter speed, jump height, and trail color palette independently, so class choice has meaningful mechanical impact
  • Ghost trail concept: Defined the phantom trail as a position-history replay at decreasing opacity β€” gave AI a clear behavioral spec to implement

πŸ“« Contact

Email

Pinned Loading

  1. SocratesApp SocratesApp Public

    AI-powered Socratic learning system β€” asks questions instead of giving answers

    C++

  2. ip-lpm ip-lpm Public

    High-performance IPv4 routing engine in C using Binary Trie for Longest Prefix Match (LPM)

    C

  3. calorie_survival calorie_survival Public

    A 7-day survival strategy PWA where you manage calories, exercise, and budget to stay alive

    TypeScript

  4. zhwiki-ir-mcqa zhwiki-ir-mcqa Public

    Unsupervised Traditional Chinese MCQA via Wikipedia-scale inverted index and jieba POS tagging β€” no model training required

    Python

  5. path_elevator path_elevator Public

    A filesystem path-traversal tool β€” view every ancestor directory at once, like riding an elevator floor by floor

    C++

  6. nutrition-hunter nutrition-hunter Public

    Daily nutrition tracker with hexagonal radar chart visualizing 6 key nutrients. BMR/TDEE calculator, smart food recommendations, and food database.

    JavaScript