~/wirya $ whoami full-stack developer · laravel & next.js

Software that real businesses run on.

I build and ship web apps for small businesses, from the first conversation to production.

For 2.5 years I have kept the finance systems of one of Indonesia's largest shipping lines running. In between, I build products that small businesses use every day: a language course, a plastics store, and a SaaS of my own.

$ git log --since=1.year --author=wirya

889 commits in the last 12 months.

Side projects and client work across 17 repositories. The day job lives in other repositories and is not counted here.

94
days with at least one commit
44
commits on the busiest day, 15 Aug 2026
3
products live in production right now
php artisan test
  Tests:    208 passed (985 assertions)
  Duration: 35.55s
git push origin master
  5f38990  fix: empty-table alerts, unreadable badges and clipped qty stepper
gh run watch
  ✓ deploy in 3m28s
  ✓ data_inventory_app  Up (healthy)
A real session from 19 Oct 2026: three UI fixes for Hendy Plastik, tested and shipped to production.

Client project · Live

HuaTalk

One platform for a Mandarin course center: a public website, an LMS for admins, teachers and students, and an AI conversation partner that replies with pinyin.

  • Laravel 12
  • Next.js 16
  • MySQL 8
  • Redis
  • DeepSeek
  • Azure Speech
  • Docker
huatalkcenter.com
HuaTalk Center public website homepage
Website and CMS. Next.js 16 sharing the Laravel database through Prisma, with 14 CMS modules, online registration, sitemap and JSON-LD. Lighthouse SEO 100.
HuaTalk admin dashboard with students, teachers, enrollments and revenue
Admin. Students, revenue and enrollment trends at a glance.
Teacher gradebook with quiz scores per student
Teacher. Today's class, attendance and a gradebook across every activity.
AI conversation partner replying in Mandarin with pinyin, translation and feedback
Student. An AI conversation partner with pinyin, translation and feedback on every reply.
Spaced repetition flashcard showing a Mandarin word with pinyin
HuaTalk website on a phone
Everywhere else. Spaced-repetition flashcards, and a website built for phones first.
Under the hood. Three apps behind one nginx edge, all in Docker on one VPS.

Client project · Live

Hendy Plastik

Inventory and point of sale for a plastics store, rebuilt around how stock actually moves.

  1. 207of 396 items

    showed stock but could not be sold.

    Opening stock had been typed in without purchase records, so the costing engine had nothing to sell from. I traced it and made the cause visible to the owner.

    Inventory movement report
  2. Every sale consumes stock batch by batch.

    FIFO costing at the cashier, so the cost of every item sold is the price it was actually bought at.

    Point of sale screen with a basket of items
  3. Profit reports that stopped flattering.

    Fixed two bugs that overstated margins, so the profit report matches the money.

    Sales profit report per item
  4. Receivables with due dates.

    Credit sales and partial payments in one list, with overdue invoices flagged.

    Receivables list with overdue invoices highlighted
  5. 208automated tests

    Shipped in phases, live in production.

    Cashiers lost access to admin-only actions, and every change lands behind a test.

    Store dashboard with sales per hour and low stock
LuckyTree page builder with a live phone preview

My own product · Live

LuckyTree

A link-in-bio builder for small sellers. One link for the menu, the prices and the WhatsApp order button.

A published LuckyTree page for HuaTalk on a phone
Live at huatalkcenter.luckytree.tech

26

block types. Pick one, fill it in, publish.

Analytics dashboard with visits, visitors, clicks and click rate
Cookieless analytics on real traffic: visits, clicks, sources and devices.

Custom domains, verified through DNS.

type  TXT
name  _linkinbio-challenge.shop.example.com
value linkinbio-verification=Q7dK…
status pending

226

commits so far, with Pest and Vitest running in CI.

The day job: finance systems for a nationwide shipping line.

2.5+
years at PT Salam Pacific Indonesia Lines, maintaining and revamping internal finance apps.
Dozens
of subsidiaries consolidated in MultiComp, one finance system for the whole group.
Thousands
of tax withholding documents read by OCR-Tax, the pipeline above.
Nationwide
branches using cash in, cash out and vessel expense systems every day.
  • Laravel
  • Next.js
  • React
  • TypeScript
  • PHP
  • Tailwind CSS
  • MySQL
  • PostgreSQL
  • Redis
  • Docker
  • nginx
  • Cloudflare
  • Java
  • Python
  • FastAPI
  • Prisma
  • GitHub Actions
  • Pest
  • Playwright

How a project runs

  1. main · discover

    Understand the flow

    We walk through how the business works today, before any screen is drawn.

  2. main · plan

    Agree on milestones

    Scope split into small paid milestones, each one usable on its own.

  3. main · ship

    Ship in small pieces

    A working build you can click every week, with tests behind the parts that touch money.

  4. main · release

    Hand over and support

    Deployed on your server or mine, with documentation and a handover call.

Have a business process stuck in spreadsheets?

Start a project