Hobby
Electronics Making
My electronics work ranges from discrete transistor logic to relay-driven mechanisms and CM600HA-24H IGBT-module-driven DRSSTC systems. I like discrete-component circuits with many visible parts, clean physical structure, and the visual order that comes from components arranged neatly.
Hardware Music Box
A hardware music box built entirely from transistors, without integrated circuits. The interest is in making timing, switching, and sound generation work through discrete components instead of hiding the logic inside chips.
Donated to Beijing University of Technology.
Relay Mechanical Clock
A relay-based clock that uses transistors for driving and flyback diodes for relay protection, so the relays can switch reliably without damaging the driving circuit.
Relay ALU
A relay-based ALU project where Arduino handles the remaining CPU-side control while the ALU itself is implemented with relays. ULN2803 driver arrays are used to drive the relay coils cleanly from logic-level control signals.
IRFP260N ZVS High-Frequency Driver
A ZVS high-frequency driver built with IRFP260N TO-247 power MOSFETs, used for high-current resonant drive and induction-heating-style experiments. The project focuses on power device selection, resonant tank behavior, thermal handling, and heavy-current wiring.
Donated to Beijing University of Technology.
CM600HA-24H DRSSTC
A Dual Resonant Solid State Tesla Coil built around CM600HA-24H IGBT modules. This project involves high-voltage resonance, power electronics, gate driving, protection circuits, tuning, and real hardware debugging.
CM600HA-24H VVVF
A VVVF inverter project based on CM600HA-24H IGBT modules, covering three-phase inversion, PWM modulation, DC bus power, gate driving, and motor-control debugging. This project leans toward heavy industrial power electronics.
Donated to Beijing University of Technology.
AI Full-Stack Architect
One of my current long-term hobbies is training myself into an AI Full-Stack Architect: using AI-assisted engineering through Test-Driven Development (TDD), Spec-Driven Development (SDD), and Verification-Driven workflows, rather than Vibe Coding or intuition-only programming, to produce industrial-grade code and to design, build, verify, and maintain complete internet technology infrastructure end to end, from product logic and frontend interfaces to backend services, deployment, observability, automation, and long-term operations.
Since May 2025, I have used AI tools at large scale and built substantial AI-Augmented Engineering Scope collaboration experience. I have directly encountered many recurring failure modes in AI-assisted engineering, so my focus is on clear Specifications, careful Review, Debugging, Integration, and Verification instead of simply accepting generated code.
The work is not about blindly generating pages or code. I use Codex / Claude Code inside a Human-in-the-Loop workflow and push the collaboration through Spec-First, Review-Driven execution, with Test-Driven Development (TDD), Spec-Driven Development (SDD), and Continuous Integration / Continuous Delivery (CI/CD) practices used to improve readability, cross-platform support, maintainability, long-term maintenance efficiency, security, and stability.
AI assistance greatly accelerates the overall pace of restructuring and cleanup, and when dealing with large, interdependent documentation sets, it has a natural advantage in structural organization, terminology alignment, and cross-document revision. That helps reduce the common problem of updating one section while leaving related documentation behind.
My view is that AI-assisted programming depends on architectural ability and continuous trial and error. Only by working with AI at very high volume can a person understand where AI is strong, where it fails, and how to adjust the collaboration model in time. Vibe Coding is closer to giving AI a vague one-line request such as "build me a website like Amazon." TDD and SDD are different: they require decomposing the work first, making tasks as small and explicit as possible so the AI context window does not overload and produce serious hallucinations.
Doing that well requires an architect who understands microservice architecture, system boundaries, and code coupling points, rather than blindly asking AI to improvise. That is the real core of AI-assisted engineering. If a written Spec still causes generated function names, class names, or variable names to change every time and create confusion, then the Spec is the problem: it is not detailed enough. A Spec should let AI handle fine-grained implementation details and repetitive labor, not let AI independently decide the architecture or choose whether a place should follow KISS, DRY, or another design tradeoff.
Architecture must still be designed by the human. AI is a Worker and Accelerator, not the owner of system judgment. It can speed up repetitive implementation, restructuring, documentation cleanup, and other forms of engineering labor, but the thinking must remain human. The human must always know what is being built, why it is being built, and how the system is supposed to hold together; if that clarity is lost, the project is already drifting toward failure and should often be deleted and rebuilt rather than patched blindly.
The architect must understand the whole system from the beginning; otherwise the final system will inevitably drift in the wrong direction. AI-assisted programming is already a major trend, and repetitive work will inevitably be replaced. At the same time, SDD and TDD burn an extreme amount of tokens, because everything follows the Spec: when the Spec changes, the code often has to be deleted and rewritten at scale, at least across major versions, and old code needs to be distilled back into reusable Skills and Specs.
Spec-First engineering used to be something many engineers deeply hated, because Specs were often obsolete documents full of version drift, written only because a release process forced them to exist. In AI-assisted engineering, that mindset has to be inverted. Otherwise, a person will be left behind by the era. The engineer has to move from being only the person who executes the work into a role closer to a PM, Architect, and Specification Owner. This is an extremely difficult transition.
It is not outsourcing the brain to AI; it requires real engineering understanding, real project experience, and the ability to think purely and deeply about why systems collapse, then distill those lessons into better Specifications and Workflows. The most important thing becomes understanding every technology stack and every implementation detail before using it, because AI is much less likely to make the right decision if the human does not understand the toolchain first.
At the same time, project decisions, acceptance, consolidation, and final editorial control remain Human-in-the-Loop, forming a strict barrier against AI hallucinations and preventing unverified information from entering the final content.
AI collaboration can become an endless battle against cognitive load, pushing the limits of how much architectural pressure the mind can hold. A Spec must be something the human can read first, understand deeply first, and use to anticipate the real problems first. That requires architectural ability: knowing which wheels should not be reinvented, and knowing which mature wheels already exist. Maybe one day AI will fully replace humans and even produce complete architecture by itself, but that would require extreme context capacity and extreme needle-in-a-haystack retrieval ability. Current AI still seems far from that level, and even if it becomes possible in the future, it will likely be very expensive.
These public-facing snapshots show how the surrounding documentation sites, repository presentation, and project entry points are being shaped into a more readable engineering surface.
Cat
This is my cat, Charlie. He was abandoned at Petco and later adopted by me.
Piano
I like Romantic piano music, especially Chopin and Liszt. I tend to enjoy music with a clear singing line, dramatic contrast, and enough technical brilliance to feel alive without losing lyricism.
Mozart
- Piano Sonata No. 11 in A major, K. 331
- Piano Sonata No. 16 in C major, K. 545
- Lacrimosa from Requiem, K. 626
Beethoven
- Beethoven - Piano Sonata No. 8 in C minor, Op. 13 (Pathetique)
- Beethoven - Piano Sonata No. 14 in C-sharp minor, Op. 27 No. 2 (Moonlight)
- Beethoven - Piano Sonata No. 17 in D minor, Op. 31 No. 2 (Tempest)
Chopin
- Nocturne Op. 9 No. 2
- Nocturne Op. 9 No. 1
- Nocturne Op. 55
- Chopin - Nocturne Op. 48 No. 1
- Waltz Op. 34
- Chopin - Waltz Op. 64 No. 1
- Chopin - Waltz Op. 64 No. 2
- Chopin - Waltz in A minor, B. 150, Op. posth.
- Grande Valse Brillante Op. 18
- Fantaisie-Impromptu Op. 66
- Ballade No. 1 Op. 23
- Chopin - Etude Op. 10 No. 5 (Black Key)
- Chopin - Etude Op. 25 No. 5 (Wrong Note)
- Chopin - Etude Op. 10 No. 12 (Revolutionary)
- Chopin - Etude Op. 10 No. 4 (Torrent)
- Chopin - Etude Op. 10 No. 1 (Waterfall)
Liszt
- Liebestraum No. 3
- Un Sospiro
- Consolation No. 3
- Liszt - Grandes Etudes de Paganini No. 3 (La Campanella)
- Hungarian Rhapsody No. 2
- Liszt - Transcendental Etude No. 4 (Mazeppa)
Ragtime
- Scott Joplin - Maple Leaf Rag
- Scott Joplin - The Entertainer
- Scott Joplin - Peacherine Rag
- Scott Joplin - Magnetic Rag
- Temptation Rag
- Jelly Roll Morton - The Crave
- Randy Newman - You've Got a Friend in Me
- Alan Menken - Friend Like Me
Cheese
Kroger Cheese Notes
One thing I enjoy is going to Kroger and looking through different cheeses. I have tried a lot, and honestly many of them taste closer to each other than people make them sound, but I still like noticing the small differences. Most of the time I use cheese for sandwiches, and I usually prefer clean, original flavors or slightly sweet ones. My current favorites are aged cheddar and Swiss.
- Aged Cheddar / Extra Sharp Cheddar: sharp, dense, nutty, and sometimes a little crystalline when aged. This is one of my current favorites.
- Swiss / Emmental: mild, nutty, and easy to use in sandwiches. The classic holes make it recognizable, but I mostly like its clean taste.
- Gruyere: a stronger Alpine-style cheese with nutty, savory flavor and excellent melting texture.
- Brie: soft, creamy, and mild, with an edible bloomy rind. Good when paired with crackers, honey, or jam.
- Gouda / Aged Gouda: young Gouda is smooth and slightly sweet; aged Gouda can become firmer, nuttier, and more caramel-like.
- Parmesan / Parmigiano-Reggiano: hard, salty, and umami-heavy. I see it more as a finishing cheese for pasta, salad, or soup than a sandwich cheese.
- Raclette: built for melting, rich and savory, good with potatoes or grilled sandwiches.
- Fontina: mild, creamy, and very melt-friendly, useful as a base when I want a softer sandwich texture.
- Goat Cheese / Chevre: tangy, soft, and fresh-tasting. Better with honey, fruit, or salad than in my usual sandwich routine.
- Fresh Mozzarella / Burrata: milky and fresh; burrata is creamier inside and works best with tomato, olive oil, and basil.
- Feta: salty, crumbly, and tangy, more Mediterranean-style than sandwich-style for me.
- Oaxaca: stringy and melty, useful for quesadillas or hot sandwiches.
- Havarti: soft, mild, and creamy, an easy everyday sandwich cheese.
- Dubliner / Irish-style Cheddar: sharper and nuttier than basic cheddar, with a slight sweetness.
Cheese Festival Trial
- Blue Cheese: I tried this at a cheese festival, not as a Kroger regular. The blue-green mold veins make it salty, funky, and much more intense. I can appreciate it, but it is too expensive and not my everyday sandwich choice.
Juice-Forward Drinks
I also like making light, sparkling, juice-forward drinks at home. I usually buy sparkling wine or mixers from Costco, then make something refreshing myself. The point is not heavy alcohol; I prefer drinks that taste like fruit juice first, with only a small amount of alcohol when I use it.
Salt and Citrus
- Paloma: tequila, lime, grapefruit soda, and a salt rim. I like the grapefruit bitterness, citrus, salt, and bubbles together.
- Salty Dog: vodka or gin with grapefruit juice and a heavy salt rim. The salt makes the grapefruit taste cleaner and hides the alcohol edge.
- Margarita: tequila, lime, orange liqueur, and a salt rim. I like it more as a bright citrus drink than as a strong cocktail.
Sugar Rim and Sweet-Sour Balance
- Lemon Drop Martini: vodka, lemon juice, syrup, and a sugar rim. It tastes close to a polished lemon candy when made lightly.
- Sidecar: cognac, orange liqueur, lemon juice, and a sugar rim. I like the orange-jam direction, though I would still make it lighter.
Fruit and Low-Alcohol
- Yuzushu: yuzu-based Japanese fruit liqueur. It is close to umeshu in spirit, but brighter and more citrus-forward.
- Sangria: wine, fruit, and sometimes soda. This fits my preference well because it is fruit-first, easy to dilute, and good for sharing.
- Sparkling wine spritz: Costco sparkling wine plus fruit juice or citrus soda. This is the most practical version for me at home.