They say every developer has an origin story. Mine doesn’t start with “Hello, World” – it starts with curiosity that bordered on obsession, a keyboard that knew too many late nights, and a desire to understand not just how things work, but why they break.
The Many Names, One Identity
You might know me as g0bl0x. Or perhaps you’ve seen the handle wenkhairu on GitHub, Docker Hub, or Twitter. Maybe you’ve stumbled upon b0t in Stack Overflow threads dating back over 13 years, where a younger version of me asked questions that now seem almost quaint.
These names – they’re all me. Different facets of the same person. The noob professional. The newbe hacker. The builder. The perpetual learner.
But at my core? I’m a kuli-kode – a code laborer from Yogyakarta, Indonesia, who’s been getting his hands dirty in the digital trenches for over 11 years.
The Early Days: When Curiosity Met Code
My journey into the world of technology wasn’t traditional. While some developers find their calling through structured education, mine began in the shadows – exploring the edges of systems, understanding vulnerabilities, learning how digital ecosystems really work beneath their polished surfaces.
You can trace these origins if you look carefully. There are mentions of my name in old security magazines like Devilzc0de, whispers in Indonesian hacker forums, and CTF (Capture The Flag) writeups that still live on my GitHub. I wasn’t just learning to build – I was learning to break, and more importantly, to understand the why behind both.
This wasn’t malicious curiosity. This was the foundation of becoming a truly skilled developer. Because when you understand how systems fail, you build better systems. When you know where the cracks are, you build stronger walls.
The Evolution: From Shadows to Some Of the Spotlight
As I matured in the craft, my focus shifted. The thrill of finding vulnerabilities gave way to the satisfaction of building solutions. The rush of breaking systems evolved into the joy of creating them.
I found my home in fullstack development – that beautiful space where front-end meets back-end, where user experience dances with system architecture, where every layer of the stack becomes your playground.
The Technical Arsenal
Over the years, I’ve armed myself with an eclectic mix of tools:
- Backend: PHP (where I found my rhythm with OOP), JavaScript/TypeScript, Node.js, AdonisJS, Python, Go and some short of C#
- Frontend: React.js, Vue.js, the eternal companions of HTML5 and CSS, and modern frameworks like Tailwind
- Infrastructure: Docker, Kubernetes, Nginx, the Unix philosophy
- Databases: From MySQL’s reliability to NoSQL’s flexibility
- The whole DevOps ecosystem: Because code isn’t real until it’s deployed
But here’s the truth that every experienced developer knows: the tools don’t define you. The problems you solve do.
The Government Era: Building for the Nation
My career took an interesting turn when I joined a private company in Yogyakarta as CTO and Senior Web Enginer. Here’s where it gets interesting: approximately 80% of our projects were with government entities.
This wasn’t just coding – this was nation-building at the digital level. Government projects teach you things that startups never will:
- Scale matters: Systems that serve millions
- Security is non-negotiable: When you’re handling citizen data, there’s no room for “we’ll fix it later”
- Accessibility is a right, not a feature: Your code needs to work for everyone
- Patience is a virtue: Bureaucracy moves slowly, but the impact is massive
These projects shaped my understanding of what it means to be a responsible developer. Code isn’t just logic and syntax – it’s responsibility to the people who depend on it.
The Global Shift
Eventually, my journey took me beyond Indonesian borders. Today, I work as a Development Director for Terus E-Learning, a UK-based company specializing in engaging e-learning content, VLE (Virtual Learning Environment) setup, and support.
The email address might have changed, but the mission remained the same: build systems that empower learning.
This is where my story gets exciting.
The Moodle Chapter: Where I Found My Focus
Moodle – if you’re in education technology, you know the name. If you’re not, think of it as WordPress for education: an open-source learning management system powering millions of courses worldwide.
I didn’t just use Moodle. I became deeply involved in its ecosystem, trying to contribute in my own small way to making education more accessible.
Some Projects I’m Proud Of
Over the years, I’ve worked on things that challenged me and taught me valuable lessons. Here are a few that stand out:
1. Terus RAG Block: Bringing AI to Education
This is my magnum opus. A Moodle plugin that implements Retrieval-Augmented Generation (RAG) – essentially allowing students to query course content using large language models.
Imagine this: instead of searching through PDFs and videos manually, students can ask questions in natural language, and AI retrieves the exact content they need from their course materials. It’s like having a personal tutor who has memorized every word of your syllabus.
The tech behind it:
- Vector embeddings for semantic search
- Hybrid ranking combining BM25 and cosine similarity
- Support for multiple vector databases (Moodle Database, ChromaDB, Supabase)
- Integration with Google’s Gemini API, OpenAI, Ollama, and Anthropic
Building this taught me so much about the intersection of AI and education. Sure, it’s officially listed on Moodle.org, but what really matters is that somewhere out there, it might be helping a student understand a difficult concept. That’s the real reward.
2. Docker Containers for Moodle: Sharing What I’ve Learned
I created Docker images for Moodle development (Moodle 5.0.2 with PHP 8.3, MariaDB 11, Nginx) because setting up a Moodle development environment used to frustrate me. I figured if I was struggling, others probably were too.
These containers are just my way of sharing solutions that made my life easier. If they help even one other developer save a few hours of setup time, that’s a win in my book.
3. Moodle Plugin Backup Tool: Born from Painful Experience
Anyone who’s managed a Moodle instance knows the anxiety of upgrades. I’ve been there – that moment of “please don’t break, please don’t break” as you hit the upgrade button. So I built a simple utility for backing up and restoring plugins. It’s not fancy, but it helps me sleep better at night. Maybe it’ll help you too.
Beyond Moodle: The Side Quests
A developer’s GitHub is like a diary. Mine tells stories of curiosity that wouldn’t fit in my day job:
Form Filler Extension
A Chrome/Edge extension that fills forms with realistic fake data using Faker.js. I built this after spending way too many hours manually filling test forms. It’s a small tool, but it saves me time. If it helps you avoid the tedium of “test@test.com” and “John Doe” for the hundredth time, I’m happy.
ezadev-bmkg
A PHP package for fetching weather data from BMKG (Indonesian Meteorological, Climatological, and Geophysical Agency). A small project from when I needed weather data for an app. I open-sourced it thinking maybe someone else might need it too.
Auto-Gembel
A Bitcoin exchange price monitoring tool. The name is a bit of self-deprecating humor – “gembel” means broke/beggar in Indonesian slang. Because let’s be honest, most of us watching crypto prices aren’t exactly whales. Just regular folks trying to understand this wild world.
CTF Writeups & Security Tools
My roots showing. I still enjoy the occasional Capture The Flag competition – they keep me sharp and remind me where I came from. I share my writeups not because I’m an expert, but because someone’s writeup once helped me, and I’d like to pay that forward.
The Community: More Than Just Code
I’m not just a lone developer. I’m part of communities:
-
Krenovator: In February 2024, I had the privilege of speaking at a sharing session with this Malaysia-based tech talent platform. It was humbling to share my story – the stumbles, the small wins, the lessons learned. If even one person in that room felt less alone in their struggles, it was worth it.
-
Stack Overflow: Been there for over 13 years, mostly asking questions if I’m being honest. But over time, I’ve been able to answer a few too. That’s how we all learn, right? Standing on each other’s shoulders.
-
Open Source: Working with @ezadev and @terus-technology organizations. Contributing what I can, learning far more than I give. That’s the beauty of open source – we all lift each other up.
The Philosophy: Why I’m Still Relevant in the Age of AI
You might look at my profile and think: “This guy writes about AI, uses AI, builds AI-powered tools. Isn’t he worried AI will replace him?”
Not even slightly.
Here’s what 11 years in the trenches taught me: AI is not your replacement. It’s your power-up.
When I built the Terus RAG plugin, I wasn’t competing with AI – I was orchestrating it. I chose which models to support. I designed the architecture. I made the decisions about user experience, data privacy, and system reliability.
AI can generate code. But it can’t understand why your government client needs specific security compliance. It can’t negotiate between what the business wants and what the technology can deliver. It can’t debug a production issue at 2 AM with nothing but logs and intuition.
AI makes me a better kuli-kode, not an obsolete one.
The Personal Side: Pengen Jadi Papah yang Baik
If you check my Instagram, you’ll see my bio: “Pengen jadi papah yang baik :)” (Want to be a good father).
This line is more important than any technical achievement.
I code for a living, but I live for my family. Every late-night debugging session, every challenging project, every skill I learn – it’s all in service of being present, being capable, being someone my family can be proud of.
The best code I’ll ever write isn’t in a repository. It’s the example I set for my children about curiosity, persistence, and never stopping learning.
The Answer: Who Am I?
I am wenkhairu – g0bl0x to some, b0t to others.
I am a fullstack developer still learning, still growing, still making mistakes and fixing them.
I am a former security enthusiast who discovered that building things brings more joy than breaking them.
I am someone trying to contribute to education technology, hoping my work helps someone, somewhere learn something new.
I am a kuli-kode – a digital laborer who finds dignity in honest work, no matter how small.
I am a father who wants to show his children that learning never stops and kindness matters more than cleverness.
I am from Yogyakarta, carrying my roots with me wherever my code goes.
I am 11 years into this journey, and I still feel like I’m just getting started.
Most importantly, I am living proof that you don’t need to be extraordinary to contribute. You just need to show up, do the work, share what you learn, and treat people with respect.
The keyboard is my tool. Code is my medium. Education is my mission. Family is my why.
And this blog? This is where I share it all.
Welcome to KuliKode. Let’s build something amazing together.
Connect with me:
- GitHub: @khairu-aqsara
- Docker Hub: @wenkhairu
- Stack Overflow: Khairu Aqsara