<?php
declare(strict_types=1);
final readonly class Harris
{
public function __construct(
public string $handle = 'hrace009',
public string $role = 'Technical Assistant ยท Perusahaan Migas',
public string $sideQuest = 'Server engineer & community maintainer',
public string $lokasi = 'Pekanbaru, Riau, Indonesia',
public string $timezone = 'Asia/Jakarta (WIB, GMT+7)',
public int $pengalaman = 15, // tahun, dan masih ngitung
) {}
/** Hal yang saya kerjakan tanpa perlu disuruh dua kali. */
public function fokus(): array
{
return [
'backend' => ['Laravel 12', 'REST API', 'Queue & Job', 'Payment gateway'],
'infra' => ['Rocky Linux 9', 'NGINX', 'MariaDB', 'Hyper-V', 'GCP'],
'native' => ['C++', 'C#', 'Qt6', 'Lua'],
'lowlevel' => ['Ghidra', 'IDA Pro', 'Binary format parsing'],
'data' => ['Power BI', 'SharePoint', 'Project information system'],
];
}
/** Aturan yang tidak pernah saya langgar. */
public function prinsip(): array
{
return [
'Jangan pernah tulis langsung ke database production โ lewat API.',
'Kalau dikerjakan lebih dari dua kali, otomasikan.',
'Dokumentasi ditulis sekarang, bukan nanti.',
'Rollback plan disiapkan sebelum deploy, bukan sesudah panik.',
];
}
}Singkatnya: saya betah di lapisan yang jarang dilihat orang โ bagaimana service saling bicara, bagaimana binary di-parse, bagaimana satu baris konfigurasi menentukan sistem bertahan atau tumbang saat trafik naik.
โ๏ธ ย Backend Engineering
| Area | Detail |
|---|---|
| Arsitektur | Service layer, repository pattern, DTO, action class, strict types |
| API | REST design, versioning, rate limiting, API resource & transformer |
| Async | Queue worker, job batching, scheduled task, retry & backoff strategy |
| Auth | Role & permission, token lifecycle, session hardening |
| Payment | QRIS, Virtual Account, PayPal โ termasuk penanganan callback & idempotensi |
๐ฅ๏ธ ย Infrastruktur & Operasional
| Area | Detail |
|---|---|
| Provisioning | Rocky Linux 9 dari bare install sampai siap produksi lewat script |
| Web layer | NGINX reverse proxy, TLS via Let's Encrypt, tuning worker & buffer |
| Database | MariaDB tuning, backup & restore, recovery dari korupsi tabel |
| Virtualisasi | Hyper-V, WSL 2 multi-instance, migrasi VMDK โ VHDX |
| Keamanan | Fail2ban, SSH hardening, firewall policy, penanganan insiden brute-force |
| Deployment | Bash automation untuk patching, rollout bertahap, dan verifikasi pasca-deploy |
๐ฎ ย Game Server Development
| Area | Detail |
|---|---|
| Arsitektur emulator | Delivery, link, game, database, auth, dan log service |
| Data file | Parsing format binary tertutup dan tabel konfigurasi game |
| Scripting | Lua untuk skill, quest, event, dan penyeimbangan class |
| Client | Patching C++, version check, batasan fitur, anti-cheat & HWID |
| Tooling | Aplikasi desktop Qt6 dan C# WinForms untuk editor data |
๐ ย Reverse Engineering
| Area | Detail |
|---|---|
| Disassembly | Ghidra, IDA Pro, Capstone untuk memetakan memory offset |
| Hooking | Detour, injeksi DLL, intersepsi fungsi runtime |
| Analisis format | Membedah struktur file tanpa dokumentasi resmi |
| Debugging | Menelusuri crash native sampai ke instruksi penyebabnya |
๐ ย Data & Reporting
| Area | Detail |
|---|---|
| Power BI | Dashboard operasional, pemodelan data, relasi antar tabel |
| SharePoint | Struktur dokumen, kontrol versi, alur persetujuan |
| Sistem proyek | Sistem informasi manajemen proyek untuk kebutuhan lapangan |
๐ฅ๏ธ ย Server Infrastructure
Provisioning dan hardening cluster Rocky Linux 9 di cloud โ dirancang menahan ribuan koneksi simultan dengan jendela maintenance terjadwal dan rollback yang teruji.
Rocky Linux 9 ยท NGINX ยท Let's Encrypt ยท Fail2ban ยท Automated patching
๐งฉ ย Web Panel Laravel
Panel manajemen akun, pengguna, dan transaksi. Seluruh akses data melewati API โ tidak ada satu pun query yang menyentuh database secara langsung dari sisi panel.
Laravel 12 ยท Livewire ยท Tailwind ยท MariaDB ยท QRIS / VA / PayPal
๐ค ย Discord Bot
Bot Node.js dengan discord.js v14: status service, lookup data, account linking, dan event logging โ semuanya routing lewat Laravel API, bukan koneksi database langsung.
Node.js ยท discord.js v14 ยท REST integration
๐ฉ ย Native & Client Engineering
Patching aplikasi C++, Lua scripting untuk logika gameplay dan balancing, serta aplikasi desktop Qt6 dengan penyimpanan kredensial terenkripsi AES-256.
C++ ยท Qt6 ยท C# ยท Lua ยท AES-256
๐ ย Reverse Engineering
Analisis binary menggunakan Ghidra dan Capstone untuk memetakan memory offset serta membedah struktur file format tertutup yang tidak punya dokumentasi.
Ghidra ยท IDA Pro ยท Capstone ยท Binary parsing
๐ฌ ย PSDevHub
Forum dan knowledge base untuk developer berbahasa Indonesia โ tempat menaruh solusi yang biasanya cuma nyangkut di thread forum luar negeri dan hilang setahun kemudian.
Cara saya menangani pekerjaan, dari masalah sampai selesai:
flowchart LR
A[Masalah masuk] --> B{Reproducible?}
B -- Tidak --> C[Kumpulkan log<br/>& metrik dulu]
C --> B
B -- Ya --> D[Isolasi<br/>akar masalah]
D --> E[Rancang solusi<br/>+ rollback plan]
E --> F{Sentuh<br/>production?}
F -- Ya --> G[Uji di staging<br/>atau VM lokal]
F -- Tidak --> H[Implementasi]
G --> H
H --> I[Verifikasi<br/>& monitoring]
I --> J[Dokumentasikan]
J --> K{Berulang?}
K -- Ya --> L[Otomasikan]
K -- Tidak --> M[Selesai]
Prinsipnya sederhana: jangan menebak di production, dan jangan menyelesaikan masalah yang sama dua kali secara manual.
harris@homelab:~$ neofetch
.-/+oossssoo+/-. harris@homelab
`:+ssssssssssssssssss+:` ------------------------------------
-+ssssssssssssssssssyyssss+- Role .......... Technical Assistant
/ssssssssssshdmmNNmmyNMMMMhssss/ Field ......... Oil & Gas ยท IT
+ssssssssshmydMMMMMMMNddddyssssss+Location ...... Pekanbaru, ID (WIB)
/sssssssshNMMMyhhyyyyhmNMMMNhssss/Experience .... 15+ tahun
.ssssssssdMMMNhsssssssshNMMMdssss.Daily OS ...... Windows + WSL 2
+sssshhhyNMMNyssssssssssyNMMMysss+Server OS ..... Rocky Linux 9
ossyNMMMNyMMhsssssssssssshmmmhssso Hypervisor ... Hyper-V
ossyNMMMNyMMhsssssssssssshmmmhssso Editor ....... VS Code ยท JetBrains
+sssshhhyNMMNyssssssssssyNMMMysss+ Shell ........ bash ยท PowerShell
.ssssssssdMMMNhsssssssshNMMMdssss. Database ..... MariaDB
/sssssssshNMMMyhhyyyyhdNMMMNhssss/ Web server ... NGINX
+sssssssssdmydMMMMMMMMddddyssssss+ Uptime ....... sejak lama, minus maintenance
/ssssssssssshdmNNNNmyNMMMMhssss/
-+sssssssssssssssssyyyssss+-
`:+ssssssssssssssssss+:`
.-/+oossssoo+/-. Yang sedang aktif saya dalami sekarang:
Advanced Qt6 (QML + threading) โโโโโโโโโโโโโโโโโโโโ 70%
Workflow automation (n8n) โโโโโโโโโโโโโโโโโโโโ 80%
Observability & tracing โโโโโโโโโโโโโโโโโโโโ 40%
Angka di atas versi jujur, bukan versi CV.
harris@homelab:~$ uptime --offline
โซโช Juventus FC ............... Fino alla fine
๐ฎ Perfect World PS .......... masih diotak-atik sampai sekarang
๐ n8n workflow .............. otomasi yang menolak dikerjakan manual
๐งช Homelab ................... virtualisasi, jaringan, self-hosted semua
โ Jam produktif ............. lewat tengah malam WIBStack apa yang paling sering dipakai?
Laravel untuk hampir semua kebutuhan web dan API, Rocky Linux 9 untuk server, MariaDB untuk data, dan C++/Qt6 kalau urusannya sudah turun ke level native.
Kenapa selalu menolak query langsung ke database?
Karena database bukan API. Begitu ada dua aplikasi menulis ke tabel yang sama dengan asumsi berbeda, validasi dan audit trail langsung hilang โ dan biasanya baru ketahuan setelah data rusak. Semua lewat satu pintu: API.
Terbuka untuk kolaborasi?
Ya, terutama untuk proyek Laravel, tooling infrastruktur, atau apa pun yang melibatkan reverse engineering dan otomasi. Diskusi teknis selalu diterima.
Bahasa komunikasi?
Bahasa Indonesia dan Inggris, keduanya nyaman. Istilah teknis biasanya saya biarkan dalam bahasa Inggris supaya tidak ambigu.





