Skip to content
View NoaLand's full-sized avatar
🎯
Focusing
🎯
Focusing

Organizations

@test-automation-training @ScriptoriumLab

Block or report NoaLand

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.

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
NoaLand/README.md

Edward NoaLand

Ruipeng Wang

C++ · Systems Programming · Software Architecture

📍 London, UK


Building systems that are understandable, evolvable, and able to survive their own success.



Today's design becomes tomorrow's constraint.
Good design leaves tomorrow with more possibilities.


What I'm building

Scriptorium

Scriptorium is an experimental, cross-platform input method framework.

It started as a Windows input method and gradually evolved into a multi-process architecture, separating platform integration, input method logic, UI, and shared infrastructure.

The project is also where I explore a broader question:

How can a system evolve without letting today's implementation decisions unnecessarily constrain its future?

Current focus

C++
Windows TSF
IPC
Multi-process
Architecture

Scriptorium architecture evolution

Scriptorium has evolved from a Windows-specific input method into a multi-process, cross-platform architecture.
Read the full architecture evolution →

Scriptorium ecosystem

brush

Platform integration
Currently Windows TSF

inkstone

Input method core

ink

Stateless UI

felt

Shared foundation
and infrastructure

cli

Command-line tooling
for the ecosystem

Explore ScriptoriumLab →


cxx-reflection

cxx-reflection is an ongoing collection of experiments around reflection and compile-time programming in C++.

I use it to explore the language itself: what can be expressed at compile time, where abstraction becomes useful, and where it starts becoming a constraint of its own.

The project is still in progress. Most of my recent development time is currently going into Scriptorium, but I intend to keep evolving these experiments alongside it.

Exploring

Reflection
Compile time
Type systems
Modern C++

View repository →


What I care about

Engineering

  • Modern C++
  • Systems programming
  • Performance and resource ownership
  • Platform integration

Design

  • Software architecture
  • Programming languages
  • Developer tooling
  • Evolutionary design

I tend to care less about finding the perfect architecture and more about understanding the trade-offs a design introduces.

A design is never free.
Every abstraction makes some things easier and other things harder.

The interesting part is choosing deliberately.


Translation

I have worked on Chinese translations of several technical books:

  • C++ High Performance
  • Effective TypeScript
  • Wild West to Agile
  • Introducing C++in progress

Writing

I occasionally write about software engineering, architecture, and C++.

Engineering & architecture

C++


Elsewhere

GitHub   ·   LinkedIn   ·   Substack


Build for today. Leave room for tomorrow.

Pinned Loading

  1. ScriptoriumLab/scriptorium-brush ScriptoriumLab/scriptorium-brush Public

    A lightweight, crash-resistant Windows TSF (Text Services Framework) client for Scriptorium IME. Acts as the input sensor and composition actuator via IPC.

    C++

  2. ScriptoriumLab/scriptorium-inkstone ScriptoriumLab/scriptorium-inkstone Public

    The high-performance, out-of-process core engine for Scriptorium IME. Handles user input analysis and state management with microsecond-level latency.

    C++

  3. ScriptoriumLab/scriptorium-ink ScriptoriumLab/scriptorium-ink Public

    Rust

  4. ScriptoriumLab/scriptorium-felt ScriptoriumLab/scriptorium-felt Public

    The core infrastructure, IPC communication, and protocol SDK for the Scriptorium Input Method ecosystem.

    C++ 1

  5. cxx-reflection cxx-reflection Public

    [In Progress] My open cxx reflection library

    C++ 8