modern b2b website
Resona Perdania Corporate Web.
Corporate website with Next.js and Strapi CMS, custom CMS plugins, performance optimization, and Japanese-inspired B2B branding.
Selected work
modern b2b website
Corporate website with Next.js and Strapi CMS, custom CMS plugins, performance optimization, and Japanese-inspired B2B branding.
mind id
Enterprise recruitment portal for MIND ID Holding with multi-subsidiary integration, multi-tier approval workflow, and candidate screening.
kalla
Full-stack property management for Kalla Group with dynamic PDF generation, Nest.js backend, and comprehensive real estate features.
dpr open data
Official open data portal for Indonesian Parliament with Next.js 13, Tailwind CSS, complex API integrations, and optimized backend workflows.
portfolio
showcase of my projects and some thoughts as a Full-Stack Engineer.
pomotime
Experience a new level of productivity and focus with Pomotime, the ultimate Pomodoro Timer designed to supercharge your work sessions.
Case studies
Technical range
From frontend interfaces to backend systems, databases to deployment pipelines. I use AI tools to ship faster without sacrificing quality.
AI workflow
Every line reviewed. Every deploy intentional. Here is how AI fits into my engineering workflow.
Recent writing
How to make AI understand your project context using RepoPrompt — a free alternative to premium AI agents. Perfect for devs who value DRY principles.
Full guide on integrating Odoo with external applications using JSON-RPC. NestJS + Odoo integration, webhooks, and custom module development explained.
Sharing code tips on TikTok literally changed my career. Here's what I learned about technical content creation.
Started Kopico as a side project, grew it to 800+ members. The journey of building something that actually helps people.
S1 Computer degree, self-taught everything else. How I went from tutorial hell to working on enterprise systems.
Today I learned
How I built flexible, validated dynamic forms for enterprise ERP systems using Ant Design and Zod.
Finally understanding why @Inject() decorator exists and how DI actually works in NestJS.
Forget the obscure ones - here are the TypeScript utility types I use every day.
Understanding RSC isn't about syntax - it's about thinking differently about where code runs.
Interactive terminal
Changelog