Xincheng Zhao  ·  Shanghai

Student developer and founder. I build tools for people who find things hard — then watch them use them.

Vernazza, Cinque Terre

How it starts

I don't start with an idea I love. I start with one real person who needs something. Then I build it, watch it fail, and change my mind.

Keep scrolling.

heart — zsh — 80×24
whoamixincheng zhao ♥ student · developer · foundercat languages.txtpython  c++  swift  javascript  scratchls projects/orat/  jiesuo-ai/  wuchanggang-river-park/  yk-barley/git log --oneline -3a1f3e9c ship Orat to the App Store
7d20b4e add image and video generation to Jiesuo.ai
03be8d1 find out it's wrong, try againstatusbuilding

About

A developer who starts from people.

I'm Xincheng Zhao — Heart, online — a student at YK Pao School in Shanghai. I like technology, I like watching the world closely, and I like the part where something I don't understand yet slowly starts to make sense: a piece of code, a river, a piece of music.

Most of what I make comes from one loop: build it, test it, find out it's wrong, try again. I'm less interested in finishing than in going one layer deeper than last time.

School
YK Pao School, Shanghai
Roles
Founder, Jiesuo.ai · Author, Orat · Co-Founder & Club Leader, YK Barley
Interests
Computer science, geography, maps, clean diffs
Status
Building

By the numbers

Small things,
measured honestly.

1 of 350winners of Apple's Swift Student Challenge 2026 — Orat is one of them.
200+registered users on Jiesuo.ai, more than 20 of them paying. The goal was ¥1,000; it passed ¥6,000.
2,700500-meter squares in my New York model of where police complaints cluster.
5.7 kmof Hangzhou's Wuchanggang River, proposed as a public park for residents.

01  /  iPad app

Orat.

Practice speaking without being watched.

Swift Student Challenge 2026 · 1 of 350 winners

Orat is a public-speaking trainer for people who find speaking terrifying. A friend froze at a podium, with dozens of eyes on him. My younger brother dreads speaking too, and I know the feeling myself. The same fear in three places meant the problem was common — and nothing in the App Store let any of us practice without an audience.

Pick a topic, raise a hand to start, and Orat runs the session like a light game: themed practice scenes, live feedback on voice, posture and gestures, a teleprompter for your own script, achievements, and a report to look back on.

  • Hand and body pose scoring via Vision; speech recognized with Speech — all on device
  • Custom teleprompter for any text you paste; report and history after every session
  • Training results after every session: score, five posture metrics and speaking rate in words per minute
SwiftSwiftUIVisionSpeechOn-device
The lesson I didn't expect

I handed the app to friends with no explanation. Almost nobody found the "OK" gesture that starts a recording, and the camera missed those who tried. I sorted the failures into two kinds — recognition errors and communication errors — and fixed each differently: a far wider tolerance for the camera, step-by-step guidance on screen for the people. That gap between what a developer assumes and what a user does was worth more than the code.

Orat in a live session: score out of 100, posture indicators and live subtitles
A live session: score, posture tips and your script as subtitles.

01  /  Inside Orat

01

Start.

Pick a theme, press Start, then raise an OK hand. A three-second countdown, and the stage is yours.

Orat home screen: theme picker, Keynote selected
02

Review.

Every session is scored and saved. Open one for the metrics, the feedback and the words you said.

Orat speech history: trend chart of scores and a card for each speech
03

Collect.

Trophies for score, practice count, points, streaks and themes turn rehearsal into a game.

Orat trophies: score, practice count and points trophies

02  /  Web app · Founder

Jiesuo.ai.

Every major model. One workbench. Pay for what you use.

Jiesuo.ai started in August 2025 as a fix for my own problem: one place to talk to the best language models — GPT, Claude, Gemini, Qwen and DeepSeek — and to generate images and video, without a dozen tabs. Then I noticed the people around me had the same trouble reaching top-tier image and video models.

Most of us aren't professional creators. We don't want a high monthly subscription on a platform like Lovart — about $20 a month, every month. We want to pay for what we use.

  • Switch models mid-thread without losing the conversation
  • Chat, image and video creation in one flow
  • Knowledge base, resource library and utilities alongside the work
GPTClaudeGeminiQwenDeepSeekStripe

I gave myself a number: ¥1,000. The site passed ¥6,000 — 200+ registered users, 20+ who pay.

Visit jiesuo.ai ›   The build story ↓
jiesuo.ai
Jiesuo.ai homepage: Big ideas. Made real.

02  /  The build story

From zero
to one.

Launched August 2025. What I didn't expect: the code was the easy part.

Registered users
200+
Paying users
20+
Joined via invite credits
100+
Revenue
¥6,000+
Costs
≈ ¥3,000 upstream API tokens · ≈ ¥300 servers
  1. The pain

    My problem — then everyone's.

    I built it to solve something I ran into myself. Then I saw how inconvenient it was for the people around me to reach top-tier image and video models. Most of them aren't professional creators, and a monthly subscription is a lot to pay for occasional use. Pay-as-you-go made more sense.

  2. Aug 2025 · Launch

    The first customer wanted a video.

    My first customer, a colleague of my father's, needed a video, and the site could only chat. I built video generation, then image generation after it.

  3. Getting paid

    Charging money took real work.

    Connecting domestic payment methods to a company account, debugging the overseas Stripe API, getting Stripe approved for credit-card payments — each step took far longer than the feature it unlocked.

  4. Finding users

    Classmates, parents' friends, search.

    I asked classmates, my parents' friends, and tried search-engine promotion. The thing that worked best was the invite system: inviting a friend earned credits, and that alone brought in 100+ new users.

  5. Incident · 5×

    I charged a user five times too much.

    A user generated a video through the Seedance API and a bug in my code deducted five times the right amount. I contacted them urgently and refunded the difference.

  6. Incident · 2 days

    An upstream service went dark.

    An image-generation service stopped for two days. I was in class and couldn't respond in time, so I built a ticket system: users submit a problem and it lands in my email.

What I took away

Coding was about 10% of the effort.

Coding · 10%Everything else · 90%

The other 90% was how to get users, how to deploy safely to production, how to make the site faster, how to make it feel better to use — and a first startup experience I'll keep for a long time.

03  /  Civic proposal · Grade 9

Five Bridges,
Ten Harbors.

A river park for Xihu District, Hangzhou.

With two classmates I wrote a proposal to turn the 5.7 km Wuchanggang River — a flood channel on the Beijing–Hangzhou Grand Canal system — into a public river park: ten small boat harbors at the best spots on the banks, walking and cycling paths on both sides, a shuttle between the five bridges, and a combined ticket with Xixi Wetland.

  • Compared satellite imagery two years apart against our own field surveys
  • Found the corridor stayed green while housing estates and tech parks multiplied around it
  • The argument: residents have no everyday park, but the banks are already good — so modest investment
  • Submitted to Xihu District, Hangzhou
5.7kilometers
5bridges
10harbors
Satellite view of the Wuchanggang corridor in 2019 Satellite view of the Wuchanggang corridor in 2017 20172019

Drag to compare the corridor, 2017 → 2019

04  /  Community service · Co-founder

YK Barley.

Tibetan highland barley — and the farmers who grow it.

My roommate and I started YK Barley to sell barley food and help farmers in Tibet earn more. We almost didn't reach the minimum number of founding members, and for a while few people joined. It grew much larger than where it started, and I lead it today.

The charity fair. Two weeks out, the club split: one team had spent a month on a milk tea that still wasn't good enough, another wanted to pivot to barley ice-cream bread. I didn't back a side. I made both arguments public and saw they wanted the same thing — recognition for their work — so I kept both products, gave the tea one last recipe revision, and moved extra hands to the bread.

What didn't work: WeChat and Xiaohongshu accounts to reach buyers beyond school. The traffic was poor, so we stopped.

I had assumed a leader's job was to decide who's right. It turned out to be finding out what each side was really asking for.

Charity fair, one afternoon (yuan)

Projected≈ 500
Actual gross — tea + ice-cream bread≈ 1,000

Double the projection; a few hundred yuan kept after costs. Both products were on the table, because both teams were heard.

05  /  Geography field study

Hands in the river.

Where the model and the place disagree.

In Yangshuo I walked a ten-kilometer stretch of the Longping River from upper to lower course, measuring flow velocity and sediment grain size and comparing every reading with Bradshaw's model. My legs went numb at each stop, but the numbers felt alive.

Most readings matched. One didn't: the upstream sediment was much finer than predicted. My hypothesis is that farming on the slopes — the old terraces — changed how the land erodes. I enjoyed wrestling with that gap more than any right answer in an exam.

  • Ten kilometers, upper to lower course; flow velocity and sediment grain size at every stop
  • Every reading compared with Bradshaw's model
  • Next question: overlay land-use maps on the sampling points to test the farming hypothesis
Geography HLRiver managementSoil conservation3D terrain models
Two students measuring river width and depth with ranging rods and a tape in the Longping River, YangshuoMeasuring the Longping River, Yangshuo

06  /  Machine learning · UC Berkeley

BeSAFE.

A city, divided into squares.

This summer, in a machine-learning program at UC Berkeley, I took the same question to a city. BeSAFE's central feature is a map overlaid with crime data, and a model that predicts where activity will concentrate over the next seven days. It takes weather, time, location and other minor factors, combines them into one dataset, and trains a Gradient Boosting model on it. The output is a heatmap on a grid.

The web app puts it on a map: pick a weekday and a time, filter by crime category, and plan a route anywhere between fastest and safest — by car, bike or on foot. For New York I divided the city into about 2,700 squares of 500 meters and modeled where police complaints cluster by weekday and hour. The lesson came back in another form: the data recorded complaints people reported, not crimes that happened — so the real place behind the numbers was, again, not quite the one in my model.

  • Inputs: weather, time, location and other minor factors
  • Model: Gradient Boosting trained on the combined dataset
  • Output: a seven-day forecast as a heatmap over a grid, about 2,700 squares of 500 m for New York
  • Web app: heatmap by weekday and time, crime-category filter, routes from fastest to safest
PythonMachine learningGradient BoostingHeatmap
Presenting BeSAFE at UC Berkeley, with a slide titled How does BeSAFE help the user?Presenting BeSAFE, UC Berkeley
BeSAFE — New York
The BeSAFE web app: a Manhattan map with a crime heatmap, a route from fastest to safest, and controls for date, time and crime category

The BeSAFE web app: a crime heatmap by weekday and time, and routes from fastest to safest.

Toolbox

What I reach for.

SwiftSwiftUIVisionSpeechPythonC++JavaScriptScratch
Machine learning3D terrain modelsSatellite imageryField surveysOn-device inferencePrototypingUser testing

How I work

Three habits.

01

Start from one real person.

A friend at a podium. My father's colleague who needed a video. A farmer in Tibet. Every project began with a specific person, not a feature list.

02

Watch them fail, then change.

I hand it over without explanation and watch where they get stuck. Then I sort the failures — is the tool too strict, or did they never know what to do? — and fix the right one.

03

Go one layer deeper.

A reading that doesn't match the model. A complaint that isn't a crime. The gap is where I want to be, so I keep asking one more question than last time.

Off the keyboard

Beats, rebounds,
and rallies.

An Ableton Live session: piano and bass clips on the arrangement, with compressor, overdrive, utility and EQ Eight on the device chainAbleton Live · 125 BPM

Music

Piano and guitar, self-taught. Jazz drums at a professional level. Composing electronic music in Ableton Live, and the school music club.

Basketball & badminton

Varsity basketball — 1.90 m, and yes, I can dunk.

Badminton too: mixed doubles for my college, all the way to the final.

Feel your heart
from here.

Currently building. Based in Shanghai.

Gmailheartcc520@gmail.com
Instagram@heartchanxd