Skip to content
View samuelindra123's full-sized avatar

Highlights

  • Pro

Block or report samuelindra123

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

divider

🖥️ ~/whoami

samuel@archdev:~$ whoami
Samuel Indra Bastian · Software Engineer · Indonesia 🇮🇩

samuel@archdev:~$ cat philosophy.txt
Clean code. Scalable systems. Elegant, user-centric experiences.

samuel@archdev:~$ cat now.json
{
  "focus"    : "Dynamic web apps + AI-powered features",
  "learning" : ["Google Cloud Platform", "Firebase", "DevOps", "Full-stack architecture"],
  "stack"    : ["Laravel", "TypeScript", "React", "Node.js"],
  "ask_me"   : ["Laravel", "TypeScript", "React", "API Design", "Cloud Computing"],
  "contact"  : "mesakzitumpul@gmail.com"
}

samuel@archdev:~$ _

divider

🌐 Language / Bahasa

🇬🇧 English (click to collapse)

I'm a Software Engineer from Indonesia who designs and builds robust web applications, explores practical AI solutions, and turns complex ideas into elegant, user-centric digital products.

My approach: think in systems, write clean code, and stay at the forefront of modern web technology.

🔭 Current focus Building dynamic web applications and integrating AI features
☁️ Google Developer journey GCP services, Firebase architecture, Gemini API
🌱 Improving Full-stack architecture, DevOps, cloud systems
💬 Ask me about Laravel · TypeScript · React · API Design · Cloud
🌍 Website samuelindrabastian.my.id
✉️ Email mesakzitumpul@gmail.com
🇮🇩 Bahasa Indonesia (klik untuk membuka)

Saya Software Engineer asal Indonesia yang merancang dan membangun aplikasi web yang andal, mengeksplorasi solusi AI yang praktis, dan mengubah ide kompleks menjadi produk digital yang elegan dan berorientasi pada pengguna.

Pendekatan saya: berpikir dalam sistem, menulis kode bersih, dan selalu mengikuti teknologi web terkini.

🔭 Fokus saat ini Membangun aplikasi web dinamis dan mengintegrasikan fitur AI
☁️ Perjalanan Google Developer Layanan GCP, arsitektur Firebase, Gemini API
🌱 Sedang ditingkatkan Arsitektur full-stack, DevOps, sistem cloud
💬 Tanya saya tentang Laravel · TypeScript · React · API Design · Cloud
🌍 Website samuelindrabastian.my.id
✉️ Email mesakzitumpul@gmail.com

divider

🏗️ System Architecture

Arsitektur referensi yang saya pakai untuk aplikasi web modern dengan fitur AI.

flowchart TB
    subgraph CLIENT["🖥️ CLIENT LAYER"]
        direction LR
        U(["👤 User"]) --> WEB["React + TypeScript<br/>Tailwind CSS"]
    end

    subgraph EDGE["🛡️ EDGE & GATEWAY"]
        direction LR
        CDN["CDN / Cache"] --> GW["API Gateway<br/>Rate limit · CORS · TLS"]
    end

    subgraph APP["⚙️ APPLICATION LAYER"]
        direction LR
        AUTH["Auth Service<br/>JWT · Firebase Auth"]
        CORE["Core API<br/>Laravel / Node.js"]
        AISVC["AI Service<br/>Prompt · Context · Guardrails"]
        QUEUE["Queue Worker<br/>Async jobs"]
    end

    subgraph DATA["🗄️ DATA LAYER"]
        direction LR
        PG[("PostgreSQL<br/>Relational core")]
        MG[("MongoDB<br/>Logs · Documents")]
        RD[("Redis<br/>Cache · Queue")]
        ST[("Cloud Storage<br/>Files · Assets")]
    end

    subgraph EXT["☁️ EXTERNAL & PLATFORM"]
        direction LR
        GEM["Gemini API"]
        FIR["Firebase"]
        GCP["Google Cloud<br/>Cloud Run · Logging"]
    end

    WEB -->|HTTPS| CDN
    GW --> AUTH
    GW --> CORE
    CORE --> AISVC
    CORE --> QUEUE
    AUTH --> FIR
    AISVC --> GEM
    CORE --> PG
    CORE --> RD
    QUEUE --> RD
    AISVC --> MG
    CORE --> ST
    APP -.->|deployed on| GCP

    classDef client fill:#03170c,stroke:#00ff88,color:#ffffff,stroke-width:2px
    classDef edge fill:#1a1a1a,stroke:#00ff88,color:#ffffff
    classDef app fill:#0b2a1a,stroke:#00ff88,color:#ffffff
    classDef data fill:#0d1b2a,stroke:#4285F4,color:#ffffff
    classDef ext fill:#1a1030,stroke:#8E75C2,color:#ffffff
    class U,WEB client
    class CDN,GW edge
    class AUTH,CORE,AISVC,QUEUE app
    class PG,MG,RD,ST data
    class GEM,FIR,GCP ext
Loading

divider

🔄 Request Flow: AI Feature

Alur dari klik user sampai respons AI kembali ke layar.

sequenceDiagram
    autonumber
    actor U as 👤 User
    participant FE as 🖥️ React App
    participant GW as 🛡️ API Gateway
    participant API as ⚙️ Core API
    participant DB as 🗄️ PostgreSQL
    participant AI as 🤖 AI Service
    participant G as ✨ Gemini API

    U->>FE: Submit prompt
    FE->>GW: POST /api/ai/run (JWT)
    GW->>GW: Verify token + rate limit
    GW->>API: Forward request
    API->>DB: Load project context
    DB-->>API: Context data
    API->>AI: Build prompt + guardrails
    AI->>G: generateContent()
    G-->>AI: Model response
    AI-->>API: Sanitized result
    API->>DB: Save run + token usage
    API-->>FE: 200 OK (JSON)
    FE-->>U: Render result ✨
Loading

divider

🗄️ Database Design (ERD)

Contoh skema relasional untuk platform multi-user dengan fitur AI: role-based access, project, task, riwayat AI run, dan audit log.

erDiagram
    ROLES ||--o{ USERS : "assigned to"
    USERS ||--o{ PROJECTS : owns
    USERS ||--o{ SESSIONS : opens
    USERS ||--o{ API_KEYS : issues
    USERS ||--o{ AUDIT_LOGS : generates
    PROJECTS ||--o{ TASKS : contains
    PROJECTS ||--o{ PROMPTS : defines
    PROMPTS ||--o{ AI_RUNS : executes
    USERS ||--o{ AI_RUNS : triggers

    ROLES {
        uuid id PK
        string name UK "admin | member | viewer"
        jsonb permissions
    }

    USERS {
        uuid id PK
        uuid role_id FK
        string email UK
        string password_hash
        string display_name
        boolean is_active
        timestamptz created_at
    }

    SESSIONS {
        uuid id PK
        uuid user_id FK
        string refresh_token_hash
        string ip_address
        timestamptz expires_at
    }

    API_KEYS {
        uuid id PK
        uuid user_id FK
        string key_hash UK
        string label
        timestamptz last_used_at
        timestamptz revoked_at
    }

    PROJECTS {
        uuid id PK
        uuid owner_id FK
        string name
        string slug UK
        text description
        string status "draft | active | archived"
        timestamptz created_at
    }

    TASKS {
        uuid id PK
        uuid project_id FK
        string title
        string status "todo | doing | done"
        smallint priority
        date due_date
    }

    PROMPTS {
        uuid id PK
        uuid project_id FK
        string name
        text template
        string model "gemini model id"
        int version
    }

    AI_RUNS {
        uuid id PK
        uuid prompt_id FK
        uuid user_id FK
        text input
        text output
        int tokens_in
        int tokens_out
        int latency_ms
        string status "ok | error | filtered"
        timestamptz created_at
    }

    AUDIT_LOGS {
        bigint id PK
        uuid user_id FK
        string action
        string entity
        jsonb metadata
        timestamptz created_at
    }
Loading
📜 Lihat contoh DDL PostgreSQL
CREATE TABLE ai_runs (
    id          UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    prompt_id   UUID NOT NULL REFERENCES prompts(id) ON DELETE CASCADE,
    user_id     UUID NOT NULL REFERENCES users(id),
    input       TEXT NOT NULL,
    output      TEXT,
    tokens_in   INT  NOT NULL DEFAULT 0,
    tokens_out  INT  NOT NULL DEFAULT 0,
    latency_ms  INT,
    status      TEXT NOT NULL CHECK (status IN ('ok', 'error', 'filtered')),
    created_at  TIMESTAMPTZ NOT NULL DEFAULT now()
);

-- Index untuk query yang paling sering dipakai
CREATE INDEX idx_ai_runs_user_created ON ai_runs (user_id, created_at DESC);
CREATE INDEX idx_ai_runs_prompt       ON ai_runs (prompt_id);

Prinsip desain database: UUID untuk ID publik · foreign key + constraint di level database · soft-revoke untuk kredensial · index berdasarkan pola query nyata · jsonb hanya untuk data yang memang fleksibel.

divider

🚀 CI/CD & Delivery Pipeline

flowchart LR
    A["💻 Commit<br/>feature branch"] --> B["🔀 Pull Request"]
    B --> C["🧪 Lint · Test<br/>GitHub Actions"]
    C -->|pass| D["📦 Build<br/>Docker image"]
    C -.->|fail| A
    D --> E["🧭 Staging<br/>smoke test"]
    E --> F["🚀 Production<br/>Google Cloud Run"]
    F --> G["📈 Monitor<br/>Logs · Alerts"]
    G -.->|feedback| A

    classDef step fill:#0b2a1a,stroke:#00ff88,color:#ffffff
    classDef prod fill:#00ff88,stroke:#00ff88,color:#000000,font-weight:bold
    class A,B,C,D,E,G step
    class F prod
Loading

divider

🧠 Engineering Principles

🧱 Structure 🔐 Security 📈 Scale 🧪 Quality
Separation of concerns Validate every input Simple first, optimize with data Readable, testable code
API-first contracts Auth & least privilege Cache & queue where it matters Automated CI checks
Modular, replaceable parts Secrets never in code Stateless services Code review habit

divider

🛠️ Tech Stack

Skills



Gemini Google Developer GCP Firebase
Layer Technologies
🖥️ Frontend HTML5 · CSS3 · JavaScript · TypeScript · React · Tailwind CSS
⚙️ Backend PHP · Laravel · Node.js · Express
🗄️ Database PostgreSQL · MongoDB
☁️ Cloud & AI Google Cloud Platform · Firebase · Gemini API
🧰 Tools Git · VS Code · Linux

divider

📊 GitHub Analytics

Stats Top languages
Streak
Trophies



Activity graph

divider

🤝 Let's Build Something Together

Website Gmail LinkedIn Twitter/X Instagram



Quote

footer

Popular repositories Loading

  1. socialmedia-soplantilaa socialmedia-soplantilaa Public

    TypeScript 1

  2. samuelindra123 samuelindra123 Public

    1

  3. lofiloop lofiloop Public

    Mengubah klip video pendek menjadi video berdurasi panjang dengan sambungan mulus, dan menggabungkan banyak lagu jadi satu berkas. Ringan untuk laptop kelas bawah.

    Rust 1

  4. socialmedia-kristen socialmedia-kristen Public

    TypeScript

  5. smarthome-iot-tei-skariga smarthome-iot-tei-skariga Public

    ini adalah project web untuk hardware esp32 s2 mini dan komunikasi mqtt untuk mangatur jalur jalan iot project

    TypeScript

  6. webhosting webhosting Public

    TypeScript