I'm a software engineer who taught himself to code — no CS degree, no bootcamp. What I have instead is years of production experience, a strong bias toward correctness, and a genuine interest in solving problems that matter to the people paying for them.
I studied electrical engineering at a vocational high school — not computer science. The jump to software came from curiosity: I wanted to understand how the digital systems I was learning about actually worked on the inside. I started reading, experimenting, building small things. The small things got bigger.
That path turned out to be useful. I learned to treat software like an engineered system — something with inputs, outputs, failure modes, and constraints — rather than just a sequence of instructions to get a computer to do something. It shaped how I approach architecture, debugging, and trade-off decisions.
Today I work full-time as a software engineer and take on freelance projects where I can genuinely add value. I'm 23, based in Bandung, and available for remote work globally. The stack I reach for most is Laravel, Go, Vue.js, and PostgreSQL — but I've shipped production software in Python, Java, and plain HTML/CSS/JS when that's what the problem called for.
I don't have a degree. What I have is a track record of things that work in production, clients who came back for more work, and a habit of not shipping something until I'm confident it won't embarrass either of us at 3am.
Code that works quietly is more valuable than code that's impressive to read. I write boring, predictable logic that handles every edge case — not code that requires a PhD to understand at 2am when something breaks.
The person maintaining your codebase six months from now may not be me. I write as if they're looking over my shoulder: clear naming, predictable structure, no hidden side effects. Future-you will appreciate it.
If I don't know something, I say so. If a timeline is unrealistic, I'll tell you before you find out the hard way. I don't pad estimates, and I don't hide problems — I surface them early while they're still cheap to fix.
I ask detailed questions before touching a keyboard. A clear brief saves everyone time — misunderstood requirements are the most expensive kind of bug.
I work across time zones and respect yours. Communication happens over written channels with clear context — no "quick calls" when a well-written message does the job better and faster.
I don't disappear for two weeks and reappear with something half-finished. You'll know where things stand. If something's blocked, you'll hear about it immediately — not when the deadline arrives.
When something ships under my name, it works. I test edge cases, write readable code, and leave documentation. Handing over a codebase that someone else can actually maintain is part of the job.
Based in Bandung (UTC+7). I've worked with clients across different time zones without friction. Timezone overlap is helpful but not required — good async communication covers the gap.
Tell me what you're building. I'll tell you honestly whether I'm the right person for it — and if not, I'll point you somewhere useful.