Skip to content
View drnovia's full-sized avatar

Block or report drnovia

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

dr. Novia Dwi Anggraini
Physician Β· Sentra Principal Architect
Independent Explorer

GitHub



Curious Analytical Practical
Detail-oriented Adaptable Growth-driven

NOVIA STUDIO / PERSONAL SIGNAL

Novia Studio personal signal

Current signal: curiosity Β· structure Β· architecture Β· experimentation Β· refinement

I am naturally drawn to questions that invite a deeper look. I like understanding how something works, what makes it better, and whether there is a clearer, more useful way to approach it.

As a physician and Sentra Principal Architect, I am interested in the point where complex systems become understandable enough to use, inspect, improve, and trust. I care about the quality of the reasoning as much as the quality of the result.

I care about craft, but I also care about usefulness. A beautiful idea that cannot be applied is still unfinished.

GitHub

CURIOSITY β†’ UNDERSTANDING β†’ STRUCTURE β†’ SIMPLIFICATION β†’ DECISION β†’ REFINEMENT


01 / CORE IDENTITY

I am curious, ambitious, analytical, and strongly detail-oriented. I tend to look beyond the obvious answer and keep exploring until I understand the structure underneath it.

At the same time, I am practical. I prefer ideas that can become something concrete β€” a decision, an improvement, a working solution, or simply a clearer way of seeing the problem.

I enjoy discovering new fields, experimenting with unfamiliar tools, and learning through direct contact with the subject rather than staying at the surface. High standards are part of how I work, but I increasingly treat standards as a way to improve judgment β€” not as a reason to delay completion.

Curious Analytical Practical Adaptable Independent Explorative Simplicity Seeking


02 / ROLE SIGNAL Β· SENTRA PRINCIPAL ARCHITECT

ROLE

Sentra Principal Architect

Architecture Simplicity Systems

The role is fundamentally about turning complex product and technical questions into clear system boundaries, coherent structures, and simpler paths to execution.

The architecture is not treated as decoration or an end in itself. The useful architecture is the one that reduces ambiguity, exposes trade-offs, helps teams reason about the system, and makes the next action easier to see.

The working principle is intentionally conservative:

UNDERSTAND THE REAL PROBLEM
        ↓
IDENTIFY WHAT MUST BE TRUE
        ↓
SEPARATE SIGNAL FROM NOISE
        ↓
DEFINE THE SMALLEST SOUND STRUCTURE
        ↓
MAKE THE PATH LEGIBLE
        ↓
BUILD
        ↓
VERIFY
        ↓
SIMPLIFY AGAIN

Important

Architecture should make complexity easier to reason about. If it makes the system harder to explain, it has probably added more structure than value.


03 / SELECTED PORTFOLIO

The work below is currently represented in my portfolio build. I am interested in projects where clarity, visual judgment, practical thinking, systems thinking, and experimentation meet.

01 Β· FORMA

Brand / Digital Β· 2026

A quieter identity for a design-led workspace.

Brand Digital

02 Β· NOMA

Web / Strategy Β· 2025

Turning a complex service into a simple path forward.

Web Strategy

03 Β· ARC

Product / UI Β· 2025

A focused product system for teams moving fast.

Product UI

04 Β· FIELD NOTES

Editorial / Web Β· 2024

An editorial platform built around curiosity.

Editorial Web

View Novia portfolio source


04 / ENGINEERING MINDSET

The way I think about systems is less about adding sophistication and more about controlling complexity.

I prefer to understand the system in layers:

01 Β· SIGNAL

What is actually happening?

Observe

02 Β· STRUCTURE

What relationships matter?

Map

03 Β· BOUNDARY

What belongs inside β€” and outside?

Bound

04 Β· PATH

What is the simplest reliable route?

Simplify
MENTAL MODEL // COMPLEXITY β†’ CLARITY
%%{init: {
  "theme": "base",
  "themeVariables": {
    "background": "#050816",
    "primaryColor": "#07111D",
    "primaryTextColor": "#FFFFFF",
    "primaryBorderColor": "#22D3EE",
    "lineColor": "#94A3B8",
    "secondaryColor": "#07111D",
    "secondaryTextColor": "#FFFFFF",
    "secondaryBorderColor": "#FF5F6D",
    "tertiaryColor": "#07111D",
    "tertiaryTextColor": "#FFFFFF",
    "tertiaryBorderColor": "#A78BFA",
    "fontFamily": "JetBrains Mono, monospace",
    "fontSize": "13px"
  },
  "flowchart": {
    "curve": "basis",
    "nodeSpacing": 38,
    "rankSpacing": 42,
    "padding": 18
  }
}}%%
flowchart LR
    C["COMPLEXITY"]
    O["OBSERVE"]
    M["MAP"]
    B["BOUND"]
    R["REDUCE"]
    V["VERIFY"]
    S["SIMPLICITY"]

    C --> O --> M --> B --> R --> V --> S

    M -. "irrelevant detail" .-> N["NOISE"]
    B -. "scope drift" .-> D["DRIFT"]
    R -. "premature abstraction" .-> A["ABSTRACTION"]
    N -. "remove" .-> R
    D -. "return to boundary" .-> B
    A -. "return to need" .-> R

    classDef coral fill:#07111D,stroke:#FF5F6D,color:#FFFFFF,stroke-width:2px;
    classDef blue fill:#07111D,stroke:#60A5FA,color:#FFFFFF,stroke-width:2px;
    classDef cyan fill:#07111D,stroke:#22D3EE,color:#FFFFFF,stroke-width:2px;
    classDef violet fill:#07111D,stroke:#A78BFA,color:#FFFFFF,stroke-width:2px;
    classDef lime fill:#07111D,stroke:#84CC16,color:#FFFFFF,stroke-width:2px;
    classDef amber fill:#07111D,stroke:#FBBF24,color:#FFFFFF,stroke-width:2px;
    classDef pink fill:#07111D,stroke:#F472B6,color:#FFFFFF,stroke-width:2px;
    classDef risk fill:#07111D,stroke:#64748B,color:#CBD5E1,stroke-width:1.5px,stroke-dasharray:5 5;

    class C coral;
    class O blue;
    class M violet;
    class B amber;
    class R cyan;
    class V lime;
    class S pink;
    class N,D,A risk;
Loading

THE GOAL IS NOT TO REMOVE COMPLEXITY Β· THE GOAL IS TO PUT COMPLEXITY IN THE RIGHT PLACE


05 / SIMPLICITY ALGORITHM

Simplicity is not the first step. It is the result of understanding enough to know what can safely disappear.

SIMPLICITY ENGINE // DECISION PATH
%%{init: {
  "theme": "base",
  "themeVariables": {
    "background": "#050816",
    "primaryColor": "#07111D",
    "primaryTextColor": "#FFFFFF",
    "primaryBorderColor": "#22D3EE",
    "lineColor": "#CBD5E1",
    "fontFamily": "JetBrains Mono, monospace",
    "fontSize": "13px"
  },
  "flowchart": {
    "curve": "basis",
    "nodeSpacing": 32,
    "rankSpacing": 42,
    "padding": 18
  }
}}%%
flowchart TB
    P["PROBLEM"]
    T["WHAT MUST BE TRUE?"]
    E{"ESSENTIAL?"}
    K["KEEP"]
    X["REMOVE"]
    B{"CAN IT FAIL?"}
    G["ADD GUARDRAIL"]
    N["NO EXTRA STRUCTURE"]
    C{"CLEAR TO EXPLAIN?"}
    R["REDUCE AGAIN"]
    S["SIMPLE ENOUGH TO BUILD"]
    V["VERIFY IN REAL USE"]

    P --> T --> E
    E -->|yes| K
    E -->|no| X
    K --> B
    B -->|yes| G
    B -->|no| N
    G --> C
    N --> C
    C -->|no| R --> T
    C -->|yes| S --> V

    classDef coral fill:#07111D,stroke:#FF5F6D,color:#FFFFFF,stroke-width:2px;
    classDef blue fill:#07111D,stroke:#60A5FA,color:#FFFFFF,stroke-width:2px;
    classDef cyan fill:#07111D,stroke:#22D3EE,color:#FFFFFF,stroke-width:2px;
    classDef violet fill:#07111D,stroke:#A78BFA,color:#FFFFFF,stroke-width:2px;
    classDef lime fill:#07111D,stroke:#84CC16,color:#FFFFFF,stroke-width:2px;
    classDef amber fill:#07111D,stroke:#FBBF24,color:#FFFFFF,stroke-width:2px;
    classDef pink fill:#07111D,stroke:#F472B6,color:#FFFFFF,stroke-width:2px;
    classDef neutral fill:#07111D,stroke:#64748B,color:#CBD5E1,stroke-width:1.5px;

    class P coral;
    class T blue;
    class E,B,C violet;
    class K amber;
    class X neutral;
    class G pink;
    class N cyan;
    class R coral;
    class S,V lime;
Loading
SIMPLE β‰  SMALL
SIMPLE β‰  MINIMAL FOR ITS OWN SAKE

SIMPLE =
  enough structure
  + clear boundaries
  + visible trade-offs
  + understandable failure modes
  - unnecessary machinery

06 / STRENGTHS

DEPTH

I rarely stop at the first explanation. I prefer to understand the logic, context, and details behind something before I consider it truly understood.

Depth

ADAPTABILITY

New subjects do not intimidate me for long. I learn by exploring, asking questions, testing assumptions, and gradually building a working mental model.

Adaptability

QUALITY INSTINCT

I notice structure, inconsistencies, presentation, and small details that affect the overall quality of a result.

Quality

INITIATIVE

When I see something that can be improved, my instinct is usually to investigate it rather than wait for someone else to define the next step.

Initiative

PRACTICAL REASONING

I like thinking carefully, but I am most satisfied when reasoning leads to a clear action or a usable solution.

Practicality

GROWTH DRIVE

I am motivated by progress β€” learning something new, becoming more capable, or improving the quality of something I already know how to do.

Growth

07 / WEAKNESSES & BLIND SPOTS

Note

High standards are useful until they begin to delay the point at which good is already good enough.

OVERTHINKING

I can spend too much time examining possibilities, especially when several options are all defensible. More information often feels useful β€” even when the decision already has enough evidence.

PERFECTIONISM

I sometimes keep refining work after the important problem has already been solved. The last ten percent can quietly consume more energy than the first ninety.

DIFFICULTY CALLING IT DONE

Because I notice details easily, I can always find one more thing that could be improved. Completion sometimes requires deliberately choosing a stopping point.

OPTION OVERLOAD

Exploration is one of my strengths, but too much exploration can make simple choices feel more complex than they need to be.

FAILURE CONTROL // WHEN DEPTH BECOMES DRAG
%%{init: {
  "theme": "base",
  "themeVariables": {
    "background": "#050816",
    "primaryColor": "#07111D",
    "primaryTextColor": "#FFFFFF",
    "primaryBorderColor": "#F472B6",
    "lineColor": "#94A3B8",
    "fontFamily": "JetBrains Mono, monospace",
    "fontSize": "13px"
  },
  "flowchart": {
    "curve": "basis",
    "nodeSpacing": 35,
    "rankSpacing": 38,
    "padding": 18
  }
}}%%
flowchart LR
    D["DEPTH"]
    O["OVERTHINKING"]
    P["PERFECTIONISM"]
    L["DELAY"]
    Q["QUESTION:<br/>does this change the outcome?"]
    N["NO"]
    Y["YES"]
    S["SHIP"]
    R["REFINE ONCE"]

    D -. "unchecked" .-> O
    O --> P --> L --> Q
    Q -->|no| N --> S
    Q -->|yes| Y --> R --> S

    classDef blue fill:#07111D,stroke:#60A5FA,color:#FFFFFF,stroke-width:2px;
    classDef risk fill:#07111D,stroke:#F472B6,color:#FFFFFF,stroke-width:2px;
    classDef amber fill:#07111D,stroke:#FBBF24,color:#FFFFFF,stroke-width:2px;
    classDef cyan fill:#07111D,stroke:#22D3EE,color:#FFFFFF,stroke-width:2px;
    classDef lime fill:#07111D,stroke:#84CC16,color:#FFFFFF,stroke-width:2px;

    class D blue;
    class O,P,L risk;
    class Q amber;
    class N,Y,R cyan;
    class S lime;
Loading

08 / WORK STYLE

I work best when the objective is clear but the path still leaves room for judgment. I like having enough independence to investigate, organize, and improve the work rather than simply follow instructions.

My natural pattern is iterative: understand the problem, establish a structure, test an approach, notice what feels wrong, and refine it. I prefer progress I can see and solutions I can actually use.

UNDERSTAND THE PROBLEM
        ↓
FIND THE STRUCTURE
        ↓
DEFINE THE BOUNDARY
        ↓
TRY SOMETHING REAL
        ↓
OBSERVE THE DETAILS
        ↓
REFINE WHAT MATTERS
        ↓
VERIFY
        ↓
SHIP β€” BEFORE PERFECTION BECOMES DELAY

09 / LEARNING STYLE

I learn through exploration more than memorization. A subject becomes interesting when I can connect theory to something concrete, test it, compare alternatives, and understand why one approach works better than another.

I tend to move from broad curiosity into increasingly specific questions. Once something catches my attention, I can go surprisingly deep into the details.

LEARNING LOOP // CURIOSITY β†’ MASTERY
%%{init: {
  "theme": "base",
  "themeVariables": {
    "background": "#050816",
    "primaryColor": "#07111D",
    "primaryTextColor": "#FFFFFF",
    "primaryBorderColor": "#22D3EE",
    "lineColor": "#CBD5E1",
    "fontFamily": "JetBrains Mono, monospace",
    "fontSize": "13px"
  },
  "flowchart": {
    "curve": "basis",
    "nodeSpacing": 34,
    "rankSpacing": 38,
    "padding": 18
  }
}}%%
flowchart LR
    Q["QUESTION"] --> E["EXPLORE"]
    E --> U["UNDERSTAND"]
    U --> T["TRY"]
    T --> R["REFLECT"]
    R --> I["IMPROVE"]
    I -. "new questions" .-> Q

    classDef coral fill:#07111D,stroke:#FF5F6D,color:#FFFFFF,stroke-width:2px;
    classDef blue fill:#07111D,stroke:#60A5FA,color:#FFFFFF,stroke-width:2px;
    classDef lime fill:#07111D,stroke:#84CC16,color:#FFFFFF,stroke-width:2px;
    classDef cyan fill:#07111D,stroke:#22D3EE,color:#FFFFFF,stroke-width:2px;
    classDef violet fill:#07111D,stroke:#A78BFA,color:#FFFFFF,stroke-width:2px;
    classDef amber fill:#07111D,stroke:#FBBF24,color:#FFFFFF,stroke-width:2px;

    class Q coral;
    class E blue;
    class U lime;
    class T cyan;
    class R violet;
    class I amber;
Loading

10 / COMMUNICATION STYLE

I prefer communication that is clear, thoughtful, and direct without being unnecessarily blunt. I appreciate enough context to understand the reasoning, but I do not enjoy complexity for its own sake.

I tend to ask follow-up questions when something feels incomplete or imprecise. This is usually not disagreement β€” it is how I build confidence that I actually understand the issue.

I VALUE

  • clear reasoning;
  • useful context;
  • honest feedback;
  • concrete examples;
  • explicit assumptions;
  • visible trade-offs;
  • room to ask why?

I AVOID

  • vague conclusions;
  • unnecessary jargon;
  • style without substance;
  • rushed assumptions;
  • hidden trade-offs;
  • certainty without explanation.

11 / DECISION-MAKING ARCHITECTURE

I usually make decisions by combining analysis with practical judgment. I like comparing the important variables, understanding trade-offs, and checking whether an option still makes sense in the real environment.

My risk is not impulsiveness. It is staying in analysis mode longer than necessary because I want confidence that I have not missed a better option.

Good decision is not perfect information

DECISION GATE // ENOUGH INFORMATION
%%{init: {
  "theme": "base",
  "themeVariables": {
    "background": "#050816",
    "primaryColor": "#07111D",
    "primaryTextColor": "#FFFFFF",
    "primaryBorderColor": "#60A5FA",
    "lineColor": "#CBD5E1",
    "fontFamily": "JetBrains Mono, monospace",
    "fontSize": "13px"
  },
  "flowchart": {
    "curve": "basis",
    "nodeSpacing": 32,
    "rankSpacing": 40,
    "padding": 18
  }
}}%%
flowchart TB
    D["DECISION"]
    O["DEFINE OUTCOME"]
    V["IDENTIFY VARIABLES"]
    E{"ENOUGH EVIDENCE?"}
    M["MISSING CRITICAL SIGNAL"]
    T["COMPARE TRADE-OFFS"]
    R{"REVERSIBLE?"}
    A["ACT NOW"]
    C["ADD ONE SAFETY CHECK"]
    F["FEEDBACK"]
    I["IMPROVE"]

    D --> O --> V --> E
    E -->|no| M --> V
    E -->|yes| T --> R
    R -->|yes| A
    R -->|no| C --> A
    A --> F --> I

    classDef coral fill:#07111D,stroke:#FF5F6D,color:#FFFFFF,stroke-width:2px;
    classDef blue fill:#07111D,stroke:#60A5FA,color:#FFFFFF,stroke-width:2px;
    classDef violet fill:#07111D,stroke:#A78BFA,color:#FFFFFF,stroke-width:2px;
    classDef amber fill:#07111D,stroke:#FBBF24,color:#FFFFFF,stroke-width:2px;
    classDef cyan fill:#07111D,stroke:#22D3EE,color:#FFFFFF,stroke-width:2px;
    classDef lime fill:#07111D,stroke:#84CC16,color:#FFFFFF,stroke-width:2px;

    class D coral;
    class O,V blue;
    class E,R violet;
    class M,C amber;
    class T,A cyan;
    class F,I lime;
Loading

12 / WHAT MOTIVATES ME

DISCOVERY
Finding something I did not understand before.

Discovery signal

PROGRESS
Seeing measurable improvement in skill, quality, or understanding.

Progress signal

AUTONOMY
Having enough ownership to think, explore, and make meaningful choices.

Autonomy signal

CRAFT
Turning something ordinary into something considered, clear, and well made.

Craft signal


13 / WHAT CHALLENGES ME

I find it difficult to stay engaged with work that feels careless, unnecessarily repetitive, or resistant to improvement. Ambiguous expectations can also be frustrating when there is no clear way to test whether the work is actually getting better.

The more I care about an outcome, the easier it is for me to over-invest in the details. One of my ongoing challenges is knowing when deeper exploration will improve the result β€” and when it is simply delaying the next useful step.

Important

The goal is not to lower the standard. It is to become better at knowing which details deserve the standard.


14 / PERSONAL OPERATING SYSTEM

A simplified map of how I tend to move from curiosity to action:

PERSONAL OS // CURIOSITY β†’ SIMPLICITY β†’ DELIVERY
%%{init: {
  "theme": "base",
  "themeVariables": {
    "background": "#050816",
    "primaryColor": "#07111D",
    "primaryTextColor": "#FFFFFF",
    "primaryBorderColor": "#22D3EE",
    "lineColor": "#CBD5E1",
    "fontFamily": "JetBrains Mono, monospace",
    "fontSize": "13px"
  },
  "flowchart": {
    "curve": "basis",
    "nodeSpacing": 30,
    "rankSpacing": 36,
    "padding": 18
  }
}}%%
flowchart LR
    C["CURIOSITY"] --> A["ANALYZE"]
    A --> X["EXPLORE"]
    X --> M["MODEL"]
    M --> R["REDUCE"]
    R --> B["BUILD"]
    B --> O["OBSERVE"]
    O --> F["REFINE"]
    F --> S["SHIP"]
    S -. "learn" .-> C

    A -. "too much detail" .-> V["OVERTHINK"]
    F -. "too many passes" .-> P["PERFECTIONISM"]
    V -. "return to outcome" .-> M
    P -. "define done" .-> S

    classDef coral fill:#07111D,stroke:#FF5F6D,color:#FFFFFF,stroke-width:2px;
    classDef blue fill:#07111D,stroke:#60A5FA,color:#FFFFFF,stroke-width:2px;
    classDef violet fill:#07111D,stroke:#A78BFA,color:#FFFFFF,stroke-width:2px;
    classDef cyan fill:#07111D,stroke:#22D3EE,color:#FFFFFF,stroke-width:2px;
    classDef lime fill:#07111D,stroke:#84CC16,color:#FFFFFF,stroke-width:2px;
    classDef amber fill:#07111D,stroke:#FBBF24,color:#FFFFFF,stroke-width:2px;
    classDef pink fill:#07111D,stroke:#F472B6,color:#FFFFFF,stroke-width:2px;
    classDef risk fill:#07111D,stroke:#64748B,color:#CBD5E1,stroke-width:1.5px,stroke-dasharray:5 5;

    class C coral;
    class A blue;
    class X,M violet;
    class R cyan;
    class B lime;
    class O amber;
    class F pink;
    class S lime;
    class V,P risk;
Loading

THE STANDARD STAYS HIGH Β· THE LOOP GETS CLEARER Β· COMPLEXITY MOVES TOWARD SIMPLICITY


15 / ARCHITECTURE PRINCIPLES

Start with the real problem.
Make assumptions visible.
Separate signal from noise.
Keep boundaries explicit.
Prefer the smallest sound structure.
Do not add abstraction before need.
Design failure paths before confidence.
Make trade-offs legible.
Verify in reality.
Simplify after learning.

WHEN SOMETHING FEELS TOO COMPLEX

Ask whether the complexity belongs to the problem β€” or to the solution.

WHEN SOMETHING FEELS TOO SIMPLE

Ask whether important risk, uncertainty, or context has been hidden rather than removed.


16 / MAC TERMINAL

πŸ”΄ Β  🟑 Β  🟒 Β Β  novia@macbook β€” zsh

Animated coding terminal for Novia

const novia = {
  physician: true,
  role: "Sentra Principal Architect",
  curious: true,
  analytical: true,
  adaptable: true,
  standards: "high",
  objective: "clarity",
  method: "understand β†’ structure β†’ simplify β†’ verify"
};

while (novia.isCurious) {
  const signal = observe();
  const model = understand(signal);
  const structure = mapEssentialRelationships(model);
  const simpler = removeNonEssentialComplexity(structure);

  if (simpler.isClear && simpler.isUseful && simpler.isVerifiable) {
    ship(simpler);
    break;
  }

  refineOnlyWhatMatters(simpler);
}

novia@macbook ~ % still learning, still reducing unnecessary complexity.


17 / ONE SENTENCE

A physician, Sentra Principal Architect, and curious high-standard explorer who likes to understand systems deeply, reduce complexity into clear structure, and turn thoughtful reasoning into something practical.


18 / PERSONAL OPERATING PRINCIPLES

Stay curious.
Understand before judging.
Explore before assuming.
Model before simplifying.
Prefer clarity over complexity.
Make the idea useful.
Notice the details β€” but know which ones matter.
Keep improving.
Define done.
Ship.

19 / CURRENT SIGNAL

HOW I TEND TO THINK

Curiosity first. Structure second. Simplicity after understanding. Application before abstraction. Refinement after evidence.

WHAT I AM PRACTICING

Keeping standards high while becoming more comfortable with iteration, imperfect first versions, explicit stopping rules, and decisions made with enough β€” rather than infinite β€” information.


Novia closing signal

Curiosity with standards. Architecture with clarity.
Still learning. Still refining. Still asking better questions.

Novia GitHub Β  Novia Portfolio Β  Sentra Principal Architect

Popular repositories Loading

  1. NovSite NovSite Public

    NOVIA STUDIO is a standalone React 18 build of the original portfolio experience.

    JavaScript 3

  2. project-berpijar project-berpijar Public

    A clean full-stack starter running on vinext, with optional Cloudflare D1 and Drizzle support.

    TypeScript 3

  3. drnovia drnovia Public

    Readme file for personal profile repository.

    3

  4. MyWebsite MyWebsite Public

    NOVIA STUDIO is a standalone React 18 build of the original portfolio experience.

    CSS 3

  5. kediri-cinematic-history kediri-cinematic-history Public

    JavaScript

  6. jejakkediri jejakkediri Public

    TypeScript