👋 Welcome to my digital garden

Think · Write · Grow Finding poetry between code and words

This is a developer's sanctuary, collecting treasures of the internet age, documenting footprints of technical exploration, and storing subtle insights about life.

50+
Tech Articles
200+
Bookmarked Links
5 Years
Coding Experience
Curiosity
👨‍💻

MoYan

Full Stack Developer / Digital Nomad

Passionate about open source, obsessed with elegant code architecture and user experience design. Believes technology should serve humanity, not the other way around. Years of deep expertise in React, Node.js, and cloud-native stacks, while maintaining a love for literature, photography, and classical music.

React TypeScript Node.js Photography Reading

About Me Personal Profile

Tech Philosophy

Code is poetry, architecture is philosophy. Pursuing simple, maintainable solutions while rejecting over-engineering.

Lifelong Learning

Reading one book per week, covering technology, history, philosophy, and literature. Continuously expanding the knowledge graph.

Digital Nomad

Advocate for remote work, with footprints across Southeast Asia and Europe. Written code by the beaches of Bali and debugged in Berlin cafes.

Treasure Links

Pearls from the ocean of the internet, resources worth revisiting time and again

Tech Thoughts Deep Insights

Deep thinking about software engineering, architecture design, and technology trends

Architecture March 10, 2024

The Twilight of Micro-frontends: Why We're Back to Monoliths

Three years ago, we enthusiastically split our application into a micro-frontend architecture. Today, under the heavy pressure of maintenance costs, performance损耗, and team collaboration, we're beginning to re-examine this decision. This isn't a technological regression, but a renewed understanding of engineering complexity...

12 min read
React 5 min

The Mental Model Shift of Server Components

The mindset migration from client-side rendering to server-side rendering, and why this is more than just a technical implementation change...

TypeScript 8 min

Type Gymnastics: Practical or Show-off?

Discussing the boundaries of TypeScript advanced types and type complexity management in team codebases...

Engineering 6 min

Monorepo Toolchain Selection Guide 2024

Comparing Turborepo, Nx, and Rush, with real-world performance and trade-offs for different team sizes...

Recently Obsessed Code Snippet
const createAsyncPipeline = <T>() => {
  const middlewares: Array<(ctx: T) => Promise<T>> = [];
  
  return {
    use: (fn) => middlewares.push(fn),
    run: async (ctx) => {
      for (const fn of middlewares) {
        ctx = await fn(ctx);
      }
      return ctx;
    }
  };
};
Elegant Middleware Pattern Implementation · TypeScript

Interest Exploration

The vast world beyond technology, a secret garden for maintaining curiosity

📷

Street Photography

Leica Q2 Documentary

Fascinated by the dance of light and shadow in urban crevices. Saturday morning street photography is an unbreakable ritual, documenting those overlooked ordinary moments.

B&W Humanity 35mm
📚

Deep Reading

Physical Book Enthusiast

Currently reading: "Thinking, Fast and Slow", "The Philosophy of Software Design". Firmly believe the tactile feel and ink scent of physical books are irreplaceable by digital media.

Psychology Philosophy History
🎵

Classical Music

Bach & Chopin

The perfect companion while coding. Goldberg Variations help enter flow state, Nocturnes series provides the soundtrack for late-night debugging sessions.

Baroque Romantic Piano

Recent Bookshelf

Sapiens
Clean
Code
1984
Design
Patterns
Computer
Systems
100 Years
Solitude
Introduction
to Algorithms

Flavors of Life Life Moments

Essays, insights, and life fragments, recording flowing thoughts

2024.03.15

Third Year of Remote Work

Finally accustomed to the rhythm of switching between cafes, studies, and seaside offices. Discovered that location matters less than establishing a stable morning routine.

2024.02.28

Reflections on Minimalism

After discarding the third box of items, suddenly realized minimalism isn't the goal but the means. The true objective is to free up physical and mental space for what truly matters.

2024.01.10

Returning to Film Cameras

Returning to film in the digital age, the limit of 36 exposures per roll teaches me "waiting" and "choosing". The inability to review immediately makes shooting more focused.

"We spend our whole lives trying to break free from others' expectations and find our true selves."

—— "Everything I Never Told You"